TestIstanbul Conferences 2013 TestIstanbul 2013 Conference “Future Of Testing: New Techniques and Methodologies” A Systematic Approach for Increasing the.

Slides:



Advertisements
Similar presentations
Test Yaodong Bi.
Advertisements

Test process essentials Riitta Viitamäki,
Test Automation Success: Choosing the Right People & Process
Practical Testing Techniques. Verification and Validation Validation –does the software do what was wanted? “Are we building the right system?” –This.
Prashant Lambat Sr. Manager SQA Engineering Symantec Corporation, Pune Date: 29 th January 2011.
MIS 2000 Class 20 System Development Process Updated 2014.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
1.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Introduction to Software Testing
Design, Implementation and Maintenance
© Company Confidentialwww.itcinfotech.com Business Case for Test Automation S.Janardhanan Chief Technology Officer ITC Infotech India Limited Business.
NYC Technology Forum Introduction to Test Automation 11/2/07 All rights reserved Not to be reproduced without permission Bill Rinko-Gay Solutions Director,
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
Functional Testing Test cases derived from requirements specification document – Black box testing – Independent testers – Test both valid and invalid.
Test Design Techniques
System/Software Testing
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
On the Testing Maturity of Software Producing Organizations Mats Grindal Jeff Offutt Jonas Mellin.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
TESTING.
An Introduction to MBT  what, why and when 张 坚
Copyright © Siemens AG All rights reserved. Essential Criteria on MBT to Ensure Quality of Software in Industry PVR Murthy Andreas Ulrich Siemens.
CPIS 357 Software Quality & Testing
Testing – A Methodology of Science and Art. Agenda To show, A global Test Process which work Like a solution Black Box for an Software Implementation.
RUP Implementation and Testing
Testing : A Roadmap Mary Jean Harrold Georgia Institute of Technology Presented by : Navpreet Bawa.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Identify steps for understanding and solving the
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
MERCURY BUSINESS PROCESS TESTING. AGENDA  Objective  What is Business Process Testing  Business Components  Defining Requirements  Creation of Business.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
Software Construction Lecture 18 Software Testing.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Development A Proposed Process and Methodology.
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
July, 2008 Impati – Software Test Solutions. July, Contents Testing Service Overview and Approach Test Services and Industries Key Services Offering.
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CS 5150 Software Engineering Lecture 22 Reliability 3.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Manual Testing Concepts Instructor: Surender. Agenda  Content: 1. Testing Overview I. What is testing II. Who does testing III. When to Start Testing.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
Software Testing and Quality Assurance Practical Considerations (1) 1.
Applied Software Project Management SOFTWARE TESTING Applied Software Project Management 1.
ISQB Software Testing Section Meeting 10 Dec 2012.
Applied Software Testing
Essential Needs of Software Test Automation
Regression Testing with its types
Software Engineering (CSI 321)
IT6004 – SOFTWARE TESTING.
Applied Software Implementation & Testing
Sharing the good, the bad, the ugly & What can we do about it?
Software Engineering Fundamentals
Presentation transcript:

TestIstanbul Conferences 2013 TestIstanbul 2013 Conference “Future Of Testing: New Techniques and Methodologies” A Systematic Approach for Increasing the ROI of Software Test Automation Vahid Garousi, Associate Professor Senior Software Consultant

TestIstanbul Conference 2013 Background Many test teams adapt software test automation But unfortunately, often times, the automation experience ends with negative outcomes e.g., it becomes costly to maintain automated test suites, in parallel to changes in the production code Excited then disappointed…! Return on Investment (ROI) from test automation Reason: following improper test automation strategies Result: In such cases, project managers decide to ignore automated test suites in their entirety and decide to not use test automation again.

TestIstanbul Conference 2013 Objective Goal: to systematically answer the following questions: – When to automate (test cases)? – What to automate? (test cases, methods, class, etc.) – So that the ROI of test automation is increased

TestIstanbul Conference 2013 Outline of the Presentation A brief overview of automation across the software test process Successful vs. unsuccessful Test Automation When is test automation has the highest ROI? Choosing when and what to automate Experience from one of our projects in measuring ROI and Successful Test Automation End-to-end Activities of Manual/Automated Testing and the Costs Involved Q/A

TestIstanbul Conference 2013 Outline of the Presentation A brief overview of automation across the software test process Successful vs. unsuccessful Test Automation When is test automation has the highest ROI? Choosing when and what to automate Experience from one of our projects in measuring ROI and Successful Test Automation End-to-end Activities of Manual/Automated Testing and the Costs Involved Q/A

TestIstanbul Conference 2013 Overview of automation across the software test process Test automation does NOT mean 100% automation in all testing tasks! Let’s review the different tasks in SW testing:

TestIstanbul Conference 2013 Automation in Test-case Design Test-case Design (Criteria-based): Design test input values to satisfy coverage criteria (e.g., line coverage, or requirements coverage/traceability) Usually done manually, but can be automated (combinatorial test tools) Test-case Design (Human knowledge-based): Design input test values based on domain knowledge of the program and human knowledge of testing Also called exploratory testing Almost always done manually. We can hardly develop a program to document domain knowledge (example: power engineers)

TestIstanbul Conference 2013 Automation in Test Scripting Test Scripting: Writing the test cases either for manual or automated test execution Can be done manually or automated Do you remember (have!) thick documents of manual test scripts (hard or soft copy) Can we have tools to auto generate automated test scripts?! (yes, there are some!)

TestIstanbul Conference 2013 Automation in Test Execution Test Execution: The common interpretation of “automated testing”! Run tests on the software and record the results Can be done manually or automated

TestIstanbul Conference 2013 Automation in Test Evaluation and Result Reporting Test Evaluation (oracle): Evaluate results of testing (pass/fail), a.k.a. test verdict, and report results to developers Again, can be done manually or automated Test Result Reporting: Again, can be done manually or automated

TestIstanbul Conference 2013 The big picture! There are often inter-dependencies among the following decisions Leads to…

TestIstanbul Conference 2013 Outline of the Presentation A brief overview of automation across the software test process Successful vs. unsuccessful Test Automation When is test automation has the highest ROI? Choosing when and what to automate Experience from one of our projects in measuring ROI and Successful Test Automation End-to-end Activities of Manual/Automated Testing and the Costs Involved

TestIstanbul Conference 2013 Successful Test Automation w.r.t. ROI Classical chart on ROI: Upfront cost of automation (development of automated test suite, etc). Payoff point (“sweat spot”!) Only if the decision to automate (and how much of it) has been made properly, then we will see this cost saving!

TestIstanbul Conference 2013 The “Ugly Side” of Test Automation To rush into automation just for the sake of it… Upfront cost of automation (development of automated test suite, etc). No payoff point ?? Costs to maintain the test suite is growing, since an IMPROPER test automation strategy was followed Project manager: Let’s throw out the automated test suites and never use test automation!

TestIstanbul Conference 2013 ROI Experiences in Test Automation: Comparison “The Good, the Bad and the Ugly”

TestIstanbul Conference 2013 Outline of the Presentation A brief overview of automation across the software test process Successful vs. unsuccessful Test Automation When is test automation has the highest ROI? Choosing when and what to automate Experience from one of our projects in measuring ROI and Successful Test Automation End-to-end Activities of Manual/Automated Testing and the Costs Involved

TestIstanbul Conference 2013 When is test automation has the highest ROI? (i.e., “worth it” in terms of its business value) Carefully select which of the following activities should be automated (and how much, it is not Boolean!, but rather a fuzzy decision), for which parts of the system, and which test activities should stay manual… so that the sum of all testing costs are the least expensive possible in the entire SW life-cycle i.e., choosing the “numbers” (knobs) on the following diagram We are not advocating 100% pure end-to-end automation! One good decision for a hypothetical team: 20% 80% 40%60% 80% 20%

TestIstanbul Conference 2013 Best Mix of Manual/Automated Testing We need both, but how much of each for each type of testing (acceptance, performance, etc.), system-level use-case, class, component, sub-system, etc. (many levels of granularity) A kind of optimization problem… Example test activity: test scripting … (development) of manual / automated test suites Let’s start with some heuristics: Volatility factor: If we expect a lot of change for a part of system (class, use-case, etc.), and thus the need for re- testing, we should thinking of automated testing for it Cost factor: If manual testing of a part of system is COSTLY, then automate it.

TestIstanbul Conference 2013 Choosing when and what to automate Reminder: Carefully select –which of the following activities should be automated (and how much, it is not Boolean!), –for which part of the system, –and which activities should stay manual… –so that the testing activities are the least expensive possible in the “long-run” Expected volatility: Low Expected volatility: High Cost of manual testing: Low Cost of manual testing: High

TestIstanbul Conference 2013 Outline of the Presentation A brief overview of automation across the software test process Successful vs. unsuccessful Test Automation When is test automation has the highest ROI? Choosing when and what to automate Experience from one of our projects in measuring ROI and Successful Test Automation End-to-end Activities of Manual/Automated Testing and the Costs Involved

TestIstanbul Conference 2013 Our experience Our experience in measuring ROI and successful test automation A selected project: Automated Unit and Functional Testing of a SCADA Software ( ) SCADA: Supervisory Control and Data Acquisition system

TestIstanbul Conference 2013 Automated unit and functional testing of an in-house developed SCADA software Software under test: A commercial large-scale Supervisory Control and Data Acquisition (SCADA) software system Named Rocket, developed by based in Calgary, Canada Has been developed using Microsoft Visual Studio C# Has now been deployed in several locations across Canada and the US

TestIstanbul Conference 2013 Black-box Unit Testing (BBUT): Challenges If we apply the equivalence classing, we will get 19,683 test cases for only this function block. Bad news ;( Challenge 1: Coding of test cases (in NUnit): Too much effort Challenge 2: Coupling of test cases to test input data Challenge 3: Manual generation of expected outputs (test oracle)

TestIstanbul Conference 2013 Black-box Unit Testing (BBUT): Challenges One possible solution → Automated generation of NUnit test code There are some tools out there: Microsoft Pex, JML-JUnit, JUB (JUnit test case Builder), TestGen4J, JCrasher, NModel After evaluating them for our purpose, unfortunately none was suitable (details in our article) Decision: to implement our own test tool!

TestIstanbul Conference 2013 AutoBBUT - Example Usage Reminder: Test code is automatically generated, saving many hours

TestIstanbul Conference 2013 Effectiveness in Detecting Defects Most of the defects were obviously not caught by manual testing conducted by various developers and users during the development process. There were mostly on the boundary value conditions, overflow cases and invalid inputs, denoting the importance of robustness testing in such applications.

TestIstanbul Conference 2013 Return On Investment (ROI) of Test Automation Cost and benefit drivers in the project: Cost DriversBenefit Drivers CD 1: Development of the AutoBBUT tool BD 1: Time saving and test repeatability – No need any more to conduct manual regression testing CD 2: Maintenance of automated unit test suite BD 2: Time saving - No need to manually develop the test code and some of the test oracles (expected outputs) CD 3: Manual coding of some of the expected outputs (test oracles) in test code BD 3: Detection of faults undetected in manual testing iterations

TestIstanbul Conference 2013 In-depth Analysis of the ROI of Test Automation Careful measurements were conducted Summary: We could get a time saving of: ROI = -120 hours (AutoBBUT’s development time) -3 hours (test code inspection and completion) +87 hours (initial development of manual test suite, if it was to be done) +87*6 hours (test code maintenance, since the system evolved 6 times) ROI = 486 hours = 60 man-days More details in: our recent article in the IEEE International Conference on Software Testing, Verification and Validation (ICST), Industry Track, April 2012

TestIstanbul Conference 2013 Outline of the Presentation A brief overview of automation across the software test process Successful vs. unsuccessful Test Automation When is test automation has the highest ROI? Choosing when and what to automate Experience from one of our projects in measuring ROI and Successful Test Automation End-to-end Activities of Manual/Automated Testing and the Costs Involved

TestIstanbul Conference 2013 End-to-end Activities of Manual/Automated Testing and the Costs Involved

TestIstanbul Conference 2013 End-to-end Activities of Manual/Automated Testing and the Costs Involved

TestIstanbul Conference 2013 End-to-end Activities of Manual/Automated Testing and the Costs Involved

TestIstanbul Conference 2013 End-to-end Activities of Manual/Automated Testing and the Costs Involved To increase the ROI of test automation, we need to systematically decrease the costs in each activity, e.g.: Benefiting from “test patterns” in development of test code to increase its maintainability

TestIstanbul Conference 2013 Outline of the Presentation A brief overview of automation across the software test process Successful vs. unsuccessful Test Automation When is test automation has the highest ROI? Choosing when and what to automate Experience from one of our projects in measuring ROI and Successful Test Automation End-to-end Activities of Manual/Automated Testing and the Costs Involved Q/A