Practical Software Testing: A Process-Oriented Approach (Springer Professional Computing)
Format: PDF / Kindle (mobi) / ePub
Based on the needs of the educational community, and the software professional, this book takes a unique approach to teaching software testing. It introduces testing concepts that are managerial, technical, and process oriented, using the Testing Maturity Model (TMM) as a guiding framework. The TMM levels and goals support a structured presentation of fundamental and advanced test-related concepts to the reader. In this context, the interrelationships between theoretical, technical, and managerial concepts become more apparent. In addition, relationships between the testing process, maturity goals, and such key players as managers, testers and client groups are introduced. Topics and features: - Process/engineering-oriented text - Promotes the growth and value of software testing as a profession - Introduces both technical and managerial aspects of testing in a clear and precise style - Uses the TMM framework to introduce testing concepts in a systemmatic, evolutionary way to faciliate understanding - Describes the role of testing tools and measurements, and how to integrate them into the testing process Graduate students and industry professionals will benefit from the book, which is designed for a graduate course in software testing, software quality assurance, or software validation and verification Moreover, the number of universities with graduate courses that cover this material will grow, given the evoluation in software development as an engineering discipline and the creation of degree programs in software engineering.
to the degree to which a system, system component, or process meets customer or user needs, or expectations. In order to determine whether a system, system component, or process is of high quality we use what are called quality attributes. These are characteristics that reflect quality. For software artifacts we can measure 24 | Test i ng Fun d a me n t a l s the degree to which they possess a given quality attribute with quality metrics. A metric is a quantitative measure of the degree to
example, to insure coverage of compound conditions the tester may decide that multiple decision coverage is a wise testing goal. However, if the code is not complex, and is not mission, safety, or business critical, then simple branch coverage might be sufficient. The tester must also apply this reasoning to selection of a degree of coverage. For example, for a simple nonmission critical module, 85% branch coverage may prove to be a sufficient goal for the module if testing resources are tight.
I nt r oduct i o n t o T e s t i n g a s a n E n g i n e e r i n g Ac t i vi t y In response to the demand for high-quality software, and the need for well-educated software professionals, there is a movement to change the way software is developed and maintained, and the way developers and maintainers are educated. In fact, the profession of software engineering is slowly emerging as a formal engineering discipline. As a new discipline it will be related to other engineering disciplines, and
decide if they are able to adequately cover all necessary features of each method in class testing. Some researchers believe that coverage objectives and test data need to be developed for each of the methods, for example, the create, pop, push, empty, full, and show_top methods associated with the stack class shown in Figure 6.3. Other researchers believe that a class can be adequately tested as a whole by observation of method interactions using a sequence of calls to the member functions with
(TMM)SM [3–7].* An explanation of the value of this process-oriented approach to presenting the discipline of software testing follows in the succeeding sections of this chapter. 1.1 T h e R o le o f P r o c e s s i n S o f t w a r e Q ual i t y The need for software products of high quality has pressured those in the profession to identify and quantify quality factors such as usability, testability, maintainability, and reliability, and to identify engineering practices that support the