• Unit 8: Software Testing

    The SDLC phases are not necessarily sequential and often overlap, which is the case with software tests. Software testing is the execution of code to find errors and to verify requirements are satisfied. The code executed can be part of the developed code or test code that enables the test itself, for example, code that calls the code under test or demonstrates behavior. Test activity can occur in any phase but typically in implementation and construction. Types of testing include unit testing, integration testing, system testing, and acceptance testing. Each is performed according to a test plan identifying the test strategy and procedures used.

    Testing is an SDLC activity that may occur at any SDLC activity level: requirements, design, construction, test, deployment, and delivery. Software testing is an example of development and maintenance activities used in every phase of the SDLC and, thus, are affected by technological change that affects components at any level, from small components of code to large integrated code components to design and architecture components and to requirements. Software testing methodologies have evolved in parallel with the evolution of software development methodologies. For example, there are testing methodologies for agile, waterfall, incremental, evolutionary, spiral, and OO development methodologies. The long history of the evolution of software testing has resulted in an extensive testing vocabulary, testing strategies, quality features, processes, procedures, practices and techniques, compatible methods (methodologies), and automated testing tools. The software testing support tools listed at the end of this unit no longer exist, are limited to code products, or need to be well known. However, the testing functions they provided continue to evolve and are provided by newer tools, which also support the testing of products of every SDLC phase, support new testing methodologies, models, and languages, focus on satisfying needed quality goals, and utilize AI, large scale data analysis, cloud resources.

    Completing this unit should take you approximately 3 hours.

    • 8.1: Software Testing Terminology

    • 8.2: Software Test Strategies

      Each major software development activity should have a plan. For small projects, a single project-level plan could incorporate each major activity. For large projects, a major activity, especially an activity that occurs in every phase, will have its own plan, such as a software V&V (verification and validation) plan or software test plan. Such plans contain management or technical topics, including goals of the activity, strategies, processes, procedures, techniques, or tools. The next section addresses test quality goals, strategies, processes, and techniques, and the next addresses test strategies in more detail.

    • 8.3: Software Test Coverage

      The test is one verification and validation technique. Others are inspections and reviews, formal proof methods, static analysis, and prototyping. Testing is the execution of requirements analysis, design, code, and test products. (Note that the last is an example of recursion – a test of a test, an important concept in computer science and software engineering). Test scope includes the data and behaviors in the problem domain gathered in requirements analysis and data and behaviors of the products of design, Implementation, and Test activities, such as risk scenarios, environments, and events. Specific examples are security risks, development and operational environments, and system interactions. Test coverage is the percentage of the test scope addressed by testing.

    • Unit 8 Assessment

      • Receive a grade