How to Optimize Your Existing Regression Testing Arthur Hicken May 2012.

Slides:



Advertisements
Similar presentations
1 Perspectives from Operating a Large Scale Website Dennis Lee VP Technical Operations, Marchex.
Advertisements

Top 10 User Mistakes with Static Analysis Sate IV March 2012.
Automating Software Module Testing for FAA Certification Usha Santhanam The Boeing Company.
xUnit Test Patterns (Some) xUnit Test Patterns (in practice) by Adam Czepil.
Test Automation: Coded UI Test
Javascript Code Quality Check Tools Javascript Code Quality Check Tools JavaScript was originally intended to do small tasks in webpages, but now JavaScript.
Detecting Bugs Using Assertions Ben Scribner. Defining the Problem  Bugs exist  Unexpected errors happen Hardware failures Loss of data Data may exist.
Computer Science 209 Testing With JUnit. Why Test? I don ’ t have time, I ’ ve got a deadline to meet The more pressure I feel, the fewer tests I will.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
HP Quality Center Overview.
Chapter 7: Introduction to Debugging TECH Prof. Jeff Cheng.
Feature requests for Case Manager By Spar Nord Bank A/S IBM Insight 2014 Spar Nord Bank A/S1.
SDL Proprietary and Confidential IMS Campaign Manager Campaign Design Workshop SDL Campaign Management Solutions.
Business Process Modeling in Microsoft Visio® Interfacing’s BPMN Modeler: Overview.
Copyright © 2006, ZapThink, LLC 1 Achieving the “5 Nines” of Business Continuity in SOA Applications Jason Bloomberg Senior Analyst ZapThink, LLC.
Testing and Debugging CS221 – 2/13/09. Airline Program.
JUnit. What is unit testing? A unit is the smallest testable part of an application. A unit test automatically verifies the correctness of the unit. There.
Testing HCI Usability Testing. Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
Agile Testing with Testing Anywhere The road to automation need not be long.
Troy Eversen | 19 May 2015 Data Integrity Workshop.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Who am I? ● Catalin Comanici ● QA for 10 years, doing test automation for about 6 years ● fun guy and rock star wannabe.
Installing Virtualisation Software and Virtual Servers.
Process-oriented System Automation Executable Process Modeling & Process Automation.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Basic Web Design. Technology is a tool  FIRST, understand how people actually interact with each other and with the information in their lives, in all.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
Development Testing – Is It Worth It? Arthur Hicken September 2012.
1 Web Based Programming Section 6 James King 12 August 2003.
Continuous Integration and Testing
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Program Development Life Cycle (PDLC)
Plan Design Analyze Develop Test Implement Maintain Systems Development Life Cycle MAT Dirtbikes.
(A radical interpretation) Tomo Lennox Bow Tie computer services Why Agile Works.
Exceptions Handling Exceptionally Sticky Problems.
Problem of the Day  Why are manhole covers round?
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
1 Κατανεμημένες Διαδικτυακές Εφαρμογές Πολυμέσων Γιάννης Πετράκης.
MapReduce Kristof Bamps Wouter Deroey. Outline Problem overview MapReduce o overview o implementation o refinements o conclusion.
The Relational Model1 Transaction Processing Units of Work.
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
Overview of the Automated Build & Deployment Process Johnita Beasley Tuesday, April 29, 2008.
Debugging Computer Networks Sep. 26, 2007 Seunghwan Hong.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
The world leader in serving science Overview of Thermo 21 CFR Part 11 tools Overview of software used by multiple business units within the Spectroscopy.
MTA EXAM Software Testing Fundamentals : OBJECTIVE 6 Automate Software Testing.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Using Workflow With Dataforms Tim Borntreger, Director of Client Services.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Defensive Programming. Good programming practices that protect you from your own programming mistakes, as well as those of others – Assertions – Parameter.
Connect with life Tejasvi Kumar Developer Technology Specialist | Microsoft India
Parasoft : Improving Productivity in IT Organizations David McCaw.
Continuous Delivery and Team Foundation Server 2013 Ognjen Bajić Ana Roje Ivančić Ekobit.
Beginning Software Craftsmanship Brendan Enrick Steve Smith
Automated Testing with PHPUnit. How do you know your code works?
1 Testing A little terminology you’re surely familiar with… Black Box White Box Integration Acceptance Regression.
Major Competitors HarborTouch Windows based POS software
Process improvements for better quality
Unit Testing.
Programming and File Management Part 2
Software Testing.
CSE 403 Software Engineering
Computer Science 209 Testing With JUnit.
Agile testing for web API with Postman
Framework Anil
Presentation transcript:

How to Optimize Your Existing Regression Testing Arthur Hicken May 2012

Why bother with regression testing?  Making sure it works  Find bugs  Fear of change  Compliance issues  HIPAA, FDA, PCI, ISO, DO-178B, MISRA, …  Security  Prevent bugs  Reduce product returns  Increase customer satisfaction  Speed time to market Parasoft Proprietary and Confidential 2

What goes wrong Surprise – it’s not easy to maintain regression test suites!  Time consuming to manage  Complicated to run  Noise Parasoft Proprietary and Confidential 3

What IS noise? Which of the following are noise?  Messages that are wrong (False Positives)  Messages I don’t like  Messages I don’t need (Success update)  Messages I don’t understand Parasoft Proprietary and Confidential 4

Why does noise happen?  The thing to test is noisy  The test itself is noisy  Testing the wrong thing  Using the wrong tool  Using the wrong method Parasoft Proprietary and Confidential 5

Avoid manual labor  Avoid kicking-off tests runs manually  Avoid tests that require human interaction  Whenever possible…  Avoid manual scanning of results  Between releases discuss manual tasks and look for innovative solutions Parasoft Proprietary and Confidential 6

Automation tools  Forget cron  Forget windows scheduler  Hudson/Jenkins et al  Some Requirements:  Conditional logic for failure  Paper trail  Connection to source control  Delta reports Parasoft Proprietary and Confidential 7

Less is more  The truth, the whole truth, and nothing but the truth  Make sure test shows what you need it to, no more, no less  A failed test should roughly indicate the problem  Avoid monolithic tests  Fail frequently  Difficult to maintain  Don’t help debugging  Avoid long sequences of screen captures Parasoft Proprietary and Confidential 8

Code review as a solution  Use review process  Like code review for developers  Does the test prove what we need?  Does it do anything we don’t care about?  Especially important for compliance such as FDA  Check that the test does what it’s supposed to  Increases understanding  Review code and test at the same time  Looking for “too much” is as bad or worse than looking for too little  Compliance issues Parasoft Proprietary and Confidential 9

Severity as a solution  In testing such as static analysis severity helps filter noise  Sometimes we cannot turn off everything we wish  Setup levels such as:  “No go”  Fix if you have time  We’ll do it someday Parasoft Proprietary and Confidential 10

Sharing results   Web page  Hudson, jenkins, and other build managers  Task management  Mylyn, et al Parasoft Proprietary and Confidential 11

Keys to proper testing  Test case key items  Maintainability  Proper assertions  Regular (nightly) runs Parasoft Proprietary and Confidential 12

Manage the delta  Having clean test suite is not always possible  Delta deals with what failed since the last run  Improves ability to keep up with legacy test suites Parasoft Proprietary and Confidential 13

Running the test suite  Batch mode  Use scheduler  Consistent frequency (daily)  Only report failures, not success  Reports go somewhere useful  Tool integration Parasoft Proprietary and Confidential 14

Tester daily workflow  Nightly Run  Testers review results each morning  Update tests - Fix assertions  Send problem code to dev  Kill noisy tests  Usual daily tasks  New tests, etc. Parasoft Proprietary and Confidential 15

Where to store tests  Always under source control  Separate auto-generation from hand-coded  Possible locations  Same dir as class being tested  Same structure, different dir, in the same project  Same structure, but separate testing project Parasoft Proprietary and Confidential 16

Test association  Associate tests with Code and Requirements  Naming Conventions should have meaning  Use code  Use  Improve change-based testing /** * This method tests something very important * username – String with up to 40 chars */ Parasoft Proprietary and Confidential 17

Test Creation Strategies  No silver bullet  Careful thought produces better results  Multiple strategies  Use automation for the framework  Use templates  Create everything by hand Parasoft Proprietary and Confidential 18

Virtualized Infrastructure  Capture or build VMs that are necessary to the testing  Use snapshot/rollback to put the environment in the proper state  Clone/destroy as simple rollback  Share/copy/deploy quickly to desktop or testbed  Great for DB with specific starting data  Great for variations on OS/Browser/… Parasoft Proprietary and Confidential 19

Input exceptions  Auto generation exposes exceptions  Review and handle  Fix code  Drop assertion  Skip test Parasoft Proprietary and Confidential 20

Testing Exception Handling  Frequently Skipped  Prevents crashes  Prevents death spiral Parasoft Proprietary and Confidential 21

Bugs build tests  Bugs should result in new unit tests  Bug tests should be included in regression  Policy should be in place to enforce  Code comments should explicitly link bug tests to the bug report  Prevents recurrence of old issues Parasoft Proprietary and Confidential 22

Is It Working?  Setup policies  Test Coverage  Unit Tests Executed  Base threshold on current results  Incremental improvement Parasoft Proprietary and Confidential 23

Q&A Parasoft Proprietary and Confidential 24