130 likes | 213 Views
Agenda Two distinctly different pieces of test automation , both from the same project. What makes them different ? Why have both?. Balancing Test Automation Techniques. Matt Archer @ MattArcherUk {{{
E N D
Agenda Two distinctly different pieces of test automation, both from the same project. What makes them different? Why have both? Balancing Test Automation Techniques Matt Archer @MattArcherUk {{{ matt.archer@expresssoftware.co.uk http://mattarcherblog.wordpress.com
Behaviour Driven Development (BDD) User Centric Unmanned Key Scenario Coverage
A Specification and an example (bond naming) • Html file containing both specification and example Specification: Bond Naming Conventions The summary name for a bond should be a combination of the issuer, coupon and maturity date in the following format; issuer + coupon (as %) + maturity date.That said, if the bond is perpetual, the maturity date should be replaced by the word "perpetual". Some examples are shown below.
An Automated test / a fixture (bond naming) • Class file to connect the example to the software to test publicclassCheckBondNames : ColumnFixture { publicstring Issuer; publicstring Coupon; publicstringMaturityDate; publicBooleanisPerpetual; publicstring Name() { Bondbond = newBond(); bond.Issuer= this.Issuer; bond.Coupon = this.Coupon; bond.MaturityDate = this.MaturityDate; bond.isPerpetual = this.isPerpetual; NamingServicenamingService = newNamingService(); String name = namingService.getName(bond); returnname; } }
Test results (bond naming) DEMO • Test Results are added to a copy of the original html file
Semi-automated Data Regression Testing Self-Generated Expected Results Focused, But Thorough No Pass / Fail Result
Testing a release for regressions in data validity Release Candidate Current Live Release Oops… A regression bug!
The “compare” routine Highlighted Release Release Candidate Compare String Live_Url String Test_Url String Save_Location Current live Release Void Compare() Void Highlight() Selenium Executed once… For every widget (~10) On every screen (~25) For every client configuration (~12) = (approx. 3000 data tables to compare)
Manual analysis of results What is a bug? What is a deliberate change?
Oracles / reqs are rubbish, get over it • Picture
Test automation polarities Inspired by James Bach’s Exploratory Testing Polarities www.satisfice.com/articles/et-dynamics.pdf
Matt Archer @MattArcherUk matt.archer@expresssoftware.co.uk http://mattarcherblog.wordpress.com Intuition Any Questions? • Picture • (Pulling a loose thread)