evolution of software testing - chuan chuan law
TRANSCRIPT
Software Testing
Evolution of
Chuan Chuan Law@ChuanCLaw
AGENDA
1 Testing & Software Engineering
2 Automation
3 Time and Quality
4 Where to go from here
Testing and Software Engineering
PART ONE
Waterfall to Agile
KEEP CALM AND LOVE
SOFTWARE ENGINEERING
Bug Catching at Every Phase
Experience: Agile over Waterfall
• Quality: better quality• Time: delivery on time• Cost: less costly bug fixing• Stakeholder: correct product to stakeholder• Staff: less pressure on tester
Getting Rid of Documentation
Getting Rid of Documentation
Automation is Key PART TWO
No Technology is Perfect without a Testing Framework
Examples
• Web applications: Selenium• Mobile: Calabash, Appium, Robotium• .NET: Nunit, Xunit• Java: JUnit• AngularJS: Protractor
Choosing the Right Tool
Choosing the Right Tool
• Most popular used• Community support• Open source vs Commercial• Skills• Custom built
Eg: WebClient class (System.Net) for API & web services
Where to Start the Transition?
• BDD <= Test case, test planeg: SpecFlow
• Simple web driver commands eg: driver.Navigate().GoToUrl()
Example: Where to Start?
More complex logic manipulationeg: IWebElement t = driver.FindElement(By.XPath("//td[@id='content']/div[2]/b")); _jobmsg = t.Text; int i = 0; while (_jobmsg[i].Equals('#') == false) {i++;} i = i + 2; int x = 0; while (i < _jobmsg.Length) { _jobmsg.CopyTo(i, _jobno, x, 1); i++; x++; }
Example: Where to Start?
Framework level eg: Helpers, reusable code
Battling with Selenium drawbackeg: Pages with lots of AJAX calls
Test = User + Design
Example: User + Design
Can pick up more edge case/boundary testingEg: Enter 100 chars into a DB field varchar(50)
Helps understanding the effect of changesEg: Changing a CSS file that is shared across multiple locations
TIME vs QUALITY
PART 3
Time vs QualityBugs
Time vs QualityCritical Path
Time vs QualityInformed Data
Example
Situation: No automation at
all Complex product Time pressure
Solution: Gather top 20 (90% of usage) most
visited pages Analyse the user flow Automate the scenario
Where to Go from Here?
Part 4
Staying Alive
Constant Learning
Learning does not always cost $$
Different Channels
Online conferences eg: GTAC
Blogs from testing philosophers eg: James Bach
Testing sites eg: StickyMinds
Personal Learning Experience
Appium
Eg: GTAC 2013 - Automation for Mobile Apps by Jonathan Lipps
New ideas
Eg: GTAC 2014 - “Take out flaky tests from CI. Put it back when they are
stable. Critical tests should never be taken out” by Ankit Mehta
“Turn off a feature that is buggy” by Ankit Mehta
Spike it!
Sharing is Caring
• Social media• Blog• Github• Forums• Stack Overflow
Example: Blogging
Enjoy!
THANK YOU!
Chuan Chuan Lawwww.chuanchuanlaw.com