Category: Testing Throughout The Software Development Lifecycle
-
Regression Testing
The process of repeating tests following changes to a program is referred to as “regression testing”. Regression testing utilizes existing test cases to check that the changes made have produced no new faults and have had no unintentional side effects. In other words, the objective is to ensure that the parts of a revised system…
-
Testing Following Release Development
Alongside the maintenance required by fault correction, project management will also plan extensions and other changes to the system in order to keep it competitive and expand the customer base. Most systems are subject to continuous development—for example, to build improved releases of the product. Such releases are usually coordinated with scheduled maintenance work. For…
-
Testing Following Software Maintenance
Every software system needs to be modified and tweaked during its lifetime. This process is usually referred to as “software maintenance”. Software does not wear out. In contrast to the maintenance of hardware and unlike physical industrial products, the purpose of software maintenance is not to maintain the ability to operate or to repair damages…
-
Testing New Product Versions
So far, we have simply assumed that a software development project ends when its acceptance tests have been passed and the product has been delivered. However, things look very different in reality. Initial delivery marks only the beginning of a software product’s lifecycle. Many software products are used for years, or even decades, and are…
-
Requirements-Based and Structure-Based Testing
Requirements-based testing is a black-box technique in which test cases are designed based on requirements. It is also called specifications-based testing, because it uses the specifications of the externally observable behavior of the software as its test basis. This kind of specification can take various forms—for example, use cases or user stories. The corresponding testing…
-
Non-Functional Tests
Non-functional requirements describe attributes of a system’s functional behavior—i.e., how “well” a system or component should fulfill its function. Its implementation strongly influences customer/user satisfaction and therefore also how well liked the system is. According to [ISO 25010], such characteristics include user satisfaction and efficiency. From the manufacturer’s viewpoint, flexibility and portability are important aspects…
-
Functional Tests
Functional testing includes all test techniques and methods that are used to test the observable input/output behavior of a test object. Functional test cases are built using the “black-box” technique described in section 5.1. The functional requirements are the test basis for the planned system behavior. Functional requirements and functional suitability Functional requirements13 specify the behavior expected…
-
Test Types
The previous sections detailed the test levels that you need to cover during software development. The focus and objectives of these tests vary from level to level, so different types of test have to be performed with varying thoroughness. We differentiate between the following basic types:
-
System Testing
Terminology Once integration testing is complete, the next test level is system testing. This level checks that the complete, integrated system actually fulfills its specified requirements. Here too, you might ask yourself why this step is necessary following successful component and integration testing. Reasons are: Reasons for system testing Case Study: VSR-II system testing For…
-
Integration Testing
Terminology Integration testing is the next level that follows on from component testing. Integration testing assume that the test objects handed over to this level are already component tested and that any component-internal defects have been corrected as far as possible. Integration Developers, testers, and specialized integration teams then assemble groups of these components into…