At a glance
A myth: software testing is enormously expensive and time-consuming.
The reality: most of the time and expense lie in the activities of test requirements analysis, and fixing and retesting the bugs, not in the testing itself.
The cause: a principal cause for the time and expense is that software requirements are rarely written with testing in mind. This has two consequences.
The second is that testers must perform lengthy and difficult test requirements analysis of the specifications (usually late in a late-running project) before they can start writing meaningful tests.
And the first is that specifications which are not suitable for testing are also, in point of fact, not suitable for software development. "Don't start to build it until you know how to test it" is an old and valid maxim of engineering. If the specifications don't allow you to identify unambiguous tests of correctness, they don't allow you to build unambiguously correct solutions.
This course teaches principles and practices for writing requirements specifications that are designed to eliminate costly overheads in constructing unambiguously correct solutions, and in explicitly verifying their correctness through testing.
Intended For
Business analysts and systems analysts who must identify and specify stakeholder requirements for software products.
Development managers and leads, and quality managers and leads, who must develop and oversee plans for implementing and verifying stakeholder requirements.
Prerequisites
Participants are expected to have an understanding of business analysis activities.
A suggested lead-in course is Software Education's “Business Systems Analysis” course.
Learning Outcomes
By the end of this course, participants will be able to:
- Understand the close relationship between planning and requirements specification at the start of a project, and testing at the end
- Create and validate testable statements of testable requirements
- Understand the objectives, processes and activities involved with requirements management, from both business and systems perspectives
- Use a variety of tools, techniques, and templates provided with the course materials.
Content
- Understanding Requirements
- Lifecycles & Approaches
- Capability Maturity Model (CMM)
- Standards for requirements & testing (ISO, IEEE etc)
- Quality control
- Requirements Gathering as an Engineering process
- Elicitation
- Analysis
- Documentation
- Validation
- What techniques to use and when to use them
- Identifying requirements
- Types of requirements
- Levels of requirements
- Writing "good" requirements
- Characteristics of requirements statements
- Producing the documentation
- Vision and Scope document
- System Requirements Specification
- Software Requirements Specification
- Supplementary Specification
- Requirements Management
- Prioritising requirements
- Baselining requirements
- Requirements status
- Requirements attributes
- Traceability
- Impact analysis
- Attributes and traceability policies
- Tool support
- Configuration management
- Managing changing requirements
- Requirements & Testing
- Testing: Fundamental Concepts
- The Tester Mindset
- Testing as a Risk Management Tool
- General Testing Principles
- Testing Throughout the Lifecycle
- Test Design Techniques
- Functional testing
- Non functional testing
- Integration testing
- Business scenarios
- End-to-end testing
Method Used
Lecturing is used to transmit theory, but the sessions aim to be as interactive as possible so that all attendees participate actively in identifying common problems and uncovering solutions.
Case study exercises are used to reinforce and cement the learning experience, ideally using real-world projects from the attendee's organisation.


