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… Continue reading Testing Following Release Development

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… Continue reading Testing Following Software Maintenance

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… Continue reading Testing New Product Versions

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… Continue reading Requirements-Based and Structure-Based 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… Continue reading Non-Functional Tests

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… Continue reading Functional Tests

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… Continue reading System Testing

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… Continue reading Integration Testing