Testing in Incremental and Highly Iterative Software Projects (Elective)

This tutorial covers the Elective area of the Test Management Body of Knowledge (TMBOK) required for the Certified Test Manager (CTM) certification. This tutorial also covers the Elective area of the Certified Software Test Professional requirements.

For cost and cities where this course might be offered, check our Public Training Schedule.To bring this course to your test team at your location, contact our Education and Professionals Services Group.

Concepts

This course focuses on practical issues faced by increasing numbers of testers. These issues arise because most corporations are still fairly traditionally structured even though many software development teams are heading full steam into modern iterative, incremental, component based, software development techniques. This leaves corporate QA stuck coping with an organizational and technical paradigm shift that traditional QA policies and practices are inadequate to handle. In the highly iterative environment characteristic of these modern development projects, developers are called upon to develop certain system-level tests and system testers are expected to plan, support and review the unit and component-level testing process. Risk assessment and overall test asset allocation must also be adapted.

This course helps integrate the development and testing processes according to best current software engineering practices. Attendees learn how to create and execute effective tests for modern software systems. The course covers organizational issues for the testing process introduced by the aggressive iterative, incremental nature of most modern software development projects.

Participants will learn:
  • The characteristics of modern software development techniques and their effect on QA activities
  • How, in the context of iterative, incremental projects, to use risk analysis to balance the need for adequate testing and quality assurance activities with the demands of on-time and within budget .
  • Specific techniques for the selection and construction of test cases, and how to convert stories and use cases into test cases
  • The optimal way to organize the development and testing teams for iterative, incremental projects.
  • To understand the various testing models, patterns, and tools and know when and where it is appropriate to apply them, especially in conjunction with the special needs of iterative software development
  • To be able to develop a testing strategy for a iterative, incremental software project and devise appropriate test cases and allocate test resources in a manner compatible with that strategy
  • The top ten pitfalls of testing in today's modern software engineering environments
Outline
  • Unit 1 - Modern Software Development Techniques
    • Iterative
    • Incremental
    • Component based
    • Process spectrum
    • Mixed culture projects
    • Why mixed culture projects characterize so many of today's significant software development projects - including probably yours
  • Unit 2 - How testing and quality assurance is affected by a modern iterative, incremental software development process
    • Project organizational issues
    • New skill set requirements for testers Additional skill set requirements for developers
    • Risk analysis
    • Testing models
    • Testing "partially finished" artifacts
    • Testing components
    • Testing refactored code and regression testing
    • Testing for extensibility
    • Structured walkthroughs
  • Unit 3 - Creating System Test Cases
    • Use cases vs. stories
    • Stakeholder identification and Risk Analysis
    • Value to the client
    • Hierarchical structuring of requirements in an iterative project
    • Scenarios
    • Tracing requirements to test cases
  • Unit 4 - Test first development
    • Impact on developers
    • Impact on testers
    • Impact on process
    • Impact on tool selection
    • Impact on the requirements to test case process
  • Unit 5 - Baseline requirements for successful testing of quasi-agile development projects
    • Reconciling formal process control and iterative techniques
    • Process requirements
    • Specification requirements
    • Physical space requirements
    • Software tools required
    • Organization requirements
    • Stakeholder requirements
    • Other requirements
  • Unit 6- Summary: How the fundamentals of testing are affected by a modern iterative, incremental software development process
    • Test planning
    • Test budgeting
    • Test execution
    • Test evaluation and process improvement
    • Interactions between the test team and development team
    • Top 10 potential pitfalls
    • Top 10 factors for success