Adopting “Design Thinking” in Software Quality Assurance processes to achieve greater Product Quality Nisha Agrawal, Senior Quality Specialist SAP LABS India Pvt. Ltd. Logo of your organization
Abstract With increasing ways of doing business differently, greater business partner collaborations and evolving technologies; the classical methods of testing the software quality are not enough these days. It is imperative to look at Software Quality differently both from functional & technological point of view. I am proposing to adopt “Design Thinking” to enhance the code coverage during Software Quality Assurance process which is technologically feasible and a viable business strategy, in-turn helps achieving greater Product Quality & higher customer satisfaction.
Design Thinking in the Context of Software Quality Assurance Its very important for any company to find that sweet spot, by doing what, customer is delighted & fetch more usage value & at the same time product company gets more revenue. It’s a WIN- WIN situation for everyone. A cloud company where the release to market are more frequent & changes in the system are even more faster. Coverage of Code to ensure Quality becomes the sweet spot for both customer & product. Design Thinking is a way of finding human needs and creating new solutions using mindset & tools of design. It is solution focused, action oriented & an iterative approach; which involves analysis & imagination. Involve PDCA – Plan, Develop, Check, Analyze , do iterations to reach best possible solution.
Design Thinking Process Idea generation, harness the collective perspectives, create variety & volume in innovation space Centre Piece of human centered design. Phase of taking feedback on prototype from user, another phase of empathy but quite focused one. Test in user’s context. Refine prototypes & solutions Empathize Ideate Define Prototype Feedback Iterative, with each iteration we get closer to solution . Build with User in Mind. List down What and how, we are we going to test is basis for prototype. Synthesizing process, Unpacking of observation. Define a meaningful problem statement to get right solution. Define point of view.
Empathize: Adopting Design Thinking for Software Quality Assurance : Study the feedbacks from product Quality, Customer satisfaction reports. Talk to the Product Owners whose product is below the defined KPIs. List down important aspects of product quality Try to understand internal process of QA. Observe , Watch everything , what stakeholders / Customer says. Pain points Delights Empathize Empathize Define Ideate Prototype Feedback
Define: Adopting Design Thinking for Software Quality Assurance : Unpack the findings collected in previous step Derive a meaningful actionable problem statement : Are testers accommodating product feedback & enhancing regression scope , focusing on product pain points Frequency of tests How do we measure Code coverage & derive a relationship with Quality of the product . Validate what is stakeholders & user opinion on quality of product if expressed in terms of code covered against total code statements available (LoC). Define Empathize Define Ideate Prototype Feedback
Ideate: Adopting Design Thinking for Software Quality Assurance : Use different tools to ideate like brainstorming, Sketching , Building prototype. Keep all assumptions & constraints in mind , try to think out of box. Few Ideas came up during Ideation to improve quality of product & QA process: As soon as changes comes in system, automatically Propose the impacted test cases for executions. Call Beginners, ask them to test for 30 mins as novice. See the pattern of defects user raised during acceptance tests, Build new tests on that basis. See the Code trace , How much code base is touched with existing test cases. Ideate Empathize Define Ideate Prototype Feedback
Prototype: Adopting Design Thinking for Software Quality Assurance : Vote on ideas , debate & finally agree on majority Generic solutions and piolet them & don’t spend too much time on one Prototype. Break steps in smaller consumable chunks to execute. Keep Noting the findings , benefits. Don’t deviate from the expected targets set. If you have more test teams , Pilot parallelly other prototypes, to draw conclusions on prototypes early. Prototype Empathize Define Ideate Prototype Feedback
Feedback: Adopting Design Thinking for Software Quality Assurance : Do regular feedbacks on results & outcomes. Opportunity to learn about User feeling on improvement or on new solutions. With each Iterative cycle Point of view will get refined & we will move more close to user pain points in product development & QA processes. Involve User , When you have results or outcomes are ready for prototypes. This will further reveal the future needs or content with current solution of user. Feedback Empathize Define Ideate Prototype Feedback
Case Study Case Study : We saw our product in Deep Red feedback from Customer who moved recently on new database with same functionality landscape. Though we had closed our testing activities with existing legacy test cases. Reported good amount of defects in the end of each development takt. After RTC , Product quality index was received , where we were below the expected KPI of Customer satisfaction. We as group went through the feedback /Interviewed few internal stakeholders about the process. Followed in dev teams. We learnt that most of defects were introduced between correction close & emergency correction close. Where we were not testing. Empathize Define Ideate Prototype Feedback
Using “Design Thinking” as a tool to improve QA process : Problem Stmt : Improve QA process to ensure Quality & Customer satisfaction Ideas proposed after brainstorming: Revisit our QA strategy and introduce a new test phase between Cc & ECC to prevent any leakage. Map legacy automated test scope to code base, analyze the gaps. Fill them to stop the leakage of defect for ever. Map the code changes to automated test scripts & propose the automated scope for test whenever changes happen in system. Pilots were done in parallel Shared the results with stakeholders & noted the points Proposed. Empathize Define Ideate Prototype Feedback
Outcome : Automatic proposal of test cases targeting changed code is proposed as solution as improvement CC & ECC to prevent any defects leakage. Empathize Define Ideate Prototype Feedback
References & Appendix https://www.Researchgate.com https://dschool-old.stanford.edu
Author Biography Nisha is a Principle Quality Engineer, Quality enthusiast and a Software tester at heart! With 12+ years of experience working in Agile environment in product-based companies, she has had a chance to work in all stages of software testing life cycle from White box, Black box, Automation testing to Regression and SAP Functional correctness testing in Manufacturing industry & ERP core . She also enjoyed her role of mentoring and training the new joiners to her team, and conducting in-house Induction training programs and Knowledge-sharing sessions. In her spare time she likes reading and sharing knowledge about Software Testing, industry trends and various aspects of software testing processes and practices. She is Pursuing M.Tech in “Quality Management” from BITS Pilani. She is passionate about writing on new topics of interest in the industry and also on her own blog at https://people.sap.com/nisha.sharma
Logo of your organization Thank You!!! Logo of your organization