How to use Design Thinking TO ENHANCE SOFTWARE Quality

How to use Design Thinking TO ENHANCE SOFTWARE Quality

Authored by Software tester Rozalia Baé – a first-time contributor to Women Testers e-magazine.

“The people who are crazy enough to think they can change the world are the ones who do.” – Steven Jobs

Design thinking for software testing can be used for the purpose of generating creative ideas and thereby discovering its own creativity. It offers the possibility to find new solutions by other means.

Design Thinking

“Innovation distinguishes between a leader and a follower.” -Steven Jobs

word cloud
A word cloud of words related to design thinking

Design Thinking cannot be described in just one word. Each individual feels addressed to a particular word and interprets for himself/herself what it means to him/her. Design Thinking has many definitions and each of them is unique, diverse and inspiring.

Design Thinking should help to localize problems, visualize them, and find an individual and creative solution for them. One of the goals is to present the complexity of the problems in small steps and to solve them. It also serves to show a change of perspective and to find solutions by some other means. In doing so, one’s own creativity is to be revealed. Design Thinking can be applied to discover one’s own creativity and develop it further.

Design Thinking for Software Testing

“It’s not a faith in technology. It’s faith in people.” – Steven Jobs

In the age of globalization, it is necessary to enter in the competition and to keep up with the competition. For software testing, it means developing innovative test methods, test types, and test strategies, just as much as testing. This can be achieved by a fundamental change in thought and action. All software testers, developers and managers should be involved in this process of change. Such an innovative practice requires open-minded employees, managers and the company itself.

Design Thinking Algorithms

“Sometimes when you innovate, you make mistakes. It is best to admit them quickly, and get on with improving your other innovations.” – Steven Jobs

Design Thinking is a systematic approach to complex problems. It is geared to the needs of users/customers and is intended to create innovations.

The process is based on three components:

The different perspectives for consideration of the problem are expressed within the following questions:

  • Human Values (desirability): what exactly is desired?
  • Business (viability): what is economically feasible?
  • Technology (feasibility): what is useful/realistic?

Only when all the above questions have been satisfactorily answered can one consider this as a path to innovation.

The core elements of Design Thinking are

  • Multidisciplinary Teams
  • Variable Space
  • Design Thinking Process

Tips on better Brainstorming:

  • Defer judgment
  • Encourage wild ideas
  • Build on the ideas of others
  • Stay focused on the topic
  • One conversation at a time
  • Be visual
  • Go for quantity

Design Thinking for Software Testing: Example

The application will be illustrated and clarified with the help of an example.

Answers to the questions:

  • Human Values (desirability): what exactly is desired?
    • Improvement of software quality through a better testing methodology
  • Business (viability): what is economically feasible?
    • It is economically viable
  • Technologie (feasibility): what is useful/realistic?
    • It is useful and realistic

Multidisciplinary Teams

A creative process requires people from various fields with their diversity, culture and different experiences. This is why multidisciplinary teams are a win for every company. Diversity is also an important success factor for software testing.

In order to generate innovative ideas for software testing, people from diverse areas might be involved. Other than for software testers, there also is a need for programmers, project managers, product managers, marketing managers and designers. Each person is an asset.

Variable Space

The aim of testing is to improve and enhance the quality of the software. Thus, testing is always closely tied to finding creative and innovative ideas.

Design Thinking offers the possibility to generate a creative space (work environment) where creativity can evolve, detached from purely analytical and linear thinking.

The goal of this creative space is to produce a feeling of freedom, thriving and serenity.

Example:

Discover new heuristics for Software Testing with Design Thinking

What are Heuristics?

Heuristic is a strategy that uses information to control problem solving in humans and machines. Heuristics are “rules of thumb”, they are experiential assumptions and also intuitive judgments.

The heuristic is a technique for experiential software testers that can help with problem-solving as well as discovering defects. A heuristic method is then used to quickly come up with a solution that is close to the best possible solution.

In software tests, heuristics provide a simple framework. It is based on past data and probabilities and helps to effectively test programs. By highlighting the location where bugs are found, a heuristic can find new important bugs, no matter how much you know about the program.

Design Thinking Process

Design Thinking process is an iterative process and offers feedback on the previous process steps.

Steps:

  1. Understand
  2. Observe
  3. Point of View
  4. Ideate
  5. Prototype
  6. Test
5af04.png (1346×454)

References: HPI School of Design Thinking

Understand

The goal here is to understand the importance of software testing more precisely and emphasize it. Furthermore, here the resulting problems, both the past and the future ones, can be explained. Just as well as to how the risks have risen.

Consider: The vulnerabilities that have emerged in solving the problem of testing are explained and presented here

Observe

Here the insights from observation are gained. This step is essential because one directly deals with the topic of testing, problems, and risks. Talks are held and they are also heard. Each person explains their own approach and how they solve problems during testing. Everything is documented in a most precise manner.

Consider: The observations resulting from the understanding are analyzed and discussed here

Point of View

This step leads to new perspectives and is the foundation of the creative process. It shows that software testing requires more creative and innovative solutions with regard to the problems and risks. Furthermore, hereby the problems and risks from various perspectives are addressed and investigated.

Consider: The solution is discussed and presented here: finding new heuristics to increase finding bugs

Ideate

In this step, ideas are collected without evaluating them. The collection of ideas takes place in the form of brainstorming, mind mapping, etc. Ideas that are initially were considered unrealistic can help find new ideas (see above “Tips on better Brainstorming”). In terms of software testing, ideas for solving problems are sought here in order to solve the problems and risks.

Consider: To collect new ideas for heuristics think of the below methods.

New Heuristic generation (examples)

→ Palindrome

→ Permutations

→ Play dice

→ Crosswords

→ Dichotomy

→ Ambiguity

→ Puzzles

→ Learning of test oracles

→ Transpose numbers

→ Use of data anomalies

Prototype

A prototype is developed using the aforementioned steps. This prototype can be in the form of a model. The prototype is a possible approach to solving a problem, which is at first investigated and checked. The prototype is illustrated and visualized.

Consider: The Prototype Heuristic Model

New HeuristicsExample
Palindromefunctional testing



System Testing
Permutationssecurity testing
Play dicevisual testing
Crosswordsexploratory testing
Dichotomydata validation testing
Ambiguitystress testing
Puzzlesfunctional testing
Learning of test oraclessoftware migration
Transpose numbersintegration testing
Use of data anomaliesnon functional testing

Test

The prototype is used and tested immediately. For software testing, this could mean that the solution is successful and could be integrated into testing as a fixed essential part. Or it can be seen as a way to further expand the idea.

Consider: These heuristics can be used in sprints (agile) to test how they work. In a positive application, these can later be included in the regression test

Conclusion

“Have the courage to follow your heart and intuition. They somehow know what you truly want to become.” – Steven Jobs

Design Thinking is DYNAMIC and can therefore also be adapted and applied to all disciplines.

References

[1] dschool.stanford.edu

https://dschool.stanford.edu/

https://dschool.stanford.edu/groups/k12/wiki/17cff/Steps_in_a_Design_Thinking_Process.html

https://dschool.stanford.edu/resources-collections/a-virtual-crash-course-in-design-thinking

[2] hpi-academy.de

https://hpi-academy.de/en/design-thinking/what-is-design-thinking.html

https://hpi.de/en/dtrp/publications/overview.html

[3] ideo.com

https://www.ideo.com/about

https://designthinking.ideo.com/

https://www.ideo.com/post/design-thinking-for-educators

https://challenges.openideo.com/blog/seven-tips-on-better-brainstorming

[4] Book: “Design Thinking Live”

Christoph Meinel, Ulrich Weinberg, Timm Krohn

[5] Harvard Business Review

“The Evolution of Design Thinking”, September 2015

[6] wikipedia

https://en.wikipedia.org/wiki/Design_thinking

[7] Test Heuristics Cheat Sheet

http://testobsessed.com/wp-content/uploads/2011/04/testheuristicscheatsheetv1.pdf

[8] Heuristics of Software Testability

http://www.satisfice.com/tools/testability.pdf

Author bio:

Rozalia Baé works as a Software Test Engineer in scrum environment. As a student she worked for SAP Germany and started there her career as a Software Test Engineer. She has testing experience in industry and commerce software, medical software and mobile app testing. She is a Certified Tester of the ISTQB Foundation Level (CTFL) and Certified Tester Advanced Level – Test Manager (CTAL-TM).


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.