07 December 2022
Testing in Software Development
Effective software development – meaning fast delivery of reliable systems – depends on quality. High-quality systems are easier to work on, exhibit fewer defects, and don't break when new features are added. High-quality systems, however, are the result of rigorous testing. In this article, we’ll take a look at how testable systems are built, the benefits of such systems, take closer looks at manual and automated testing, and more.
The benefits of building testable systems
Testing forces these properties on a system, which means it becomes more difficult to make a low-quality system, as a lowquality system is very difficult to test. The fastest way to build a system aligns with the best way to build a system – and that’s because of testing. In this way, testing causes systems to become higher quality over time, increasing the benefits mentioned above as a project goes on.
Types of automated testing
There are several broad categories of automated testing. In this whitepaper we’ll take a look at unit testing, acceptance testing, and end-to-end testing.
Best practices for automated testing
Here are a few of the best practices of automated testing, which will help keep your testing processes running smoothly.
- Keep test suites as small as possible. Try to keep runtime fast and time spent on maintenance low.
- Focus on what the system should do; not on what it shouldn't do. This means you test the expected flow, not all the possible error flows.
- Focus on critical paths. The higher the damage when something goes wrong, the more important it is to test automatically.
- Tests need refactoring just as code does. Clean tests are just as important as clean code. Schedule regular time to clean your tests and make sure you refactor tests while you work on something that touches them.
- Test should not rely on the presentation of the Graphical User Interface (GUI). GUIs are volatile. GUI tests should rely on the elements in the UI, such as buttons and fields, but not on things like position or color.