Test Process

An effective, organized and established process is a key to carry out any task, smoothly and efficiently, so as to achieve success.

In the software field, the task of testing is not just limited to executing test cases on software product. Like, the development process, testing is also a wider process that completes its cycle after going through several phases. It should not be considered as a single activity to carry out, rather it is defined by the specified process consisting of various stages.

Phases of Testing

Similar to SDLC i.e. software development life cycle, testing process also has its separate cycle namely, software testing life cycle (STLC). This cycles comprises of series of subsequent activities in an order to initiate, execute and terminate the testing process, successfully.

The basic process of testing includes following stages in a subsequent manner

Test Process

Test Planning & Control

It is an initial phase to begin with the process of testing. This phase involves the preparation of test plans, defining objectives and building up test strategy to effectively implement these test plans at various levels of the software. However, this phase considers following aspects or points, in order to generate a proper and effective test plan, for carrying out the testing.

  • Scope of the testing,
  • Functionality or features that needs to be tested,
  • Resource required such as machines, memory, testing environment, manpower etc.
  • Requirement of additional hardware or software, such as drivers, stubs, 3rd party software, etc.
  • Exit criteria to stop the testing process such as 100% test coverage, quantity of defects, time duration, etc.

In addition to planning, it also involves controlling the process of testing by constantly monitoring it, reviewing and analysing the method and its outcome, and accordingly making decisions.

Analysis & Design

This phase deals with the creation of test cases with the help of information and output provided from the previous stage i.e. Test planning & control. During this phase, objectives are transformed into test cases.

Basically, this stage comprises following activities

  • Identification of test conditions.
  • Designing the test cases
  • Testability of the requirements and system is being assessed.
  • Designing test environment.

Test Implementation & Execution

In this phase, test scripts and procedures are outlined by integrating the test cases in a particular order, setting up testing environment and execution of the test cases.

The activities, carried out during this phase are

  • Creating and prioritizing test cases.
  • Defining test procedures to execute test cases.
  • Preparing test suites from test cases.
  • Implementing the testing environment.
  • Executing test cases,
  • Recording results and comparing it with the expected result.

Evaluating Exit Criteria & Reporting

This phase involves evaluation of outcomes of the test implementation & execution stage, to decide further testing or its closure. Based on the risk assessment, exit criteria are prepared, which works as a metric to determine the amount of testing needed in the product or project. It depends upon testing team to carry out further testing or to terminate the process, on the basis of exit criteria such as exploring high percentage of bugs, time-limit, budget-limit, 100% test-coverage.

However, task of evaluating the exit criteria should also be undertaken, along with the test results, to

  • Verify the test results with respect to criteria defined during planning stage,
  • Determine the need for changing the exist criteria,
  • To evaluate the necessity of additional test cases or removal of irrelevant test cases.

Further, the outputs of the test execution are logged and reports are being generated for the client's use.

Test Closure Activities

Generally, this phase begins after the delivery of software product to the client. However, it is not mandatory to perform closure activities only after the delivery of software. The testing process may also be terminated due to other reasons like achievement of target, cancellation of the project or when the product needs update, etc.

This phase mainly consists of following events

  • Checking of actual delivered product with respect to planned deliverables.
  • Gathering testware such as test scripts, test environment, etc. for its reuse and to pass it to maintenance department, that may help them in providing software support in future.
  • Gaining knowledge from the current testing process, in order to improve the working, for the future projects.