testiloquent

Testing-EssentialsThink Like a TesterTest StrategyTest Tooling, AutomationTest Analysis and -DesignPerforming Tests and ReportingAppendix


About Test Analysis

The only common testing truth I know of is that all tests can’t be performed. To perform really good tests it is important to know which test cases can be run. To find out which tests that can be run; and which tests that are most important to run in the given context – Edgren

Guided by the test strategy, the test analysis activities examine the test basis, gathering the information necessary to decide how to test each part and aspect of the system to fully achieve the information objectives.

What the analysis involves will in part depend on what the tests in question are to focus on

Test Levels

Quadrants

See Alex Kotloarskyi’s thoughts on test levels and the scope of tests.

Unit Tests

The test analysis at this level may take into consideration:

Note

Developers are very fond of automation, which is understandable - as we established in the previous section, automation can truly be a game-changer. Yet even at the lower testing levels, not every conceivable test ought to be automated.

Read more on that in Brian Marick’s paper When Should a Test Be Automated?

Integration Tests

In broad strokes, the test analysis will likely take the same points into consideration as at the unit testing level. Including higher-level design specifications such as system architecture in the test analysis will be more common at the integration level than at the unit test level. Tooling and relevant quality criteria and risks in focus will also likely differ.

System Tests

These tests can be run once the system has been built, are more likely to treat the software like a black box and focus on behaviour rather than technical implementation details. Thus, the test basis for system tests may be broader in scope than it would be for unit and integration tests.

Test Basis

User Stories

User Stories

Why the Three-Part User Story Template Works So Well

How Programmers and Testers and Others Should Collaborate on User Stories

Use Cases

https://youtu.be/baY3SaIhfl0

Process

Product development is always a team effort; in fact, it usually involves multiple teams from different disciplines. So the best work systems for development are ones that promote communication and cooperation. – Poppendieck

Your team may be using something called Acceptance Test Driven Development (ATDD), Behaviour Driven Development (BDD) or Specification by Example. Consider yourself lucky. Done well, these processes decrease the effort required for building quality into the product and for effective testing. Required system behaviour is defined in the form of examples, and each example is a test. The more complete the set of examples, the more complete the requirements documentation is.1 The examples keep requirements, tests and the system connected - no outdated test scripts or requirements documentation.

In this article, Liz Keogh recounts how ATDD, BDD and Specification by Example came to be.


Previous: Test Analysis and Design ▪ Next: About Test Design.

  1. Gáspár Nagy and Seb Rose. The BDD Books - Discovery (Kindle Locations 161-165)