tailieunhanh - Lecture Software testing and analysis: Chapter 23 - Mauro Pezzè, Michal Young

This chapter discusses some of the ways that automation can be employed, as well as its costs and limitations, and the maturity of the required technology. The focus is not on choosing one particular set of “best” tools for all times and situations, but on a continuing rational process of identifying and deploying automation to best effect as the organization, process, and available technology evolve. | Automating Analysis and Test (c) 2007 Mauro Pezzè & Michal Young Ch 23, slide 1 Learning objectives • Understand the main purposes of automating software analysis and testing • Identify activities that can be fully or partially automated • Understand cost and benefit trade-offs in automation • Separate publicity from important features in descriptions of commercial A&T tools (c) 2007 Mauro Pezzè & Michal Young Ch 23, slide 2 Three Potential Roles of Automation • Necessary for introducing a task – example: coverage tools enable measuring structural coverage of test suites • Useful to reduce cost – example: capture and replay tools reduce the costs of reexecuting test suites • Useful to increase (human) productivity – example: software inspection is a manual activity, but tools to organize and present information and manage communication increase the productivity of people (c) 2007 Mauro Pezzè & Michal Young Ch 23, slide 3 Approaching Automation • Prioritize automation steps based on – variations in impact, maturity, cost, scope of the technology – fit and impact on the organization and process • Three (non-orthogonal) dimensions for automation – value and current cost of the activity – extent to which the activity requires or is made less expensive by automation – cost of obtaining or constructing tool support (c) 2007 Mauro Pezzè & Michal Young Ch 23, slide 4 Automation Costs Vary Enormously • Some tools are so simple to develop that they are justifiable even if their benefits are modest – example: generate test cases from finite state machine models • Some tools that would be enormously valuable are simply impossible – example: identify exactly which parts of a program can never be executed (a provably undecidable problem) (c) 2007 Mauro Pezzè & Michal Young Ch 23, slide .