Software testing - basic concepts and definitions
Software testing is a test of the relationship between the practical and predictable behavior of a program executed on a final set of studies selected in a specific way. In the broadest sense, a test is considered one of the ways of controlling a property that involves actions in accordance with the management of plans (test management), test design (test design), test (test execution) and test of acquired totals (test analysis).
Verification is the process of evaluating the system or its components in order to find out whether the results of the current phase of formation are suitable for the conditions formed at the source of this step [IEEE]. Are our goals, deadlines, tasks for the study of the plan, concrete in the source of the current step.
Validation is the determination of the conformity of the software being developed to the expectations and needs of the user, the system requirements [BS7925-1].
- The Test Plan is a document describing the whole amount of testing work, starting with the description of the object, strategy, timetable, criteria for starting and ending testing, up to the necessary equipment, special knowledge, as well as risk assessment with options for their resolution.
- Test Design is the stage of the software testing process, on which test cases (test cases) are designed and created, in accordance with the previously defined quality criteria and testing objectives.
- The Test Case is an artifact that describes the totality of steps, the specific conditions, and parameters required to test the implementation of a function or part of it.
- Bug Report is a document describing a situation or sequence of actions that led to an incorrect operation of the test object, indicating the causes and expected result.
- Test Coverage is one of the metrics for evaluating the quality of testing, which is the density of the coverage of test requirements or executable code.
Detalisation. The specification of the test sample is probably the degree of detail of the description of the test steps and the required total, in which the predicted compliance of the transit time for the coating test is foreseen.
Time of passage. The time of the event is the time from the source of the steps of the test sample as a result of the receipt test.
Types of Software Testing
All kinds of software testing, depending on the objectives pursued, can be roughly divided into the following groups:
- Associated with Change Next
We will try to describe in more detail each individual type of testing, its purpose and use in software testing.
Functional types of testing
Functional tests are based on functions and features, as well as interaction with other systems, and can be presented at all levels of testing: Component / Unit testing, Integration testing, System testing and acceptance (Acceptance testing). Functional types of testing consider the external behavior of the system. The following are some of the most common types of functional tests:
- Functional testing
- Security and Access Control
- Testing Interoperability Testing
Non-functional types of testing
Non-functional testing describes tests necessary to determine the characteristics of software that can be measured in different quantities. In general, this is testing how the system works. The main types of non-functional tests are listed below:
- Performance testing (Stress Testing)
- Stability testing (Stability / Reliability Testing)
- Voluntary testing (Volume Testing)
- Installation testing Comfort testing
- Usability Testing Failover and Recovery
- Testing Configuration
Types of Testing After making the necessary changes, as a bug fix/defect correction, the software must be re-tested to confirm the fact that the problem was really solved. The following are the types of testing that need to be done after installing the software, to confirm the functionality of the application or the correctness of the corrected defect:
- Smoke Testing
- Testing Build Verification
- Test Sanitation testing or consistency /(Sanity Testing)