Exhaustive testing is a type of software testing approach where all the behaviors of a system are explored during the tests. If this approach is good in theory, it is not feasible in most testing contexts where time and resources are limited. This article presents the distinguishing characteristics of exhaustive testing and explain how to perform it.
Acceptance software testing
Writing and maintaining a suite of acceptance tests that can give you a high level of confidence in the behavior and configuration of your system is a complex task. This presentation describes approaches to acceptance testing that allow teams to work quickly and effectively; build excellent functional coverage for complex enterprise-scale systems; manage and maintain those tests in the face of change, and of evolution in both the codebase and the understanding of the business problem.
Are your full stack acceptance tests slow, non-deterministic and hard to maintain? You’re not alone. Imagine running hundreds of them in a few seconds, giving the same result every time. How do you think a feedback loop that fast would that affect your team’s productivity?
Behavior-Driven Development (BDD) is an Agile approach that mixes requirement gathering, documentation and acceptance testing. You write human-readable sentences describing the features of your application and how they should work. Then you implement this behavior using a tool that produces automated acceptance tests to verify that the feature is implemented correctly. Open source .NET BDD tools like SpecFlow are used to store the requirements as live documentation and to perform functional or acceptance tests.
In classical (waterfall) project management approaches, the requirements review is an essential gate before starting the actual software development phase. If you participate to these meetings as a software tester, your role is to make sure that the software requirements are testable during the acceptance testing process. In this article, Richard Ellison provides advice on how to handle the requirements validation process from a software testing perspective.
Arquillian is an open source testing platform for the JVM that enables to easily create automated integration, functional and acceptance tests for Java middleware. In this article, Alex Soto presents three options to use Arquillian Cube to manager Docker containers from Arquillian.
When you learn to program, everything happens on the same computer, but when you start working for a (structured) organization, you realize the risks of changing and testing code directly where your users or customers are working. Thus you will have separated environments for developing, integrating or releasing your system. In this article, Richard Ellison provides some best practices for software testers on how to manage software testing environments.