Essential Entry & Exit Criteria in Software Testing
As it is impossible to make software product 100% bug free, Essential Entry software testing is a vast process which may be carried out for an infinite time. testing process gets shifted to left of the development process and is carried out simultaneously with the software development phase right from its beginning with the introduction of innovative and productive software development models,. However requirements to be considered and tested. About the testing process a tester sometime feels uncertain when to start and when to stop testing.
At the beginning of the testing phase QA team specifies certain specific conditions and requirements to be met which will be working as a signal to testers or testing team to initiate or terminate a testing task.
Entry Criteria for s/w Testing:-
To create suitable circumstances , as the name specifies, essential entry criteria is the set of conditions or requirements which are necessary & required to be met or fulfilled and habitat favorable for testing. After thorough study and analysis of software and business requirements as essential entry criteria is finalized and reached by the test system controller and business team, it would not be preferable to initiate testing task without reaching or meeting the entry criteria. In the testing process negligence of entry criteria may introduce risks.
For each different levels of testing , entry criteria along with the whole testing phase, may be defined and specified i.e., unit testing, integration testing, system testing and acceptance and essential entry testing.
To mark the beginning of the testing some of the essential entry criteria, which are generally used are:
• Partially or Complete testable code is available.
• Requirements are approved and defined
• Availability of sufficient desired test data.
• Test cases are ready and developed.
• All other necessary resources such as tools and devices are available ans test environment has been set-up.
To define the entry criteria both development and testing phase are being used as source. In setting up the entry criteria for testing let’s see the contribution of both the phases.
• provides useful information Pertaining to software development process/phase , its design, functionalities, structure & other relevant features which greatly helps in deciding the accurate entry criteria like functional and technical requirement, system design, etc.
• Following inputs may be considered from testing phase:-
o Test plan
o Test strategy
o Test data & testing tools.
o Test environment
Entry criteria may be outlined for each different levels of testing as stated above. For each different level Let’s see some of them.
• Planning phase should be completed.
• Technical design, System design and other relevant documents are properly reviewed, analyzed and approved.
• Functional and Business requirements are defined and approved.
• Units or Testable codes are available.
• Test environment availability.
• Unit testing phase completion.
• Unit testing Priority bugs has been fixed and closed.
• To carry out integration testing, integration plan and test environment is ready.
• Before the integration process each module has gone through unit testing.
• Integration testing successful completion.
• During previous testing priority bugs found activities has been fixed and closed.
• Availability of System testing environment.
• Availability of test cases to execute.
• System testing should be completed successfully.
• During previous testing activities priority bugs found has been fixed and closed.
• Business & Functional requirement has been met.
• Availability of acceptance testing environment is ready.
• Availability of test cases.
Exit Criteria for s/w Testing:-
To make software 100% bug free a testing process may be carried out for an infinite period time keeping in view the impossible task. Without compromising with the quality of the software 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.
The main purpose of the testing is to identify & locate those bugs and defects which may or might affect the intended functioning of the software system & degrades the quality of the software not to detect all bugs/defects present in the system.
These are some of the criteria which is commonly considered for the purpose of stopping the testing.
• budget depleted or deadlines meet
• All test cases execution.
• Under the test Sufficient & desired coverage of the requirements and functionalities.
• All the identified/found defects are corrected and closed.
• No high severity or priority or critical bug has been left out.
It is not completely possible to make software / application completely bug free so software 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.
Exit criteria similar to entry criteria, is also defined for all different levels of testing. Few of them are given below:-
• Successful unit tests execution.
• All the found / identified bugs have been fixed and closed.
• Project code is done/completed.
• Integration tests successful execution.
• Satisfactory execution of performance, stress and load tests.
• All the priority bugs have been fixed and closed.
• System tests successful execution.
• All specified functional / business requirements has been met.
• All the priority bugs have been fixed and closed.
• With supported hardware and software, system’s compatibility.
• User acceptance tests successful execution.
• To stop UAT approval from management.
• Business requirements should be fulfilled.
• There should not be any critical defects left out.
• Acceptance testing signing off.
For software testing, it is an essential need to define entry and exit criteria which helps the testers or testing team to finish the testing tasks within the stipulated deadlines without comprising the software quality.
Written By:- Vijendra Pratap Singh
(Senior Software Tester)
D’selva InfoTech pvt. Ltd, Agra.