Key Takeaways
|
|
Test cases are an important part of quality assurance. Writing effective test cases is the first step towards achieving a high quality product or solution. Here, we’ll discuss innovative tools, techniques, and best practices for effective test case development, and address the inefficiencies of traditional approaches.
The concepts and tools used to address these inefficiencies are:
- Categorizing test cases based on quality attributes.
- Approaching test cases using the “Six Thinking Hats” technique.
- Capturing test cases in Mind Maps.
- Applying other concepts and best practices based on needs.
Traditional approach
Test cases are developed by individual testers based on the use case, feature, story, or requirement to be tested. The test cases contain a list of steps and the respective expected results, and are written into either a test case repository such as HP Quality Center or a Microsoft Excel spreadsheet. The test case could have additional metadata, such as the test case ID, test name, description, steps, and expected results.
Inefficiencies in the traditional approach
Some of the inefficiencies in the traditional approach to test case development are:
- Test cases are focused mostly on functional requirements only. Most test cases are functional in nature, deriving directly from the expected functional behavior mentioned in the feature or story. Test cases hardly mention the non-functional requirements.
- Test cases are a reflection of only the tester’s perspective. Test cases are written by a tester and only the tester’s perspective is the main source. Factoring in different perspectives can enrich test cases.
- There is a disconnect between planning test cases and writing test cases. The tester tends to be more focused on writing the test case—with all the required metadata that the test case repository requires—compared to spending time thinking about and designing the case.
- Reviews are inefficient. Test case reviews are tedious and inefficient. The context and essence of test cases is not very clear, given the complex reports generated by the test case repositories and the flat hierarchy of the test cases.
Proposed approach
This proposed approach tries to address all the inefficiencies mentioned above by using innovative techniques, tools, and best practices.
The following diagram explains the process that will help address the inefficiencies. Each of the concepts colored in red is explained in greater detail in subsequent sections.
Quality Attributes
The overall factors that affect run time behavior, system design, and user experience are called “quality attributes.” They represent areas of concern that have the potential for application-wide impact across layers and tiers. Some of these attributes are related to the overall system design, while others are specific to run time, design time, or user-centric issues.
The extent to which the application possesses a desired combination of quality attributes such as usability, performance, reliability, and security indicates the success of the design and the overall quality of the software application. Hence, it is important that the project team identifies these quality attributes and that quality assurance analyzes and tests them.
Once you have identified the quality attributes, the next step is to consider test cases for the given requirement. The purpose is not just to satisfy the functional requirements, but also to address the non-functional requirements. The next section describes a technique that could be used for designing test cases in order to maximize test coverage.
Six Thinking Hats
Dr. Edward de Bono’s Six Thinking Hats is a simple, effective parallel thinking process that helps people be more productive, focused, and mindfully involved. It is used to look at decisions from a number of important perspectives, forcing you to move outside your habitual thinking style and take a more rounded view of a situation.
Each "Thinking Hat" is a different style of thinking. This technique can be used within a team of testers where each tester is wearing a particular hat. The tester is given the license to think to any level of detail for a given feature or story that is within the purview of the colored hat. Different perspectives emerging from the various testers can be captured here.
The following table describes the Six Thinking Hats and what each means for a tester wearing a particular hat:
Hat Color | Description | Usage in Test Planning |
|
The white hat represents objectivity. It is concerned with data, facts, and information that is either known or needed. |
Testers can come up with functional and non-functional test scenarios by the wearing white hat. |
|
The red hat represents the emotional viewpoint. It encourages the expression of emotions. |
Testers can come up with critical smoke test cases by wearing the red hat. |
|
The yellow hat represents optimism. It is sunny and positive, and encourages others to share the same view. |
Testers can come up with positive test scenarios by wearing the yellow hat |
|
The black hat represents pessimism. This hat focuses on potential difficulties and risks, encouraging others to exercise caution. |
Testers can come with negative test scenarios by wearing the black hat |
|
The green hat represents creativity, and is associated with energy and new ideas. |
Testers can come up with creative test cases by wearing the green hat |
|
The blue hat represents a process-oriented mindset. It ensures everything runs smoothly from start to finish. |
Testers can analyze and conclude the test scenarios by wearing the blue hat |
After going through this process, testers should try to capture these test cases in a simple and effective manner. The next section explains the tools and techniques for capturing test cases.
Mind Maps
Mind maps are used to generate, visualize, structure, and classify ideas. They also can be a tool to study and organize information, solve problems, and make decisions. One of the main advantages of using mind maps is that they represent data visually and capture ideas in a hierarchical manner.
We can extend this functionality to writing test cases. There are many free mind map software tools available, such as Free Mind.
Mind Maps for Test Planning
This diagram highlights the various steps involved in developing test cases using mind maps:
Here is a sample mind map containing test cases categorized based on the system quality attributes:
The following steps describe how to produce rapid, higher coverage and more efficient test cases using mind maps. This approach is apt for any software development models, including Agile and waterfall.
Step 1: Create Categories for the Feature/Story
Create the categories as nodes in the mind map, basing them on the identified quality attributes for the feature/story. Possible categories include:
- Functional tests
- Usability tests
- Security tests
- Performance tests
- Scalability tests
Each category could also contain sub-nodes for positive and negative test scenarios. Testers can start with a generic template of all test categories, then narrow it down to the most applicable ones for their tests. With this approach, testers focus on each of the categories listed above rather than thinking about the test cases as a whole.
Step 2: Create High-level Test Cases
Identify and create high level test cases with a one-line description. These descriptions should cover the high-level functionality of the test case as it relates to the categories you defined as part of Step 1.
Mind maps can be used to capture test cases that are derived from the Six Thinking Hats process. The test cases captured in the mind map can be scoped and prioritized in discussion with the team. Finally, once you have determined the scope, you can send this high-level mind map to stakeholders for review.
Step 3: Collaborate and Review
Stakeholder should all review the high-level test cases mind map from Step 2. Mind maps can be ideal for collaborative reviews because teams can easily simplify the information and convey it in an understandable, digestible format.
It is also easier to provide feedback for a mind map than it is for a complex report generated by a traditional test management tool. Reviewers can use various annotations that are supported in a mind map tool to provide efficient and quick feedback.
At the end of this step, high-level tests are compiled and updated with the feedback incorporated.
Step 4: Update the Test Cases
Once the tester has updated the high-level test case mind map as described in Step 3, the next step is to update the high-level test cases by adding test steps and additional descriptions as needed.
Step 5: Import the Test Cases to Test Repository
Once the updated test cases are ready, you can achieve end-to-end traceability by importing test cases to Rally using the Mind Map-Rally Integrator. The Mind Map-Rally Integrator is an in-house tool which imports the tests from mind maps into Rally.
Mind Map Rally Integrator
Mind Map-Rally Integrator is an in-house Java utility which helps testers organize their test cases by imports the test cases present in mind maps to Rally. It addresses the challenge of translating mind maps by importing test cases directly into the test repository.
Conclusion
This proposed approach can lead to rapid, effective, and efficient test case development. Further, the approach’s innovative tools and techniques will help you overcome the inefficiencies of a traditional approach. This method can also easily be integrated with software development lifecycle processes such as Agile, waterfall, and others.
Lakshmi Chandana
Lakshmi Chandana is a software test professional with 15-plus years of experience in enterprise software testing, performance testing, software automation, SaaS application testing, and DevOps.
Other posts you might be interested in
Explore the Catalog
Blog
August 16, 2024
How Broadcom Test Data Manager Helps Enterprises Meet Fast-Changing Global Data Security and Privacy Requirements
Read More
Blog
May 31, 2024
Revolutionizing Healthcare Demands a New Approach to Software Development
Read More
Blog
December 20, 2023
Broadcom Software Academy Wins Silver in Brandon Hall Group’s Excellence in Technology Awards
Read More
Blog
October 20, 2023
The Broadcom Approach to Test Data Management for the Mainframe
Read More
Blog
August 1, 2023
How ARD Helps DevOps Realize Its Full Potential
Read More
Blog
April 20, 2023
Revitalize Your Testing With Continuous Everything Practices to Meet DevOps Goals
Read More
Blog
March 16, 2023
Better Together: Optimize Test Data Management for Distributed Applications with Service Virtualization
Read More
Blog
December 2, 2022
Ambiguous User Story? Perhaps It's Time to Model
Read More
Blog
November 10, 2022