About   Slides   Home  

Managed Chaos
Naresh Jain's Random Thoughts on Software Development and Adventure Sports
RSS Feed
Recent Thoughts
Recent Comments

Types of Tests on Agile Projects

I usually categorise my tests in these 6 types:

  1. Unit Tests – Test each unit (class [OO], functional [Functional Programming]) in isolation. Written by Devs.
  2. Domain Logic Acceptance Tests – Tests across the layers, but more focused on validating the core business logic. Written by Customers/Business Analyst and Testers, with the help of Devs. External Dependencies are stubbed out.
  3. Integration Tests – Validates if our code can correctly talk to external (3rd party) dependencies. Written by Devs.
  4. Workflow Tests – Validates if the user can successfully complete a workflow at API or Service layer (Ex: New user buys an online ticket for a conference using Credit Card [1. ticket selection, 2. enter discount code, 3. account sign-in, 4. online payment, 5. attendee’s information and 6. final confirmation].) Here we stub out external dependencies like payment gateway, email notification, etc. Written by Domain Experts, Devs and Testers.
  5. End-to-End Flow Tests – Same as above, with 2 main differences: 1. Flow is written from a UX point of view, not API point of view. 2. Does not stub external dependencies. These tests don’t drive the UI, they operate one layer below the UI. Written by Domain Experts, Devs and Testers.
  6. UI Tests – Validates the navigation in the UI. Mostly used for sanity testing and important in cases of Multi-lingual support. Written by Testers.

More details: Inverting the Testing Pyramid

    Licensed under
Creative Commons License