KEYWORDS
- Testing
- Debugging
- Defect
- Error
- Root Cause
- Quality Control
- Quality Assurance
- Testware
- Traceability
- Validation
- Verification
- Test Basis
- Test Case
- Test Suite
- Test Objectives
- Test Data
- Test Procedure
- Test Process
- Test Oracle
- Test Condition
- Test Planning
- Test Monitoring and Control
- Test Analysis
- Test Design
- Test Implementation
- Test Execution
- Test Completion
Testing is Factual or computational operation used to investigate the validity of an assumption and an inference, the relevance of a procedure, or the validity of a correlation.
Software testing is a way to assess the quality of the software and to reduce the risk of software failure in operation
Debugging is the development activity that finds,analyzes,and fixes such defects.
A software bug arises when the expected result dont match with the actual results. ( fault-bug )
Simply defined as a variance between expected and actual.
The defect is a result of error.
Error/Mistake ---> Defect/Fault/Bug ---> Failure
An error is a mistake, misconception, or misunderstanding on the part of a software developer.
In the category of software developer includes software engineers, programmers, analysts, and testers.
The root causes of defects are the earliest actions or conditions that contributed to creating the defects.
Quality Control(QC) involves various activities,including test activities,that support the achievement of appropriate levels of quality.
QC cares about the final product itself.
Quality Assurance(QA) is typically focused on adherence to proper proceses.
In QA we care about the process that we work on.
Testware is a sub-set of software with a special purpose, that is, for software testing, especially for software testing automation.
Traceability is the ability to trace all processes from procurement of raw materials to production, consumption and disposal to clarify "when and where the product was produced by whom."
Test conditions should be able to be linked back to their sources in the test basis, this is known as traceability.
Validation is determining if the system complies with the requirements and performs functions for which it is intended and meets the organization’s goals and user needs.
Validation in testing is build the right product.
Verification makes sure that the product is designed to deliver all functionality to the customer.
Verificaiton in testing is build the product right.
Test basis is defined as the source of information or the document that is needed to write test cases and also for test analysis
Test Basis can also be defined as that data which is needed in order to start the analysis of the test.
Typical Test Basis:
* Requirement document
* Test Plan
* Codes Repository
* Business Requirement
A test case is a document, which has a set of test data, preconditions, expected results and postconditions, developed for a particular test scenario in order to verify compliance against a specific requirement.
Test suite is a container that has a set of tests which helps testers in executing and reporting the test execution status.
* To find defects and failures by reducing the level of risk of inadequate software quality.
* Gaining confidence in and providing information to stakeholders about the level of quality.
* To prevent defects.
* To make sure that the end result meets the business and user requirements.
* To gain the confidence of the customers by providing them a quality product.
Test Data is data that is used to execute the tests on testware. Test data needs to be precise and exhaustive to uncover the defects.
The document that describes the steps to be taken in running a set of tests and specifies the executable order of the tests is called a test procedure in IEEE 829, and is also known as a test script.
Test process is a process rather than a single activity and it starts from test planning then designing test cases,preparing for execution and evulating status till the test closure.
* Planning and Control
* Analysis adn Design
* Implementation and Execution
* Evalutaing exit criteria and Reporting
* Test Closure activities
In computing, software engineering, and software testing, a test oracle (or just oracle) is a mechanism for determining whether a test has passed or failed. The use of oracles involves comparing the output(s) of the system under test, for a given test-case input, to the output(s) that the oracle determines that product should have. The term "test oracle" was first introduced in a paper by William E. Howden. Additional work on different kinds of oracles was explored by Elaine Weyuker.
Test Condition in software testing is the specification that a tester must follow for testing a software application. Test condition is a specific set of constraints which can contain functionalities like transactions, functions or structural elements for test cases in order to test the software application. Test conditions help to ensure that a software application is bug-free.
Test planning refers to planning the activities that must be performed during testing in order to achieve the objectives of the test.
Test planning involces activities that define the objectives of testing abd the approach for meeting test objectives within constraints imposed by the context.
Test monitoring involves the on-going comparison of actual progress aganist planned progress using any test monitoring metrics defined in the test plan.
* Checking test results and logs aganist specified covreage criteria.
* Assesing the level of componenet or system quality based on test result and logs.
* Determining if more tests are needed.
Test analysis is the process of looking at something that can be used to derive test information.
Test analysis determines "what to test" in terms of measurable covreage criteria.
Test design is a process that describes “how” testing should be done. It includes processes for the identifying test cases by enumerating steps of the defined test conditions.
Test analysis answers the question "what to test?" while test design answers the quesiton "how to test?"
* Designing and prioritizing test cases and sets of test cases
* Identifying necessary test data to support test conditions and test cases
* Desingning the test environment and identifying any required infastructure and tools
* Capturing bi-directionnal traceability between the test basis,test conditions,and test cases
The document that describes the steps to be taken in running a set of tests and specifies the executable order of the tests is called a test procedure in IEEE 829, and is also known as a test script. When test Procedure Specification is prepared then it is implemented and is called Test implementation.
Test design answers the question "how to test? while test implementation answers the quesiton "do we now have everything in place to run the tests?"
* Developing ad prioritizing test procedures and potentially creating automated test scripts
* Creating test suites from the test procedures and automated test scripts
* Arranging the test suites within a test execution schedule in a way that results in efficient test execution
* Building the test environment and verifying that everything needed has been set up correctly
* Preparing test data and ensuring it is properly loaded in the test environment
* Verifying and updating bi-directional traceability between the test basis,test conditions,test cases,test procedures,and test suites.
During the test execution, test suites are run in accordance with the test execution schedule
* Executing tests either manually or by using test execution tool
* Comparing actual results with expected results
* Analyzing anomalies to establish their likely causes
* Reporting defects based on the failures observed
* Logging the outcome of test execution
* Verifying and updating bi-directional traceability between the test basis,test conditions,test cases,test procedures,and test results
Test completion activities collect data from completed test activities to consolidate experince,testware,and any other relevant information.
* Checking whether all defect reports are closed,entering change requests or product backlog items for any defects that remain unresolved at the end of test execuiton
* Creating a test summary report to be communicated to stakeholders
* Finalizing and archiving the test environment the test data the test infastructure and other testware for later reuse
* Handing over the testware to the maintance teams,other project teams,and other stakeholders who could benefit from its use
* Analyzing lessons learned from the completed test activities to determine changes needed for future itereations,releases and projects
* Using the information gathered to improve test process maturity
Last revision: 09 June 2022
Author mryesiller