3.5 The Quality Process
3.5.1 Quality Management Process-Component
The quality management process-component strives to bring together the social and methodological aspects of the project with a focus on quality. Some of the responsibilities of this process-component are planning for the project while keeping quality in mind, identifying the standards (including the UML standards for modeling), setting the expectations of the users, and, most importantly, getting the right people together for the quality work.
Figure 3.34 Process-component for quality management
3.5.2 Roles in Quality Management
Quality manager organizes and manages the quality function including creation of the quality environment.
User highlights the quality expectations and provides feedback on the product/team's ability to meet those expectations.
Quality team/quality analysts carry out the quality functions.
3.5.3 Activities and Tasks in Quality Management
Figure 3.35 describes the activities and tasks of the process-component in quality management. Refer to the accompanying CD for a tabular form of these activities and tasks to enable you to create your own customized project plan.
Figure 3.35 Activities and tasks in quality management
3.5.4 Deliverables in Quality Management
The quality plan handles the overall approach to quality within the project.
The test plan handles the management aspect of testing within the project.
The Quality Software Process describes the software process that can be customized and followed by the project members.
The standards (interim/input) exist at all levels within the project, including design, documentation, coding, and testing standards, to name but a few.
3.5.5 Quality Comments on Quality Management
The quality plan includes all documentation related to organizing the quality function. This includes all resources and schedules related to quality management, as well as to the project itself. This can be considered the main controlling deliverable for all quality-related activities in the project.
The quality process is part of the overall QSP, but specifically deals with the process-components related to quality.
The quality manager is responsible for overall planning, execution, and tracking of the quality functionssupported by the project manager.
The user participates in explaining her quality needs and expectations, as well as providing input into quality activities.
The quality expectations are created and continuously updated by the user with the quality manager.
The quality planning activity undertakes planning and documentation of all quality functions.
The quality environment creation deals with the creation of the physical and technical environment for quality activities.
The quality team formation includes staffing, organizing, and motivating the people who perform quality roles in the projects.
The process/model/other standardizations deal with creation and implementation of all relevant standards within the project.
The standards document provides a reference point for all standards within the project. In addition to the process and model standards, there are standards related to languages and data-bases, which are referred to in this iteratively produced standards document.
The test plan deals with the quality control aspect of testing. It is created here especially from the resourcing point of view.
The quality team and quality analyst are responsible for following the standards. At this stage, though, they provide input into the project and the organizational-level standards.
The quality team formation is achieved by users who may decide to become part of the quality team, facilitating direct and continuous input in terms of quality expectations.
The test planning activity creates and updates the test plan.
The process/model/other standardizations are updated and followed by the quality team.
3.5.6 Quality Assurance Process-Component
Quality assurance follows the process-component of quality management and it undertakes the actual effort of assuring the quality of the models and processes in the project. As with most other process-components, the quality assurance process-component is not an independent process-component, but rather is intertwined with the process-components that produce the MOPS, MOSS, and MOBS. The project manager and the quality manager play key supporting roles in the execution of this process-component.
Figure 3.36 Process-component for quality assurance
3.5.7 Roles in Quality Assurance
Project manager/quality manager
3.5.8 Activities and Tasks in Quality Assurance
Figure 3.37 describes the activities and tasks of the process-component in quality assurance. Refer to the accompanying CD for a tabular form of these activities and tasks to enable you to create your own customized project plan.
3.5.9 Deliverables in Quality Assurance
Quality Software Process in enactment. The QSP provides the basis for enacting the quality aspect of the project. This is made up of the templates, deliverables, activities, and tasks (including the ones mentioned here) that focus on quality.
MOPS. The Model Of Problem Space is subject to the rigors of quality assurance activities and tasks.
MOSS. The Model Of Solution Space is subject to the rigors of quality assurance activities and tasks.
- MOBS. The Model Of Background Space is subject to the rigors of quality assurance activities and tasks.
Figure 3.37 Activities and tasks in quality assurance
3.5.10 Quality Comments on Quality Assurance
The MOPS contains the relevant UML diagrams, descriptions, and specifications that are subjected to the quality checks. It is essential that this model is at a suitable level of completion (ideally at the end of an iteration) before quality checks are applied to it. As a result of the quality activities, the MOPS is updated.
The MOSS contains the solution-level UML diagrams. This model is iteratively produced; therefore, its quality checks also iterate with the other two models.
The MOBS is also subject to quality checks (a list of suggested quality checks appears in the accompanying CD for all three models including MOBS).
The project team plays the supporting role to the quality analyst in his attempts to ensure quality of the models.
The quality analyst is the primary role in this process-component. This role ensures that all the quality-related activities and tasks are carried out at the correct time and by the right people. In large practical projects, more than one person plays this role.
Quality Software Process compliance ensures the compliance of the process as it is enacted. The necessary, sufficient, and malleable aspects of the process itself are assured here. This activity is carried out by the quality analyst.
Quality Assuring MOPS undertakes the quality checks for MOPS as suggested on the accompanying CD.
Quality Assuring MOSS undertakes the quality checks for MOSS as suggested on the accompanying CD.
Quality Assuring MOBS undertakes the quality checks for MOBS as suggested on the accompanying CD.
The Quality Software Process in enactment is not a document-based deliverable but rather represents the entire QSP in enactment.
In addition to the necessary roles played by the quality analyst, project manager, and quality manager, these managerial roles provide the organizational support for the quality effort.
Quality Software Process compliance is supported by the project team.
Deliverable correction is a reminder activity. It reminds the project team that they will continue to make corrections to the models, executables, and other deliverables in the project.
In the quality process enactment, the project manager and the quality manager enact the process configured earlier in the process-configuration process-component.
The standards compliance is also organized by the quality manager, but may be enforced by the quality analyst.
3.5.11 Quality Control Process-Component
While the process-component for quality control is mentioned here as a part of the overall quality process, it is discussed in great detail in Chapter 6.
3.5.12 Roles in Quality Control
3.5.13 Activities and Tasks in Quality Control
Figure 3.39 describes the activities and tasks of the process-component in quality control. Refer to the accompanying CD for a tabular form of these activities and tasks to enable you to create your own customized project plan.
Figure 3.38 Process-component for quality control
Figure 3.39 Activities and tasks in quality control
3.5.14 Deliverables in Quality Control
The test plan contains the organizational aspect of testing. This includes details of the people and the schedules of testing, as well as what is expected of the testing process.
The test design provides a more tactical view of testing. Test designs can be organized around subsystems or packages.
The test environment is the physical environment that needs to be created before testing can begin. It is also the software environment (like the test databases and machines) that needs to be created for testing.
Test cases are the basic units of tests. They can be technical or business test cases. They contain, in addition to the steps to be executed in testing, inputs and expected results.
Test data is created, based on the sampling mechanisms (discussed in detail in Chapter 6), to ensure correct execution of testsespecially the ones with dependencies on another.
Test results are documented, collated, and used for reporting purposes. They can also be used to anticipate areas of the system that need more corrections, or even rewrites.
3.5.15 Quality Comments on Quality Control
The test plan is necessary for proper testing organization.
Test cases are the basic units of tests and have to be created by users, testers, and programmers.
Test data is the data on which tests are carried out. This is either the input in a test case or the test database.
Test results should be carefully documented and analyzed.
The tester is the primary actor in this process-component. The tester is played by more than one person, and depending on whether it is a technical or business testing, this role is played by a programmer, a business analyst, or a user.
The quality manager supports the quality control activities.
The model/program finalization is necessary before proper testing commences.
The test case documentation must be carried out before testing can proceed.
The model/program submission is made to the test manager, who then proceeds with the testing.
The test execution is the testing of the model, executable, or whatever artifact is submitted for testing.
The result collation is achieved preferably by using a tool to analyze the result, collate, and report.
The test design provides the sufficiency criteria, as good test designs based around the system design ensure that the testing is modular.
The test environment focuses on creating a good test environment. It ensures that testing progresses in an orderly manner and takes less time than testing without the proper environment.
The modelers, programmer, and user provide all necessary support to the programmer or, at times, play the tester role, as well.
Testing the architecture establishment provides the additional impetus to testing by providing a well-organized basis for conducting the tests. This means organizing the databases, software, and operating systems for testing to commence.
Testing the approach establishment ensures that all participants in the test teams are aware of the testing approach. This can be, at a high level, a decision to intensely test data, but not functionality, and vice versa.
Test environment creation supports the physical creation of the environment.
Reporting results is further analysis and reporting of the results from tests carried out.
Model/program correction is correcting whatever has been found in error.
Regression testing/planning is redoing tests after the corrections have been made by the developers/modelers.