Our 6 Thinking hats posts series attracted much attention and discussion on how can groups improve their testing processes, and their testing management. We’ve since noticed that the “Green hat” (creative style) was subject to some questions and interest to learn more.
Creativity can be used for software testing. You can improve your testing process by coming up with new (testing) ideas. Creativity can have a big role to play in software testing, and it’s useful (not only for artists but) also for testers! Here are some ways you can apply the principles of creative thinking in your own work.
Define the target system from a user’s perspective
While developers are mostly concerned with the internal workings of a system, users need to understand how that system will work for them. Understanding this difference is critical for testers.
Testers must be able to determine how well different aspects of a system meet user needs and expectations. In order to do so, we must first understand what those needs and expectations are; this is where our target users come in handy.
Separate the project into its components
The first try to separate the project into its components. This can be done in many ways, for example by breaking down the deliverables into smaller parts. Let’s say you have a big project that is going to take five months of development time. If you look at this one deliverable as a whole, it might seem difficult to handle, but if you break it down into smaller pieces (or “epics”), such as user interface, back-end data access, front end business logic and so on, then each epic has its own set of requirements that can be developed individually with less impact on other aspects of the project or product being built.
It’s like when running a marathon. If you think “I have 42 km to run”, it will be much harder to finish, than if you break it to different sections (every 1, 5 or 10 km) and drive yourself to the next section-end each time.
Try to find more ways of testing the target system
Once you have identified the key aspects of your target system, it’s time to look for more ways of testing it. You can do this by asking yourself questions like:
- What other types of test data does my target system accept?
- How else can I test that my target system is secure?
- Can I use another environment (e.g., cloud) or platform (e.g., mobile) to test my application in a different way?
- Can I use testers that have a different approach – maybe they’re not testing experts but they do bring a new way of trying the product?
Make sure that all components of the target system will be tested
You can’t afford to miss anything. You have to test all components of the target system, including all interfaces, interactions, business rules and data flows.
Make sure that you test every single scenario for each component that is part of the target system. Make sure that any interaction between components are tested as well.
Test not only for standard scenarios, but for uncommon ones too
The next step is to test for the unexpected. Test not only for standard scenarios, but for uncommon ones too. This is where you will find your bugs and issues that might not have been considered before. Again, this may sound like a lot of work and require extra time—but it’s worth it! Testing from this perspective will help you gather important insights about your product that can be used to refine it further in the future.
Test for demand and performance
Test your product with real-world data to simulate the demands it will experience in production. Test at peak usage, and verify that your system scales as it should. Check response times and throughput under load, including the ability to handle peak demand. Test your product’s ability to process many simultaneous requests quickly enough so that users get a good experience from it—and ensure that you can scale up as needed through shading or other techniques.
Test for how easy it is to use your product
Your user interface should be easy to use. This is a simple enough concept, but it’s too easy for companies to make the mistake of designing their software or product with only themselves in mind.
While you’re testing your product, don’t just think about how the customer will interact with it – think about what that interaction looks like from their perspective. Think about how they would solve problems if they encountered them during their use of your product or software.
Make sure that your product’s UI is clear and concise when describing each feature or function available on the platform: think about whether your users will know exactly what each button does without having to read an instruction manual first!
Don’t use only one method of testing; use several methods together at once
A major challenge for software testers is to find all the bugs in an application. An interesting, although challenging, way to do this is by using a combination of several testing methods at once.
Combining different methods will help you find more bugs than any single method alone can provide. It can also help you diagnose problems faster, saving valuable time and money in the process.
It can be done, for example, by allowing different testers to use different methods. Or changing the method after some time of testing with another method. Whatever works best for your project, your team.
A creative approach to software testing will help you find more potential bugs in less time and with less effort
Creative thinking is a skill that can be learned. It’s a skill that can help you find more potential bugs in less time and with less effort. And it can be applied to both your personal life and career as a tester, making you a more effective problem solver and innovator.
We believe that the best way to test is to have an open mind and think outside the box and never forget that the first and main methodology is … common sense.

