The role of quality assurance on the path to certification
Authors: Rosalinde Schuster & Christoph Legat, Berner & Mattner Systemtechnik GmbH
Contribution – Embedded Software Engineering Congress 2016
To remain competitive in a dynamic, international market, companies are striving for ever shorter and more flexible development cycles. As a result of this development, agile development methods are gaining increasing importance [1]. According to the so-called Agile Manifesto [2], more weight is given to individuals and their interactions, a functioning product state, collaboration with the customer, and the response to change than to processes and tools, comprehensive documentation, and the stability of a plan once created.
However, this contrasts with the requirement to comply with specific standards for the development process and/or products. A standard is a guideline that contains information for standardization regarding a product or process and describes a recognized state of the art [3]. This leads to a tension between agility and the comprehensive documentation of quality assurance measures required by standards. Nevertheless, some elements frequently used in agile development already provide a solid basis for compliance with standards and thus certification, if they are used appropriately and adapted accordingly.
In this context, Scrum [4] represents a simple, widely used framework for organizing work in agile teams: a fixed length of iterations (so-called sprints), each with a working increment as the product version. Scrum is therefore used below as the starting point for an extended process model – Scrum QA – which combines the advantages of agile development with the objective of creating a basis for certification by defining requirements and verifying the development artifact in accordance with regulations through testing and traceability.
The following section provides an overview of the development process underlying Scrum QA and its activities. The subsequent two sections describe the roles and artifacts of the proposed methodology in detail. The article concludes with a summary and an outlook on further developments.
Scrum QA Process: Activities at a Glance
To adequately consider standards-compliant development and the desired certification, the activities used in Scrum (see, for example, Schwaber and Sutherland [4]) must be supplemented according to the requirements arising from any applicable standards. Figure 1 provides an overview of the development process underlying Scrum QA (see PDF).
According to Scrum, initial preparations are carried out in Sprint 0 Sprint 0 is conducted. While this sprint is optional in classic Scrum, it is essential for development in a normatively regulated environment. The foundation for later certification can be laid here: During Sprint 0, suitable monitoring measures for detecting random errors and measures to prevent systematic errors in development are defined. Furthermore, corresponding quality requirements, risk elimination and risk minimization strategies, as well as requirements regarding the architecture of the overall system (e.g., to ensure testability, standards for functional safety require a consistent, modular architecture) are derived from the underlying standards. Based on this, an appropriate test concept can be created, which corresponds to test planning with a description of the relevant test objects and the associated test tasks. The so-called "Definition of Done," which represents a list of completion criteria (e.g., quality, scalability) for the product, is further expanded to include the aspects regarding review and documentation that are typically required by standards.
The so-called Product Backlog In Scrum, the backlog forms the central database for any functions and objectives to be implemented. Testability can be adequately ensured as early as the creation of backlog entries. This allows common certification challenges – such as demonstrating functional safety – to be addressed in a targeted manner.
In accordance with classic Scrum, developments are carried out in the course of individual iterations (SprintsThe sprint is carried out with a predetermined length. The goal of each sprint is always a working product, in accordance with the specifications for a sprint from the... Product Backlog to develop selected functions to be implemented. Sprint Backlog During sprint planning, the tasks to be completed within a sprint are identified and executed. Therefore, preparation and (automated) execution of component and integration tests are necessary during each sprint. If the sprint duration is too short, these activities, required for later certification as part of the necessary regression testing strategy, cannot be adequately performed. In practice, a sprint duration of 30 days has proven to be a suitable compromise between agility and continuity.
Due to the documentation requirements arising from the standards, the Stabilization sprint The stabilization sprint has proven effective as a special form of sprint, typically inserted before a major release. While classic sprints focus on implementing specific functionality, the stabilization sprint serves to demonstrate the product's compliance with standards and to ensure proper documentation. During this sprint, any missing documentation for fulfilling potential safety requirements (if needed) is added or adapted to modified functionalities. The stabilization sprint is characterized by increased inspections and reviews, along with their corresponding documentation. Any feedback from [unclear - possibly "the team" or "the team"] is also incorporated. Expert Regarding compliance with standards, these are incorporated and thus taken into account in the implementation – i.e., in the development artifacts, such as the source code in software development – and its documentation.
Furthermore, the importance of suitable tool environments should be emphasized, as these are particularly crucial in the context of agile development and especially in normatively regulated environments for quality assurance: To guarantee continuous quality assurance and to efficiently create the regularly updated documentation necessary for later certification, an automated test environment for the efficient repeatability of tests (regression strategy) is essential, in addition to configuration management to ensure the traceability of changes throughout the lifecycle or development cycle. While so-called continuous integration – the ongoing merging of developed subcomponents and functions – is already widely used in software development [1], automated creation and testing processes in interdisciplinary system development processes still present a unique challenge.
Roles and responsibilities in Scrum QA
The use of roles and responsibilities for individual activities results in clear accountabilities for the execution of specific, important tasks – especially those necessary to meet underlying standards and achieve corresponding certification. Therefore, the following section describes the adaptations and specific features of roles and responsibilities in the Scrum QA process model proposed here.
The Product Owner He is responsible for product development and coordinates with all relevant stakeholders to make informed decisions. Within the Scrum QA process, he is also responsible for risk management and liaises with relevant external partners. Experts for certification.
The Scrum Master The Scrum Master acts as a coach, facilitator, and mediator for all process participants. Their responsibilities in supporting the team also include providing relevant standards texts and corresponding templates for standards-compliant documentation. Due to their communication skills, the Scrum Master can also be involved as a facilitator in inspections and audits required by standards.
The team The team is responsible for implementation. Depending on the requirements stipulated by the underlying standards, tests are conducted – where possible – taking into account the quality criteria already defined in Sprint 0 (e.g., specific test coverage). Creating the documentation also falls within the team's remit to ensure traceability from requirements to testing.
In addition to the three roles commonly used in Scrum, Scrum QA requires the use of a Test Manager, whose main task is to ensure compliance with standards and quality assurance as an independent body [3]. In addition, the test manager acts as the contact person for questions regarding technical or organizational requirements arising from the applicable standards. Defining the test concept, taking into account any requirements implied by standards, is also among their responsibilities. For example, in the case of functional safety, they are responsible for supplementing technical reports with the results of quality assurance measures, such as tests, reviews, and inspections, to demonstrate the absence of defects.
Scrum QA artifacts
The results of activities within the development process are called artifacts. In the creation of the Increments, which is only implicitly mentioned in Scrum, but is used as an explicit artifact in Scrum QA, it is important to ensure that any development artifacts are instrumentalizable, i.e., that the design can be made testable for different test levels through suitable measures.
For traceability from the request to the test result – and ultimately for successful certification – additional Documentation This is required and explicitly used as an artifact in Scrum QA. The creation of the required, detailed documentation partially contradicts the Agile Manifesto, but is unavoidable in a normatively regulated environment. For example, standards require risk lists or documentation of the results of tests on functional and non-functional requirements. Furthermore, if specific functional safety requirements are stipulated, the results of verification (i.e., proof of the correct creation of the development result) and validation tests (i.e., verification that the development result meets the requirements for its intended use), as well as other quality assurance measures, must be linked in a technical safety report along with safety-relevant key performance indicators of the system. This report serves as the basis for certification by the assessor commissioned by the Product Owner.
Summary and Outlook
This article describes Scrum QA as an extension of Scrum for agile development in a normatively regulated environment. By expanding the responsibilities of existing roles and introducing additional roles, continuous agile quality assurance and ultimately successful certification can be ensured.
Agile teams in normatively regulated environments require extensive testing experience and methodological expertise to determine the test (automation) strategies required by standards and to apply them in accordance with the relevant standards and guidelines. Ensuring testability from design to implementation is crucial. Due to the agility of the approach and the associated increased communication between stakeholders, test management environments can be leaner; continuous integration of developed solution components and consistent configuration management are essential cornerstones for documentation and certification.
In practice, it has been positively evaluated that the approach described in this article, as well as the associated measures, has a positive impact on efficient project execution and successful certification. However, the appropriate selection of project participants proved to be critical to success, particularly with regard to the correct derivation and selection of quality assurance measures from the underlying standards, as well as their suitable agile evolution.
Bibliography
[1] Frank Simon, Manuel Fischer, Karin Vosseberg, Andreas Spillner, Kai Lepler and Mario Winter: „Management Summary of the GTB Software Test Survey 2015/2016“, April 2016
[2] Peter Hruschka and Chris Rupp: „Agile Software Development for Embedded Real-Time Systems with UML“, Carl Hanser Verlag Munich Vienna, 2002.
[3] Andreas Spillner, Thomas Roßner, Mario Winter and Tilo Linz: „Practical Knowledge of Software Testing and Test Management“, dpunkt.verlag, 4th edition, May 2014.
[4] Ken Schwaber and Jeff Sutherland: „The Scrum Guide. The definitive guide to Scrum: The rules of the game“, July 2013.
Agile & Scrum – our training & coaching
Do you want to bring yourself up to date with the latest technology?
Then find out more here MircoConsult offers training courses/seminars/workshops and individual coaching on the topic of Agile & Scrum.
Training & coaching on the other topics in our portfolio can be found here. here.
Agile & Scrum – Expertise
Valuable expertise on the topic of Agile & Scrum is available here Available for you to download free of charge.
You can find expertise on other topics in our portfolio here. here.
