Page 166 -
P. 166

8 - PROJECT QUALITY MANAGEMENT






                   8.3.2 Control Quality: Tools and Techniques


                      The tools and techniques for controlling quality in Section 8.3.2 of the  PMBOK   Guide are applicable for
                                                                                            ®
                   controlling quality for software projects. Additional considerations include the following.

                      Along with the items listed in the PMBOK  Guide, tools and techniques for software quality control (SQC)
                                                           ®
                   include reviews, testing, and the version control elements of configuration management. Reviews take many forms,
                   including walkthroughs and inspections of requirements, design, and code, plus reviews of other work products,
                   such as user manuals and installation instructions. Static analysis and dynamic testing tools are also used. Reviews
                   may involve use of tools that check for common programming mistakes, such as uninitialized variables. Defects are   8
                   corrected when they are found, thereby controlling the quality of the work products.

                      Walkthroughs and inspections applied early in the development process (i.e., to requirements and design
                   documentation) are most effective for controlling software quality. Frequent testing of product increments is another
                   technique that supports software quality control. Testing and demonstration of internal software builds may be
                   conducted on a daily or even hourly basis during the construction phase of a predictive life cycle software project or
                   during an internal iteration cycle of an adaptive life cycle software project. Of the QC tools and techniques identified
                   in the PMBOK  Guide, inspection is one of the most effective ways to identify software defects and omissions in
                               ®
                   software and documentation [15, pages 298–293 and Appendix 7B].

                      Usability evaluations, in the form of demonstrations and walkthroughs, are cost-effective techniques for finding
                   defects and discrepancies that might require reworking the software. Video-recorded usability testing with user
                   representatives, using a “think-aloud” approach, is also useful for finding defects and discrepancies well before a
                   release to end-users.

                      Test-driven development has long proven to be useful in controlling the quality of software. In this approach,
                   test cases are written before writing any software code, and the test cases are run to demonstrate that the tests
                   will fail. Then the new code is added, and the test cases are run again to demonstrate that they no longer fail. Tools
                   are commonly used to automate such testing. In addition, desk exercises of walking through the code can be used.
                      Software testing includes unit testing of code modules, integration and verification testing, validation and
                   acceptance testing, and regression testing. Often, development teams build scaffolding (temporary modules) to
                   support early testing by simulating inputs and outputs from parts of the software that have not yet been constructed.
                   This allows integration or regression testing to be performed at early stages of software development. Testing
                   can also focus on specific quality attributes, such as performance, load, security, or usability. User observation,
                   (formalized as usability testing), and user surveys measure quality-in-use characteristics, such as users’ satisfaction
                   or users’ efficiency in performing work tasks.

                      Testing tools and automated scripts can repeatedly execute tests in a consistent manner with little or no manual
                   intervention, automatically collect and store the test results, compare test results to previous results or expectations,
                   and refresh the test data for another round of testing. Testing tools can provide time for the test team to focus on
                   issues such as the design of tests and analysis of the results.







                   ©2013 Project Management Institute. Software Extension to the PMBOK  Guide Fifth Edition              157
                                                                   ®
   161   162   163   164   165   166   167   168   169   170   171