Top Banner
Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Chicago Quality Assurance Assocation
31

Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Dec 17, 2015

Download

Documents

Arnold Williams
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Secrets of Successful

Automation Projects

Presented by

Paul M. Grossman

Software Quality Assurance AnalystQTP Automation Framework Designer

Chicago Quality Assurance Assocation

Page 2: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Portfolio of Custom Software Software Development: .Net, Java, C#

eCommerce (Oracle ATG)

Mobile Applications: iOS, Android, Windows Mobile/WP7, Blackberry

Quality Assurance Testing LoadRunner, QTP, HP ALMS

Custom Tool Development and Frameworks

Performance Testing

Mobile Testing: iOS, Android, Windows Mobile, Tablets

Developed Applications in the following sectors Games & Entertainment

Healthcare

Social Networking

4tegroup.com

Page 3: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Paul M. Grossman

11 years automation experience with HP Tools HP Quality Center 9.0 Certified Product

Consultant HP Quick Test Professional 9.0 Certified Product

Specialist Beta Tester of QTP 9.5 – 11.5 Speaker at Mercury/HP Events Became Automation Engineer due to Perfect

Timing! Manager caught me practicing magic tricks while waiting for system to reboot.

Page 4: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Session Goals

Key success factors in test automation today

Demonstrating test automation ROI Effective framework design techniques Successful script design for Agile

environments

Page 5: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Automation Challenges

Lack of communication of changes/details to testing group

Lack of understanding of should be automated

Lack of variation from plan in test scripts

Insufficient standards

Insufficient Analysis & Design

“Silver bullet syndrome” (automated testing is the “silver bullet” that will end all testing problems on a project)

Lack of change control

Page 6: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Case Study

Automation Project Failure at a Medical Device Manufacturer

Year 1: QA Manager wants automated testing. Buys WinRunner, accepts offer at new company.

Year 2: New QA Manager wants automated testing. Hired Lead Developer (C++), given an Assistant (VBscript).

Goal for automation: 100% coverage.

Year 3: Lead Developer moves to new department. Assistant told automation is high-priority, spare-time project.

Year 4: QA Manager moves to new division Assistant retires.

Results: 0 Defects found. Negative Return On Investment.

Unsuspecting manual tester assigned to automation team. New Division Manager expresses interest in automation.

Manager promotes me to Team

Lead… of defunct Automation

Project.

Page 7: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Top 5 Project Pitfalls

1. Lack of research & planning2. Lack of apparent progress3. Lack of experienced resources4. Not a full time project5. No buy-in

100% automation goal resulted in development in all product areas

20% development in all areas with nothing to show

Project handed over to assistant with no product training

Misperception: FT not needed because automation by it’s definition is automatic, right?

Testers & developers fueled rumors of tool’s stability

Page 8: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Mitigation Strategies

1. Lack of research & planning

2. Lack of apparent progress

3. Lack of experienced resources

4. Not a full time project

5. No buy-in

10% Automation goal

POC Pilot Project

Training

Full-time commitment

Repeat defects manually on a non-automated system

Page 9: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Tips And TricksAvoiding "100% Automation"

Trap 90% Automation can be

approached but it is generally not cost effective

New releases will have more functionality with constantly decreasing code coverage

A percentage of the code could be unreachable code, such as uncalled functions

Pick one: Functionality or Browsers Do the math: You won't have time for everything!

20 - 40% Automation makes a significant impact on the testing

process.

Math: App Developers outnumber your

team?Do they have 6-18 Months head start?

Do they have more than one tool?

Page 10: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Case Study

The Pilot Project

Automate the Acceptance Test (“Smoke Tests”)— Short tests, but too wide of coverage

Commitment to six weeks of full-time development— Became four weeks, 10 days of manual testing

Used “Record & Playback” to create the entire test script— Overwhelming maintenance

Demonstration to follow at the end of the project— Management convinced they purchased the right tool— Asked for training on Winrunner

Request to get training approved!

– Lessons Learned

Page 11: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Case Study

Functional Decomposition Crafted functions from Demo Script to create “TimeSaver”

utilities

Wrote discrete state change functions: TRUE, Worked! FALSE, Uh-Oh!

Modular functions made maintenance manageable

Automated the common interfaces of two additional products

Proposed automating easy features first

– ShowStopper #1: Memory Leak. First 13-hours of endurance test.

– Developers stop blaming tool, now ask for ad-hoc scriptsRequest to attend Mercury World Conference Approved!

Page 12: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Estimated Return On Investment

“Best Bang For The Buck”: Project TimeSavers

Automate tedious manual tasks— Create 64 Annotations - 30 Seconds— Perform 128 End to End Procedures - 30 Minute Drive Space

Test— Register 128 New Patients - 30 Minute Boundary Test

These tests were small, little maintenance Gets testers on your side, reduces their “pain” Scripts were easy to change into reusable

functions

First Quantifiable Return On Investment: $40 (1 Hour)

Final estimated ROI for the company: $2 Million

Page 13: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Estimated Return On Investment

Manual Tester: $40 Avg. hourly

wage, including overtime and

benefits.

Page 14: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Estimated Return On Investment

ROI Formula: Estimate Equivalent Cost of Automation

How much would it cost to hire someone to do this work manually?

Estimated hourly wage (Plus OT & Benefits): $40 Per Hour Average

Determine hours of runtime- 10 hour runs, 5 nights a week 10 x 5 = 50 Hours per system- on 3 systems 50 x 3 = 150 Hours per week

----------------------- 150 x $40 = $6,000

Extrapolated to the end of the year X 52 Weeks -----------------------

$312,000Four years of run time: $1,248,000

Page 15: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Estimated Return On Investment

What would some of the worst defects found by automation have cost the company had they gotten to

the field? Case Study Examples

—ShowStopper #2: Transient Boot Up Failure – Replicated with automation and high end UPS

—ShowStopper #3: Data Transfer Problem– Duplicated issue within five days. – Reason: Related to Network Load limitation.

We pegged the ROI of the worst detected defects by estimating the cost of a single lost customer sale: $100,000

Potential revenue loss from 7 ShowStoppers: $700,000

Plus 1.2 Million not paid to a manual tester: 1.9 Million Est. ROI

Used Functional Test Tool to uncover Network Load

issue?

Page 16: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Estimated Return On Investment

That was then…this is nowWhat would some of the worst defects found by automation have cost your company had they

gotten to the field?

—ShowStopper #1: Credit cards fail to authenticate?– Store is closed world wide.

—ShowStopper #2: Search path leads to infinite loop?– Customers frustrated with site jump to competitor.

—ShowStopper #3: 12-second+ response time?– Customers abandon order– Is customer support being effected?

– Slows down automation code development and debugging

– Slows down development programmers– Slows down manual testers

What if it's Dev, QA or Staging Environment?

Page 17: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Let's take a break!

When we come back…

Tips And Tricks Dealing with Failure What is a Framework anyway?

Page 18: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

What is a Framework? Framework Options

Capture/replay

Function-based

Data-driven

Keyword-driven

Exhaustive

Random

Lexical Analyzer

Hybrid

Page 19: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

What is a Framework?

Driver Loads & Executes Multiple Tests Facilitates Result Reporting

Object Repository or Identification Identifies objects by Class and Property Values Uses Regular Expressions for dynamic values

Data Pre-Defined Generated

Recovery Mechanism Browser closes Object invalid Error generated

A framework is a set of techniques:

• Reduce Maintenance

• Abstract Complexity

• Extend Coverage

Page 20: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Tips And Tricks Initial Project Design

Return To Home State Functionality — Get back to the starting point from anywhere in the application, even if it is not

running.

Navigation and Population— Low level custom actions to Click buttons, Open menus, Select item from lists.

getValidObject (sClass, sName) — A single function that returns a valid object reference from many close

matches. — Object exists (height, width & Abs_x > 0), is enabled, above underlay, closest

to text. — Uses Descriptive Programming or xPath to identify object

Tokens— Stores reusable values, such as an Order Number— Can return intrinsic values like Today's Date.

Assume Failure, Prove Success— Use a global variable & Return Codes for overall success. This creates a single

exit point for script execution.

Modify, Recover, Repeat

Page 21: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Tips And TricksModular Design

Functions… but No Subs— Don’t waste time deciding which to use— Subroutines have no built in functionality for return codes— Sub FileExists (strFile, rc) ‘ Return Code Workaround

All Functions need Return Codes— FileExists = TRUE— IF FileExists(strFile) THEN ProcessFile (strFile)

Use Option Explicit in VBscript — Reduces errors due to variable misspellings

Three Level Keyword Framework— Components (Param1, Param2)

o Keywords (Param1, Param2)All other supporting functions

Enter_CC "Declined"

getValidObjectCLICK "Ok"

Test Scenario# 3

Purchase Order With Discount Code and Pay with Declined Credit Card

Page 22: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Tips And TricksGlobal Variables and

Dictionaries

Minimize global variables:—gloObject: Reference set by

GetValidObject

Use a Dictionary Object—Global—No Naming Convention—Stores Object References—Can be Persistent!—Case Sensitive Key Names

dicFrameworkKey Vaue

"AlreadyFailed"

False

"NextMonth" "June"

"ObjectClass" "WebButton"

"gloObject" [OK Button]

Page 23: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Tips And TricksDealing with Failure

dicFramework("AlreadyFailed") = FALSE

Function CLICK (sButtonName)

If dicFramework("AlreadyFailed") = TRUE Then

Exit Function

End If

blnFound = getValidObject "WebButton", sButtonName 'Sets gloObject

If blnFound = TRUE then

gloObject.Click

Else

dicFramework("AlreadyFailed") = TRUE

End If

End Function

That's an odd naming convention?"glo" = "Global Object

Page 24: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Tips And TricksDealing with Failure

dicFramework("AlreadyFailed") = FALSE

Function CLICK (sButtonName)

If blnFound = TRUE then

On Error Resume Next

gloObject.Click

reportErr ("Click")

On Error Goto 0

Else

dicFramework("AlreadyFailed") = TRUE

End If

End Function

Function reportErr (sFunc)

If err.Number <> 0 Then

Report err.Description & " in " & sFunc

End If

End Function

Page 25: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Thinking Outside The Box getValidObject (sClass, sText)

getValidObject ("Link", "Login") 'Sets gloObject

Three Attempts

— Descriptive Programming (Exact Match)– oBrowser.oPage.Link("innerhtml:=(.*)?Login(.*)?")– False? Add "Index:=0" - True if there multiple objects

— Search Object Collection (First Valid Match)– oDesc("class") = "Link" : oDesc("Name") = ".*Login.*"– Set oLinksCollecton =

oBrowser.oPage.ChildObjects(oDesc)

— Switch Class – oBrowser.oPage.WebButton("innertext:=Login")– oBrowser.oPage.WebElement("innertext:=Login")

Page 26: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Thinking Outside The Box getValidObject (sClass, sText)

getValidObject ("Link", "Login") 'Sets gloObject

Validation – Is this object Visible?– Width > 0– Height > 0– Abs_x > 0– Source_index: Appears over an underling

object

This is not the List object you are looking for—List contains the string we want to select

Page 27: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Agile environments

Version Control—Not vulnerable to local system crash—Code Change Comparison—Merge Changes—Revert Changes

Page 29: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Secrets of Successful Automation Projects

Successful Projects Require— Modular Design, Demonstration, Low Maintenance— Plan for Common Pitfalls— Leverages Agile Processes

Automated tests— Keywords & KW-Based Components— Supporting functions— Dynamic Reusable data— Object identification— Recovery & Cleanup

Potential loss can be quantified as ROI Training Increases ROI Always think outside the box!

Page 30: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Resources

Training Classes HP Certification classes HP Discover LinkedIn Users Group Meetings

On the Web cqaa.org stickyminds.com sqaforums.com advancedqtp.com wilsonmar.com

Page 31: Secrets of Successful Automation Projects Presented by Paul M. Grossman Software Quality Assurance Analyst QTP Automation Framework Designer Secrets of.

Thank you!

Learn more at CQAA.org

[email protected]

Additional Thanks to Lee Barnes

Utopia Solutions

www.UtopiaSolutions.com