> Test procedure is a sequence of test cases in execution order, and any associated actions that may be required to set up the initial preconditions and any wrap up activities post execution. (ISTQB Glossary)
A test procedure, as defined by the International Software Testing Qualifications Board (ISTQB), is a systematic sequence of actions or operations which aim to ensure the functionality and performance of a software product, system or component. It involves executing a series of test cases in a specific order and includes any necessary steps that need to be taken before (preconditions) and after (post-execution activities) the testing process.
The precondition setup is crucial as it prepares the system for testing. This could include actions such as setting up the correct data in the system, ensuring necessary hardware is connected and functioning properly, or configuring software settings appropriately for the test.
The execution order of test cases is also significant. This order may be determined by factors such as dependencies between test cases, risk levels of different features, or simply the logical flow of operations in the software.
Post-execution activities are equally important in a test procedure. These might involve cleaning up any temporary data created during testing, resetting system configurations back to normal, analyzing and documenting test results, reporting bugs or issues found during testing, and communicating findings to relevant stakeholders.
Thus, a test procedure is not just about running tests - it's an organized plan that includes preparations before testing, orderly execution of tests based on certain criteria, and essential wrap-up tasks after tests have been run. It's designed to ensure comprehensive testing while minimizing errors or oversights.
---
## Tags
#SoftwareTesting #TestProcedure #ISTQB #QualityAssurance #QA #Preconditions #PostExecutionActivities
---
## Related Concepts
1. [[Test Case]]: A test case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly. Test cases are the individual steps that make up a test procedure.
2. [[Test Plan]]: A test plan is a detailed document that outlines the test strategy, objectives, schedule, estimation and deliverables, and resources required for testing. The test procedures are part of the overall test plan.
3. [[Test Suite]]: A test suite is a collection of test cases that are intended to be used to test a software program to show that it has some specified set of behaviours. A suite can be thought of as the collection of specific procedures intended for testing.
4. [[Test Scenario]]: A Test Scenario is any functionality that can be tested. It gives a high-level idea of what we need to test in the application being tested. The scenarios serve as the basis for writing test procedures.
5. [[Software Development Life Cycle (SDLC)]]: SDLC is a process followed for a software project, within a software organization. It consists of several phases like requirements gathering, analysis, design, coding, testing etc. The testing phase includes creating and executing the test procedures.
6. [[Defect Reporting]]: This refers to the process of identifying and reporting issues found during testing through bug tracking systems or other reporting tools. This activity often follows the execution of a test procedure when any discrepancies or problems have been identified.
7. [[Resources/Regression Testing]]: This is re-running functional and non-functional tests to ensure that previously developed and tested software still performs after changes were made in other parts of the software or when interfacing with different software/hardware components/systems etc., often requiring specific [[regression testing]] procedures.
8. [[Quality Assurance (QA)]]: QA refers to administrative and procedural activities implemented in a quality system so that requirements and goals for a product, service or activity will be fulfilled; this includes planning, designing, implementing, and monitoring test procedures.
---
## Derived Concepts
1. [[Automated Testing]]: This involves using automated tools to execute test procedures and compare actual outcomes with predicted outcomes. It can greatly increase the speed and efficiency of testing, especially for repetitive tests.
2. [[Smoke Testing]]: This is a type of software testing where the major functionalities of the application are tested to ensure that they work properly before carrying out rigorous testing. The test procedures in smoke testing are often simple and quick.
3. [[User Acceptance Testing (UAT)]]: This is the final phase in the software testing process where actual users test the software to make sure it can handle required tasks in real-world scenarios, according to specifications. Test procedures for UAT are usually based on real-world user scenarios and use cases.
4. [[Test Environment Setup]]: This refers to configuring hardware and software conditions under which a team tests a software application. Setting up an appropriate test environment ensures that tests run smoothly as part of the test procedure.
5. [[Test Execution]]: This is the process of running a program or system under controlled conditions and evaluating the results (e.g., 'if this condition is met, then that result should happen'). It is one of the main parts of a test procedure.
6. [[Test Reporting]]: After executing tests, testers need to report their findings, including any defects discovered, to relevant stakeholders for further actions such as bug fixing or improvement plans. Test reporting is often included in post-execution activities in a test procedure.
7. [[Test Data Preparation]]: Test data preparation involves creating, selecting, or importing data needed for tests as part of precondition setup in a test procedure.
8. [[Functional Testing]]: Functional testing involves checking if a system performs its intended functions correctly according to its requirements or specifications; this type of testing requires specific functional test procedures based on system functionalities and features.
9. [[Non-Functional Testing]]: Non-functional testing involves checking aspects of a system that may not be related to a specific function or user action such as performance, scalability, security etc. Non-functional test procedures are designed to validate these aspects of the system.