A test is the implementation of an acceptance criteria.

Here to raise awareness

The role of the test is not to communicate as it is the role of the acceptance criteria.

However, the test is instead present to ensure that a particular behavior of the application conforms to expected behavior and raises awareness about it if not.

Make a choice

Even if a test is not an acceptance criteria itself, it is important for a test to remain clear on its purpose and so on the acceptance criteria it is implementing.

Once this one is failing and raises awareness, then a decision will have to be made whether the test is wrong and the acceptance criteria changed or if it remained the same and the code is faulty.

If the test is unclear, it could make that decision harder to take, reducing the value of the test or event worse, forcing the developer to drop the test, which would make that test useless.

A great way to avoid this problem and keep your test clear is to adopt the AAA framework.

Manual versus automated

Even if there are more types of tests existing, we can categorize them into two main categories.

Manual tests and Automated tests are both a subset of Acceptance criterias

Manual test

As their names indicate, these tests are run by hand.

They are the first encounter most developers got with testing as they went to check the output of their code.

However, here as they are following an acceptance criteria and so a recipe, they are more professional and make sure you can reproduce the results each time you follow the instructions.

Automated test

Often called abusively tests, automated tests are an investment done by developers to ensure that they can validate an acceptance criteria faster in the long term than manual testing.

However, this comes at a cost and often automated tests are more time-consuming in the short term.

Keep it balanced

Depending on the project you are working on, you will need to automate a certain part of your tests.

However, remember while doing so that all should not be automated as certain acceptance criteria can be either really time-consuming to implement or produce fragile tests that will make then less interesting than just testing them manually.

Any questions? We‘re here to help!

If you still have questions or need further assistance, please don‘t hesitate to reach out to me.