ISTQB Advanced Level Syllabi

1. Basic Aspects of Software Testing

Terms:
Ethics, measurement, metric, safety critical systems, system of systems, software lifecycle.

1.1 Introduction
This chapter introduces some central testing themes that have general relevance for all testing professionals, whether Test Managers, Test Analysts or Technical Test Analysts. Training providers will explain these general themes in the context of the module being taught, and give relevant examples. For example, in the "Technical Test Analyst" module, the general theme of "metrics and measures" (section 1.4) will use examples of specific technical metrics, such as performance measures.

In section 1.2 the testing process is considered as part of the entire software development lifecycle. This theme builds on the basic concepts introduced in the Foundations Syllabus and pays particular attention to the alignment of the testing process with software development lifecycle models and with other IT-processes.

Systems may take a variety of forms which can influence significantly how testing is approached. In section 1.3 two specific types of system are introduced which all testers must be aware of, systems of systems (sometimes called "multi-systems") and safety critical systems.

Advanced testers face a number of challenges when introducing the different testing aspects described in this syllabus into the context of their own organizations, teams and tasks.

1.2 Testing in the Software Lifecycle

Testing is an integral part of the various software development models such as:

The long-term lifecycle approach to testing should be considered and defined as part of the testing strategy. This includes organization, definition of processes and selection of tools or methods.

Testing processes are not carried out in isolation but interconnected and related to others such as:

Early test planning and the later test execution are related in the sequential software development models. Testing tasks can overlap and/or be concurrent.

Change and configuration management are important supporting tasks to software testing. Without proper change management the impact of changes on the system can not be evaluated. Without configuration management concurrent evolutions may be lost or mis-managed.

Depending on the project context, additional test levels to those defined in the Foundation Level Syllabus can also be defined, such as:

Each test level has the following characteristics:

Depending on context, goals and scope of each test level can be considered in isolation or at project level (e.g. to avoid unnecessary duplication across different levels of similar tests).

Testing activities must be aligned to the chosen software development lifecycle model, whose nature may be sequential (e.g. Waterfall, V-model, W-model), iterative (e.g. Rapid Application Development RAD, and Spiral model) or incremental (e.g. Evolutionary and Agile methods).

For example, in the V-model, the ISTQB® fundamental test process applied to the system test level could align as follows:

For each test level, and for any selected combination of software lifecycle and test process, the test manager must perform this alignment during the test planning and/or project planning. For particularly complex projects, such as systems of systems projects (common in the military and large corporations), the test processes must be not only aligned, but also modified according to the project's context (e.g. when it is easier to detect a defect at higher level than at a lower level).

1.3 Specific Systems

1.3.1 Systems of Systems

A system of systems is a set of collaborating components (including hardware, individual software applications and communications), interconnected to achieve a common purpose, without a unique management structure. Characteristics and risks associated with systems of systems include:

1.3.1.1 Management & Testing of Systems of Systems

Higher level of complexity for project management and component configuration management are common issues associated with systems of systems. A strong implication of Quality Assurance and defined processes is usually associated with complex systems and systems of systems. Formal development lifecycle, milestones and reviews are often associated with systems of systems.

1.3.1.2 Lifecycle Characteristics for Systems of Systems

Each testing level for a system of systems has the following additional characteristics to those described in section 1.2 Testing in the Software Lifecycle:

Within systems of systems, a testing level must be considered at that level of detail and at higher levels of integration. For example "system testing level" for one element can be considered as "component testing level" for a higher level component.

Usually each individual system (within a system of systems) will go through each level of testing, and then be integrated into a system of systems with the associated extra testing required.

For management issues specific to systems of systems refer to section 3.11.2.

1.3.2 Safety Critical Systems

"Safety critical systems" are those which, if their operation is lost or degraded (e.g. as a result of incorrect or inadvertent operation), can result in catastrophic or critical consequences. The supplier of the safety critical system may be liable for damage or compensation, and testing activities are thus used to reduce that liability. The testing activities provide evidence that the system was adequately tested to avoid catastrophic or critical consequences.

Examples of safety critical systems include aircraft flight control systems, automatic trading systems, nuclear power plant core regulation systems, medical systems, etc.

The following aspects should be implemented in safety critical systems:

Section 3.11.3 considers the test management issues related to safety critical systems.

1.3.2.1 Compliance to Regulations

Safety critical systems are frequently subject to governmental, international or sector specific regulations or standards (see also 8.2 Standards Considerations). Those may apply to the development process and organizational structure, or to the product being developed.

To demonstrate compliance of the organizational structure and of the development process, audits and organizational charts may suffice.

To demonstrate compliance to the specific regulations of the developed system (product), it is necessary to show that each of the requirements in these regulations has been covered adequately. In these cases, full traceability from requirement to evidence is necessary to demonstrate compliance. This impacts management, development lifecycle, testing activities and qualification/certification (by a recognized authority) throughout the development process.

1.3.2.2 Safety Critical Systems & Complexity

Many complex systems and systems of systems have safety critical components. Sometimes the safety aspect is not evident at the level of the system (or sub-system) but only at the higher level, where complex systems are implemented (for example mission avionics for aircraft, air traffic control systems).

Example: a router is not a critical system by itself, but may become so when critical information requires it, such as in telemedical services.

Risk management, which reduces the likelihood and/or impact of a risk, is essential to safety critical development and testing context (refer to chapter 3). In addition Failure Mode and Effect Analysis (FMEA) (see section 3.10) and Software Common Cause Failure Analysis are commonly used in such context.

1.4 Metrics & Measurement

A variety of metrics (numbers) and measures (trends, graphs, etc) should be applied throughout the software development life cycle (e.g. planning, coverage, workload, etc). In each case a baseline must be defined, and then progress tracked with relation to this baseline.

Possible aspects that can be covered include:

  1. Planned schedule, coverage, and their evolution over time
  2. Requirements, their evolution and their impact in terms of schedule, resources and tasks
  3. Workload and resource usage, and their evolution over time
  4. Milestones and scoping, and their evolution over time
  5. Costs, actual and planned to completion of the tasks
  6. Risks and mitigation actions, and their evolution over time
  7. Defects found, defect fixed, duration of correction

Usage of metrics enables testers to report data in a consistent way to their management, and enables coherent tracking of progress over time.

Three areas are to be taken into account:

1.5 Ethics

Involvement in software testing enables individuals to learn confidential and privileged information. A code of ethics is necessary, among other reasons to ensure that the information is not put to inappropriate use. Recognizing the ACM and IEEE code of ethics for engineers, the ISTQB® states the following code of ethics:

PUBLIC- Certified software testers shall act consistently with the public interest.

CLIENT AND EMPLOYER - Certified software testers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest.

PRODUCT - Certified software testers shall ensure that the deliverables they provide (on the products and systems they test) meet the highest professional standards possible.

JUDGMENT- Certified software testers shall maintain integrity and independence in their professional judgment.

MANAGEMENT - Certified software test managers and leaders shall subscribe to and promote an ethical approach to the management of software testing.

PROFESSION - Certified software testers shall advance the integrity and reputation of the profession consistent with the public interest.

COLLEAGUES - Certified software testers shall be fair to and supportive of their colleagues, and promote cooperation with software developers.

SELF - Certified software testers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.