What’s in a name? Well, in the case of Art + Logic, our name conveys the idea that software development is a combination of art and logic, involving both creativity and logic. We find this to be the case in all aspects of the software development lifecycle. And this is certainly true with software testing.
With that in mind, let’s go to take a brief overview of these high-level categories of software testing, progressing in creativity levels. All of these are valuable tools for building an effective software testing strategy.
Categories of software testing, from least creative to most creative
- Automated tests
- Manual test
- Exploratory tests
Some tests can and should be very logical. For example, any repetitive testing should be included in test cases and considered for automated test scripts. These can be executed quickly and can effectively cover a large part of the application under test.
A main objective hit’s about detecting bugs as early as possible – definitely before an end user sees them and preferably as close to their appearance as possible (perhaps when integrated into a code pipeline deployment). Fixing a bug sooner rather than later saves time, money, stress, reputation and more, although that’s a whole different subject.
But relatively few software projects can be adequately covered with formal test cases or automated testing. The vast majority also require manual testing. Although writing the two test cases and automated test scripts surely require a certain level of creativity, manual testing is the foundation of creativity.
Manual testing requires careful and creative planning and coordination with business and technical goals to make sure they’re all covered. This planning and coordination translates into test scripts – usually in the form of a test case which may include very detailed instructions for the tester.
Once the test begins, the tester should draw on their experience and intuition to make it as effective as possible. You could call it directed creativity.
At the less restrictive end of the creativity scale is exploratory tests, which is a particularly valuable type of manual test that is often overlooked for various reasons (like a lack of budget, a tight schedule or a lack of awareness of this testing approach).
This unscripted testing should be a regular activity in the software development lifecycle as it can take full advantage of the creativity of the tester, intuition and experience of the current project and previous projects. The tester can focus on a general goal in the otherwise unscripted testing session, As exercising a relatively common functionality or perhaps a particularly risky functionality. It’s testing without borders.
Exploratory testing also encompasses smoke test, usually done by a project manager or other team member. This person may have in-depth knowledge of the business and technical objectives of the project or may be someone representing an occasional or trained end user. The smoke test brings in another pair of eyes, covering as much of the application under test as possible in a reasonably short period of time – much like the way smoke spreads quickly to fill a room. This helps to increase confidence in the release.
Whatever form they may take for a specific project, exploratory testing is a great tool for getting closer to random or spontaneous end user behaviors. It can cover user behavior that was not expected. This is what makes it so valuable, especially when used with other more logical test methods.
End users are creative enough to get the software to do what they want it to do.Oh ohoften deviating from the well-scripted and well-tested scenario happy path. It surely follows that software testers have to use a great deal of creativity to help prevent software bugs. being released.