Arunkumar Khannur's Software Testing Knowledge Center

3.8. Software Test Life Cycle

The tasks involved during the testing phase can be summarized as
  • Preparation and implementation of test strategy and test plan
  • Designing test cases using requirements-based and code-based techniques
  • Test Execution and Bug Reporting
  • Bug Resolution and Tracking
  • Configuration Control of the Product
  • Software Release and Support during Acceptance Testing
  • Test Closure
  • Defect Prevention and Management
We shall discuss each one of them in detail

3.8.1. Test Strategy and Test Plan
Test strategy and test plan form crucial phase in STLC.
A test strategy is a concise statement of how to meet the objectives of software testing. Test strategy views the test event at high level and concentrates on the objectives of the testing event, the techniques to be used, the resources required and so on. The test strategy is considered as the prerequisite to arrive at effective test plan.

The test plan contains the test approach, the test models, and the technical components relevant to testing. It is part of the statement of work, which in turn, constitutes the major part of the project plan.
Preparing the detailed test plans include the following tasks
  • Prepare Unit Test Plan
  • Prepare Integration Test Plan
  • Prepare System Test Plan
  • Prepare Acceptance Test Plan
  • Prepare Regression Test Plan

Implementing test plans include the following:
  • Pre-test Checklists
  • Identifying test norms
  • Conducting the tests

3.8.2. Test Case Designing
Test cases and Test Scripts are designed for each level of testing. This is achieved by using appropriate inputs or resources. Test case design uses varieties of requirement-based and code-based techniques. Test cases so designed will be effective in exposing errors at code-level, module/subsystem level, and system level. All test case design techniques shall be considered complimentary. After understanding all test case design techniques, test engineers shall combine these techniques appropriately to ensure adequate testing. While doing so test engineers look at the purpose of testing rather technique of testing.

Test Cycle
A Test Cycle consists of a series of Test Suites and Test Cases and comprises a complete execution set, from the initial start to the end.

Test Case
A Test Case describes the actual verification points in the “actions to be taken” and the “expected results”. This also should mention the actual results and Pass/Fail clause. It is a good practice to include Incident report or a bug report created for failed cases and traceability to requirement specification.

Test Suite / Scenario
A Test Suite is a set of individual test cases that are to be executed together (or as a package for Software Testing) or in a particular sequence. Each Test Suite contains many test cases

Test Script
A test script is a sequential set of instructions for performing a specific test on a specific software component based on a particular test object in a test model. A test script can be written in some form of structured natural language that gives instructions for manually executing a test or in a special language that the automated integration system can execute.

There are several kinds of test scripts, differentiated by the kind of test that they represent.
Unit Test: A test that applies to a single component corresponds to the control flow, data flow, state transition, transaction flow, exception.
Module Test: A test that applies to components in a module, corresponds to data flows and control flows within the module.
Integration Test: A test that applies to integration of two or more modules (interfaces, synchronization, exception, GUI test scripts etc)
System Test: A test that applies to the system as a whole, (validation, stress, performance, configuration, recovery, and security test scripts etc)

A set of test scripts have to be appropriately arranged to form a test suite. There are many ways to form the test suites. One way to organize test suites is to include a set of test scripts executed as a set, all at once. Another way is to organize all the test scripts that apply to a particular stage in a software test life cycle into a test suite. For example, a regression test suite has test scripts that have run in other test suites.

Organizing test suites systematically yields a better overall picture of testing and ties the suite to the objectives of the overall quality system. Adding test suites that represent a specific system focus, such as cluster, system and regression test suites permits a strong systematic focus for testing.

Test Bed
The Test Data of the system is the data with which, the application is going to be tested through the execution of the test cases that are designed to perform the test.
Khannur's Book
Arunkumar Khannur, Software Testing - Techniques and Applications, Published by Pearson Publications, 2011 (ISBN:978-81-317-5836-6; Pages:341 + xxii)
Follow Khannur
Khannur's Company
ISQT Process & Consulting Services Pvt. Ltd., Bangalore, INDIA
Khannur's Software Testing Forum
 Contact Khannur
ISQT Process & Consulting Services Pvt. Ltd.
#732, 1st Floor, 12th Main,
3rd Block, Rajajinagar,
Bangalore - 560010, INDIA
Phone: +91 80 23012511
Skype: arun.isqt