Home : Articles

Entry & Exit Criteria in Software Testing

Entry & Exit Criteria in Software Testing

Software testing is a vast process which may be carried out for an infinite time, as it is impossible to make a software product 100% bug free. Further, with the introduction of innovative and productive software development models, testing process gets shifted to left of the development process and is carried out simultaneously with the software development phase right from its beginning. However, with plethora of requirements to be considered and tested, testers sometime feels uncertain about the testing process, mostly when to start and when to stop testing.

Thus, QA team at the beginning of the testing phase specifies certain specific conditions and requirements to be met, which works as a signal to testers or testing team to initiate or terminate a testing task.

Entry Criteria

As the name specifies, entry criteria is the set of condition(s) or requirements which are necessary and required to be met or fulfilled to create suitable circumstances and habitat favourable for testing. As entry criteria is finalized and reached by the test system controller and business team after thorough study and analysis of software and business requirements, it would not be preferable to initiate testing task without reaching or meeting the entry criteria. Negligence of entry criteria may introduce risks in the testing process.

Entry criteria along with the whole testing phase, may be defined and specified for each different levels of testing i.e., unit testing, integration testing, system testing and acceptance testing.

Some of the entry criteria, which are generally used to mark the beginning of the testing, are:

  • Complete or partially testable code is available.
  • Requirements are defined and approved.
  • Availability of sufficient and desired test data.
  • Test cases are developed and ready.
  • Test environment has been set-up and all other necessary resources such as tools and devices are available.

Both development and testing phase are being used as source to define the entry criteria. Let's see the contribution of both the phases in setting up the entry criteria for testing.

  • Development phase/process provides useful information pertaining to software, its design, functionalities, structure and other relevant features which greatly helps in deciding the accurate entry criteria like functional and technical requirement, system design, etc.
  • From testing phase, following inputs may be considered
    • Test plan
    • Test strategy
    • Test data and testing tools.
    • Test environment


As stated above that entry criteria may be outlined for each different levels of testing. Let's see some of them for each different level.

Unit testing

  • Planning phase has been completed.
  • System design, technical design and other relevant documents are properly reviewed, analysed and approved.
  • Business and functional requirements are defined and approved.
  • Testable codes or units are available.
  • Availability of test environment.

Integration testing

  • Completion of unit testing phase.
  • Priority bugs found during unit testing has been fixed and closed.
  • Integration plan and test environment to carry out integration testing is ready.
  • Each module has gone through unit testing before the integration process.

System testing

  • Successful completion of integration testing process.
  • Priority bugs found during previous testing activities has been fixed and closed.
  • System testing environment is available.
  • Test cases are available to execute.

Acceptance testing

  • Successful completion of system testing phase.
  • Priority bugs found during previous testing activities has been fixed and closed.
  • Functional and Business requirement has been met.
  • Acceptance testing environment is ready.
  • Test cases are available.

Exit Criteria

As stated earlier, a testing process may be carried out for an infinite period time keeping in view the impossible task to make software 100% bug free. The restrictions of time and budget over testing forces the QA team to specify certain conditions and requirements that needs to be achieved or met for getting adhered to imposed deadlines and allocated budget without compromising with the quality of the software.

Moreover, the end purpose of testing is not to detect all bugs/defects present in the system but to identify and locate those bugs and defects which may affect the intended functioning of the system and degrades the quality of the software.

Below listed are some of the criteria, commonly considered for the purpose of stopping the testing.

  • Deadlines meet or budget depleted.
  • Execution of all test cases.
  • Desired and sufficient coverage of the requirements and functionalities under the test.
  • All the identified defects are corrected and closed.
  • No high priority or severity or critical bug has been left out.

As it is not possible to make software completely bug free, therefore testing may be stopped when desirable and acceptable level of quality has been achieved and the amount of risks acceptable to the client or the organization. Further, exit criteria also depend on the by-product of the software testing phase i.e. test plan, test strategy, test cases, test logs, etc.

Similar to entry criteria, exit criteria is also defined for all different levels of testing. Few of them are

Unit testing

  • Successful execution of the unit tests.
  • All the identified bugs have been fixed and closed.
  • Project code is complete.

Integration testing

  • Successful execution of the integration tests.
  • Satisfactory execution of stress, performance and load tests.
  • Priority bugs have been fixed and closed.

System testing

  • Successful execution of the system tests.
  • All specified business and functional requirements has been met.
  • Priority bugs have been fixed and closed.
  • System's compatibility with supported hardware and software.

Acceptance testing

  • Successful execution of the user acceptance tests.
  • Approval from management to stop UAT.
  • Business requirements got fulfilled.
  • No critical defects have been left out.
  • Signing off acceptance testing.

Conclusion

Defining entry and exit criteria is an essential need of software testing, which helps the testing team or the testers to finish the testing tasks within the stipulated deadlines without comprising the software quality.

Client Testimonials

This is outstanding progress by the ThinkSys India team! I know you all have been working long hours and have been receiving new direction from us daily and sometimes hourly. We appreciate you taking a day out of your weekend to help us with this critical release. Integrating automation in an agile environment is extremely difficult and the entire ThinkSys India team has done a great job.

QA Director, online dating service company

ThinkSys has been providing outstanding, timely and reliable service for us. The company's staff is highly resourceful in identifying and executing solutions. The company has deep core expertise in QA automation, but we have used them for several other technical implementation services.

USA based CEO