Skip to content
wannacode

Validation and verification

The shop owner writes "free delivery over 50 €" and means "from 50 €". The developer builds exactly what is written, the tester checks exactly what is written, and the customer with a cart of 50 € pays for delivery. Everybody did their job, and the result is wrong.

This course teaches the two questions that catch such a mistake. Verification asks "did we build it right": does the program meet the requirement. Validation asks "did we build the right thing": is the requirement what the client wants. That is why the course keeps business analysis and testing together: the requirement and the test meet in the concrete example.

Almost the whole course is without code. Its language is requirements, stories, examples, tables and Gherkin scenarios, which the business and the developer read the same way. There is code only in the automation module.

The course is split into modules, and every module into short lessons. A lesson is a series of cards, one idea per card: a case from the shop, the idea behind it, and a small task you check straight away. The exact terms from the certification syllabi are in "More precisely, if you are curious".

The shop is the same as in the other courses, in euros, with the rules people get wrong: free delivery from 50 €, promo codes, at most 10 of a product, an order that goes from new through paid and shipped to delivered, and returns within 14 days.

The course is aligned with ISTQB CTFL v4.0.1 and CT-AcT, the IIBA BABOK Guide v3, IREB CPRE Foundation Level, ISO/IEC 25010:2023 and IEEE 1012 and covers their topics, but it is not accredited and does not award a certificate. You do not need programming, except for the Automation module, which needs one of the languages on the site up to "Real-world programs". Your progress is kept in the browser.

Module 0

Welcome

3 lessons · validation and verification, defects and failures, quality

  1. Welcome
  2. Why programs fail
  3. What quality is

Module 1

Requirements

5 lessons · stakeholders, elicitation, kinds, the good requirement, models

  1. Who has a say
  2. How requirements are elicited
  3. Kinds of requirements
  4. The good requirement
  5. When a table is clearer

Module 2

Stories and acceptance criteria

5 lessons · story, INVEST, splitting, criteria, example mapping

  1. What a story is
  2. The good story: INVEST
  3. Splitting a big story
  4. Acceptance criteria
  5. Example Mapping: rules, examples, questions

Module 3

Scenarios in Gherkin

5 lessons · Given, When, Then, examples, declarative, bad scenarios

  1. Given, When, Then
  2. Scenario Outline and Examples
  3. What, not how
  4. Bad scenarios
  5. Living documentation

Module 4

Traceability

3 lessons · the matrix, change and impact, what coverage does not say

  1. The traceability matrix
  2. When a requirement changes
  3. What coverage does not tell you

Module 5

Static testing

3 lessons · why early, kinds of review, reviewing a specification

  1. Why early
  2. Kinds of review
  3. Reviewing a specification

Module 6

Test design techniques

7 lessons · partitions, boundaries, decision tables, states, coverage, experience

  1. Equivalence partitions
  2. Boundary values
  3. Decision tables
  4. State transitions
  5. Pairwise testing
  6. Code coverage
  7. Testing from experience

Module 7

Levels, types and process

5 lessons · test levels and types, life cycle, plan, risk, defects

  1. Test levels
  2. Test types
  3. Testing in the life cycle
  4. The plan and risk-based testing
  5. Defects and the defect report

Module 8

Non-functional

3 lessons · usability, performance, security as requirements

  1. Usability and accessibility
  2. Performance and load
  3. Security as a requirement

Module 9

Automation

5 lessons · steps with Cucumber, component tests, API and UI, CI

Needs one of the four languages up to the module "Real-world programs": Java · C# · Python · JavaScript

  1. Why and what to automate
  2. From scenario to steps
  3. Component tests
  4. API and user interface
  5. Tests in CI

Module 10

Validating with the client

2 lessons · acceptance testing, measuring after release

  1. Acceptance testing with the business
  2. Measuring after the release

Module 11

Project: promo codes

1 lesson · from the client request to release

Needs one of the four languages up to the module "Real-world programs": Java · C# · Python · JavaScript

  1. Promo codes: from the request to the release

Made by Ivo Gergov as part of Evo Tech's campaign for accessible programming education ·