Strategy Testing Issues

Following are the issues considered to implement software testing strategies.
  • Specify the requirement before testing starts in a quantifiable manner.
  • According to the categories of the user generate profiles for each category of user.
  • Produce a robust software and it's designed to test itself.
  • Should use the Formal Technical Reviews (FTR) for the effective testing.
  • To access the test strategy and test cases FTR should be conducted.
  • To improve the quality level of testing generate test plans from the users feedback.

Test strategies for conventional software

Following are the four strategies for conventional software:
1) Unit testing
2) Integration testing
3) Regression testing
4) Smoke testing

1) Unit testing

  • Unit testing focus on the smallest unit of software design, i.e module or software component.
  • Test strategy conducted on each module interface to access the flow of input and output.
  • The local data structure is accessible to verify integrity during execution.
  • Boundary conditions are tested.
  • In which all error handling paths are tested.
  • An Independent path is tested.
Following figure shows the unit testing:

unit testing

Unit test environment

The unit test environment is as shown in following figure:

unit test environment

Difference between stub and driver

StubDriver
Stub is considered as subprogram.It is a simple main program.
Stub does not accept test case data.Driver accepts test case data.
It replace the modules of the program into subprograms and are tested by the next driver.Pass the data to the tested components and print the returned result.

2) Integration testing

Integration testing is used for the construction of software architecture.

There are two approaches of incremental testing are:
i) Non incremental integration testing
ii) Incremental integration testing

i) Non incremental integration testing
  • Combines all the components in advanced.
  • A set of error is occurred then the correction is difficult because isolation cause is complex.
ii) Incremental integration testing
  • The programs are built and tested in small increments.
  • The errors are easier to correct and isolate.
  • Interfaces are fully tested and applied for a systematic test approach to it.
Following are the incremental integration strategies:
a. Top-down integration
b. Bottom-up integration

a. Top-down integration

  • It is an incremental approach for building the software architecture.
  • It starts with the main control module or program.
  • Modules are merged by moving downward through the control hierarchy.
Following figure shows the top down integration.

top down integration

Problems with top-down approach of testing

Following are the problems associated with top-down approach of testing as follows:
  • Top-down approach is an incremental integration testing approach in which the test conditions are difficult to create.
  • A set of errors occur, then correction is difficult to make due to the isolation of cause.
  • The programs are expanded into various modules due to the complications.
  • If the previous errors are corrected, then new get created and the process continues. This situation is like an infinite loop.

b. Bottom-up integration

In bottom up integration testing the components are combined from the lowest level in the program structure.

The bottom-up integration is implemented in following steps:
  • The low level components are merged into clusters which perform a specific software sub function.
  • A control program for testing(driver) coordinate test case input and output.
  • After these steps are tested in cluster.
  • The driver is removed and clusters are merged by moving upward on the program structure.
Following figure shows the bottom up integration:

bottom up integration

3) Regression testing

  • In regression testing the software architecture changes every time when a new module is added as part of integration testing.

4) smoke testing

  • The developed software component are translated into code and merge to complete the product.

Difference between Regression and smoke testing

Regression testingSmoke testing
Regression testing is used to check defects generated to other modules by making the changes in existing programs.At the time of developing a software product smoke testing is used.
In regression tested components are tested again to verify the errors.It permit the software development team to test projects on a regular basis.
Regression testing needs extra manpower because the cost of the project increases.Smoke testing does not need an extra manpower because it does not affect the cost of project.
Testers conduct the regression testing.Developer conducts smoke testing just before releasing the product.

Alpha and Beta testing

Alpha testingBeta testing
Alpha testing is executed at developers end by the customer.Beta testing is executed at end-user sites in the absence of a developer.
It handles the software project and applications.It usually handles software product.
It is not open to market and the public.It is always open to the market and the public.
Alpha testing does not have any different name.Beta testing is also known as the field testing.
Alpha testing is not able to test the errors because the developer does not known the type of user.In beta testing, the developer corrects the errors as users report the problems.
In alpha testing, developer modifies the codes before release the software without user feedback.In beta testing, developer modifies the code after getting the feedback from user.