SlideShare uma empresa Scribd logo
1 de 60
Mountains to MolehillsA story of QA By Dave Haeffner
Hello, my name is Dave Haeffner and I work at The Motley Fool; an online Financial Investment Community (Fool.com). I used to work in IT Operations. That’s all I knew. My undergrad was a Bachelor of Tehcnology , and I’ve held roughly every job that has to do with that field. But a year and a half ago I transitioned into the role of Quality Assurance Analyst, Tester, Quanalyst… let’s just call it “QA”.  The change was interesting. In Operations I had a reactionary perspective. I would see/be notified of things when they were broken and have to fix them. But when going into QA I thought, “Oh, terrific! I get to find things that are broken and not have to fix them!”. I soon came to realize that QA was less about finding things that are broken, and more about helping to build things that aren’t broken in the first place.
Everything I need to know I learned in Kindergarten… and at Agile 2009. I learned a lot at Agile 2009. A lot of best practices and good ideas.  But this talk focuses on the top 3 things I learned from Agile 2009 and how they have guided me and my work over the last 12 months.
Chris McMahon gave a talk titled “History of a Large Test Automation Project using Selenium” in which he discussed how SocialText approached testing. He had 4 killer take-away points that helped paint a picture of what it takes to have a large automated web testing suite that works well.
 Create/maintain fixtures (DSL)  Feature coverage, like a web  Fast/routine reporting of failures  Quick response/analysis of failures Chris McMahon “History of a Large Test Automation Project Using Selenium”
I had a chance to participate in a lightning talk with some of the major minds in the Agile Community at a lightning talk titled “Slow and Brittle: Replacing End-to-End Testing.  During this talk an idea started to take root; Why is testing so custom and seemingly hard? Why doesn’t some kind of universal web testing harness exist? Why can’t testing be as easy as drinking a cup of coffee? An idea can be a dangerous thing.
ArloBelshee, James Shore “Slow and Brittle: Replacing End-to-End Testing”
On the last day of the conference I had the opportunity to attend an open jam put on by Adam Goucher (with special guest Jason Huggins). Jason Huggins, creator of Selenium, co-founder of Sauce Labs Adam Goucher, contributor to the Selenium open-source community (aka maintainer of Selenium IDE), testing evangelist We chatted about the intended use of Selenium IDE and the power of exporting to a programming language. Selenium IDE: Likened to a flight simulator Selenium RC: How you can effectively fly the plane
Adam Goucher Jason Huggins “Selenium Open Space”
I left the conference with a new perspective.  I felt like this QA stuff was starting to make sense and that I would be able to really make a difference when I got back to work.
When I got back? I saw nothing but mountains.
20/20
It turns out that we were flying the plane with a flight simulator. All automated tests were built using Selenium IDE and grew into a massive set of Smoke and Regression suites that were brittle, slow to run, and provided very poor feedback. 20/20: Our Smoke suite took 20 minutes to run and roughly 20 minutes to interpret. Once the errors were understood, this information would be placed into an e-mail and shipped off to the appropriate Development team. Unfortunately, this information is viewed as a distraction by the Developers since it is out of band with their workflow.
Much like the man with two brains, QA has 2 minds; technical and analytical. Unfortunately, a majority of the QA’s are more analytical than technical.
Limited resources, both funding and human. There was roughly 1 QA for every 6 Developers, and, the training budget was fairly lax (especially given the economy).
What story wouldn’t be complete without spaghetti code? 17 years of a growing code base can have that affect.  And as a result, there are often discrepancies between our production and pre-Live environments.  This presented some interesting challenges when finding issues on the live website that somehow breezed right by our Testing environments.
There was a bit of aversion to change within Tech and the QA Department. Because when you mess with someone’s spaghetti, it can get messy.
The QA Department was viewed as Outsiders and as a result there was a significant communication gap between Developers and QA.  There was also a bit of a throw it over the wall mentality. When an issue was found Devs would often say “works on my machine”.
I started to question my transition from IT Operations and felt like I was going through the 4 stages of grieving. But after much soul searching, I had a thought…
What would Chuck Norris do  (if he were in QA)?
“ He would subdueThe Motley Fool’s use of Selenium IDE with a round-house kick to the face and build something in its place.  Perhaps something Ruby-flavored that leveraged open-source libraries that could be used by everyone; Business, Developerment, QA.  Thus bridging the gap between what is perceived that QA tests and what is actually tested. And he would call it “Testerfield”! “
  +         +          =  Testerfield
The solution we built was an assembly of innovation; cobbling together a bunch of different tools and concepts into a concatenation that we needed and wanted.  And we gave it a name in an attempt to shake the “Selenium” nomenclature since it was a buzz word with some negative connotations.  That and when you name something, you give it an identity. You make it your own. You care for it. A fun side effect of this tool was that we started to gain support/respect from the Dev’s since with it we were able to write some tests that saved them some time.
Too bad our first go-round with Testerfield was a failure… Perhaps Chuck Norris’s business acumen needs some work. This is what you get when you try to solve a problem as a technologist rather than business perspective. There was a bit of signal to noise with Testerfield:  Signal: We could write stable and robust tests  Noise: This was a slightly different approach to testing than QA was used to. The thought of code seemed scary to most of QA, and the resulting output was difficult to interpret
Failure posed a significant problem for this movement. Testerfield was developed through unofficial channels (aka me and an intern).  There was no management mandate for this, no sound from on high, not even an angry mob or surly swear words at the computer screen from QAs when writing tests, just a vision in my head of how things could be.  This meant no management decision would be made until a better solution was presented and captured value
Testerfield AND the old Selenium IDE suites needed to be maintained simultaneously (read: double work) Push back started to appear (aka I was encouraged to write new tests ONLY in Selenium IDE)… But this was before they saw Testerfield 2.0 :-)  I reveled in failure, listened for feedback, adapted the solution, and looked to re-tool my pitch
E = Q * A
I thought that if you can’t measure it, you can’t improve it.  Failure led me to learn about the effectiveness formula (E=Q*A) which offered a good framework on how to view the task at hand. Effectiveness = Quality * Acceptance. If you have a low quality idea that is widely accepted, it is the same as have a high quality idea that is poorly adopted.  Here’s a good write-up on it http://www.prescientdigital.com/articles/best-practices/change-management-strategies-to-support-intranet-adoption/ I felt that our use of Selenium IDE was a low quality solution that was poorly accepted and that Testerfield was a high quality idea. It just needed to be well received.
So I started to wonder about what drove me to action which led me to the Human Action Model (re: Ludwig von Mises – Human Action: A Treatise of Economics).  It basically states that someone suffers from discomfort, has a vision for a better world, and takes action. If I noticed discomfort, had a vision, and took action. How could I get others to follow? How can I get through to people? To have them see the value in this intrinsically?
Enter ‘The Golden Circle’. It is a simple but powerful model for inspirational leadership that all starts with the question “Why?”. Simon Sinek – author of ‘Start With Why’. He offers some historic examples such as Apple, Martin Luther King, and the Wright brothers as well as a counterpoint example; Tivo. There’s a good Ted Talk about this; http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html So I thought about the messaging that I wanted for Testerfield, and here’s what I came up with: We believe that in order to create the World’s Greatest Online Financial Investment Community we need to craft quality software. We plan to do this by providing quick, reliable, and robust feedback to Developers and the Business. We just happen to have a new tool that provides this. Want to take a look? After re-tooling I was ready. Oh, and… propaganda helps.
20 to 20
Testerfield 2.0 (now with propaganda!)  New error reporting could be read by anyone. It was now possible for people to understood what the test suite did (plain English), if it passed, if it failed, and why. The feedback loop (after information receipt) was cut from 15-20 minutes down 15-20 seconds. The communication gap between Dev and QA was beginning to narrow. Respect thermometer increasing.  We started to gain some real traction and picked up a couple of champions along the way. A movement started to take hold. As a result, an opportunity to present to the entire Tech Department appeared, and things started to change (read: funding started to appear).
QA received in house training for Ruby through a company called Jumpstart Lab. As a result, the more Analytical QA’s are now writing new and converting old tests in Testerfield
But what about the speed of the tests? The smoke suite takes 20 minutes to run! And just because you have good reporting doesn't mean that its not a distraction to the Devs who receive it. And, it may be old news by the time they get around to reading it. The process is still out of cycle with the development workflow.  What about parallelization?  Parallelization was something that we thought would be challenging but a problem that had already been solved (within our type of setup). But we were wrong, it was going to be much harder. What options we found either didn't work as we wanted, worked exactly as we wanted but was no longer maintained and outdated (wouldn't work with our version of Ruby) or looked promising but required a rework of our platform architecture and test design. That is, of course, until we found the answer.
20 to 2
Enter Sauce Labs, a provider of cloud testing goodness.  I like to call this performance gain “20 to 2” (actually it's more like 3-1/2 minutes, but 20 to 2 is catchier). We were able to keep our existing reporting, offload the heavy lifting to their grid, get the added benefit of video capture, with minimal changes on our end Some minor additions/changes to our code base, standing up a single linux box at our data center to fork and send the test processes, and configure a secure tunnel).  If you’re not using them, you should.
What’s the score?
I would like to claim this mole hill in the name of QA.
QA
Check out Testerfield.com Dave Haeffner Twitter: @TourDeDave E-mail:  dhaeffner@fool.com
Here is an example output from one of our Selenium IDE tests Title name (can you easily tell what this test does?) The whole test looks fairly gnarly; it’s got teeth What can you deduce from the error? Not much, right?
Testerfield error output (leveraging the Ruby selenium-client gem http://github.com/ph7/selenium-client) Useful category heading and test name – you can tell what the test is and what it does Error – same as previous test, BUT Shows you the pertinent parts of the test - the step that failed AND the steps before and after And more importantly, the screenshot
Mountains to Molehills: A Story of QA

Mais conteúdo relacionado

Destaque

Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 
Cucumber Crash Course
Cucumber Crash CourseCucumber Crash Course
Cucumber Crash CourseDave Haeffner
 
Open Source Investing
Open Source InvestingOpen Source Investing
Open Source InvestingDave Haeffner
 
How To Find Information On Your Own
How To Find Information On Your OwnHow To Find Information On Your Own
How To Find Information On Your OwnDave Haeffner
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)Sauce Labs
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)Dave Haeffner
 
Selenium Tips & Tricks
Selenium Tips & TricksSelenium Tips & Tricks
Selenium Tips & TricksDave Haeffner
 
Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...
Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...
Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...Peter van Amsterdam
 
Exploring LC-MS peptide dynamic range
Exploring LC-MS peptide dynamic rangeExploring LC-MS peptide dynamic range
Exploring LC-MS peptide dynamic rangeAnne Kleinnijenhuis
 
OMICS Publishing Group | Journal of Bioanalysis & Biomedicine
OMICS Publishing Group | Journal of Bioanalysis & BiomedicineOMICS Publishing Group | Journal of Bioanalysis & Biomedicine
OMICS Publishing Group | Journal of Bioanalysis & BiomedicineOMICS International
 
Strategies for bioanalysis of proteins using LC-MS
Strategies for bioanalysis of proteins using LC-MSStrategies for bioanalysis of proteins using LC-MS
Strategies for bioanalysis of proteins using LC-MSAnne Kleinnijenhuis
 
Bioanalysis of drugs from biological samples
Bioanalysis of drugs from biological samplesBioanalysis of drugs from biological samples
Bioanalysis of drugs from biological samplesYachita Rajwadwala
 
Global Regulatory Issues: one BA method, one validation, one report ...
Global Regulatory Issues: one BA method, one validation, one report ...Global Regulatory Issues: one BA method, one validation, one report ...
Global Regulatory Issues: one BA method, one validation, one report ...Peter van Amsterdam
 
Proposal for absolute quantification of modular molecules using a stable isot...
Proposal for absolute quantification of modular molecules using a stable isot...Proposal for absolute quantification of modular molecules using a stable isot...
Proposal for absolute quantification of modular molecules using a stable isot...Anne Kleinnijenhuis
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium SuccessfullyDave Haeffner
 
Understanding software quality assurance in Open Source Software
Understanding software quality assurance in Open Source SoftwareUnderstanding software quality assurance in Open Source Software
Understanding software quality assurance in Open Source SoftwareHwer Aron
 
Simultaneous estimation and validation for gliclazide(yachita)
Simultaneous estimation and validation for gliclazide(yachita)Simultaneous estimation and validation for gliclazide(yachita)
Simultaneous estimation and validation for gliclazide(yachita)Yachita Rajwadwala
 
Distributed automation sel_conf_2015
Distributed automation sel_conf_2015Distributed automation sel_conf_2015
Distributed automation sel_conf_2015aragavan
 

Destaque (20)

Bdd lessons-learned
Bdd lessons-learnedBdd lessons-learned
Bdd lessons-learned
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 
Cucumber Crash Course
Cucumber Crash CourseCucumber Crash Course
Cucumber Crash Course
 
Open Source Investing
Open Source InvestingOpen Source Investing
Open Source Investing
 
How To Find Information On Your Own
How To Find Information On Your OwnHow To Find Information On Your Own
How To Find Information On Your Own
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
Selenium Tips & Tricks
Selenium Tips & TricksSelenium Tips & Tricks
Selenium Tips & Tricks
 
QUALITY ASSURANCE
QUALITY ASSURANCEQUALITY ASSURANCE
QUALITY ASSURANCE
 
Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...
Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...
Global Bioanalysis Consortium: Regulated Bioanalysis - A proposed Global Harm...
 
Exploring LC-MS peptide dynamic range
Exploring LC-MS peptide dynamic rangeExploring LC-MS peptide dynamic range
Exploring LC-MS peptide dynamic range
 
OMICS Publishing Group | Journal of Bioanalysis & Biomedicine
OMICS Publishing Group | Journal of Bioanalysis & BiomedicineOMICS Publishing Group | Journal of Bioanalysis & Biomedicine
OMICS Publishing Group | Journal of Bioanalysis & Biomedicine
 
Strategies for bioanalysis of proteins using LC-MS
Strategies for bioanalysis of proteins using LC-MSStrategies for bioanalysis of proteins using LC-MS
Strategies for bioanalysis of proteins using LC-MS
 
Bioanalysis of drugs from biological samples
Bioanalysis of drugs from biological samplesBioanalysis of drugs from biological samples
Bioanalysis of drugs from biological samples
 
Global Regulatory Issues: one BA method, one validation, one report ...
Global Regulatory Issues: one BA method, one validation, one report ...Global Regulatory Issues: one BA method, one validation, one report ...
Global Regulatory Issues: one BA method, one validation, one report ...
 
Proposal for absolute quantification of modular molecules using a stable isot...
Proposal for absolute quantification of modular molecules using a stable isot...Proposal for absolute quantification of modular molecules using a stable isot...
Proposal for absolute quantification of modular molecules using a stable isot...
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
 
Understanding software quality assurance in Open Source Software
Understanding software quality assurance in Open Source SoftwareUnderstanding software quality assurance in Open Source Software
Understanding software quality assurance in Open Source Software
 
Simultaneous estimation and validation for gliclazide(yachita)
Simultaneous estimation and validation for gliclazide(yachita)Simultaneous estimation and validation for gliclazide(yachita)
Simultaneous estimation and validation for gliclazide(yachita)
 
Distributed automation sel_conf_2015
Distributed automation sel_conf_2015Distributed automation sel_conf_2015
Distributed automation sel_conf_2015
 

Último

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Último (20)

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Mountains to Molehills: A Story of QA

  • 1. Mountains to MolehillsA story of QA By Dave Haeffner
  • 2. Hello, my name is Dave Haeffner and I work at The Motley Fool; an online Financial Investment Community (Fool.com). I used to work in IT Operations. That’s all I knew. My undergrad was a Bachelor of Tehcnology , and I’ve held roughly every job that has to do with that field. But a year and a half ago I transitioned into the role of Quality Assurance Analyst, Tester, Quanalyst… let’s just call it “QA”. The change was interesting. In Operations I had a reactionary perspective. I would see/be notified of things when they were broken and have to fix them. But when going into QA I thought, “Oh, terrific! I get to find things that are broken and not have to fix them!”. I soon came to realize that QA was less about finding things that are broken, and more about helping to build things that aren’t broken in the first place.
  • 3.
  • 4. Everything I need to know I learned in Kindergarten… and at Agile 2009. I learned a lot at Agile 2009. A lot of best practices and good ideas. But this talk focuses on the top 3 things I learned from Agile 2009 and how they have guided me and my work over the last 12 months.
  • 5.
  • 6. Chris McMahon gave a talk titled “History of a Large Test Automation Project using Selenium” in which he discussed how SocialText approached testing. He had 4 killer take-away points that helped paint a picture of what it takes to have a large automated web testing suite that works well.
  • 7. Create/maintain fixtures (DSL) Feature coverage, like a web Fast/routine reporting of failures Quick response/analysis of failures Chris McMahon “History of a Large Test Automation Project Using Selenium”
  • 8. I had a chance to participate in a lightning talk with some of the major minds in the Agile Community at a lightning talk titled “Slow and Brittle: Replacing End-to-End Testing. During this talk an idea started to take root; Why is testing so custom and seemingly hard? Why doesn’t some kind of universal web testing harness exist? Why can’t testing be as easy as drinking a cup of coffee? An idea can be a dangerous thing.
  • 9. ArloBelshee, James Shore “Slow and Brittle: Replacing End-to-End Testing”
  • 10. On the last day of the conference I had the opportunity to attend an open jam put on by Adam Goucher (with special guest Jason Huggins). Jason Huggins, creator of Selenium, co-founder of Sauce Labs Adam Goucher, contributor to the Selenium open-source community (aka maintainer of Selenium IDE), testing evangelist We chatted about the intended use of Selenium IDE and the power of exporting to a programming language. Selenium IDE: Likened to a flight simulator Selenium RC: How you can effectively fly the plane
  • 11. Adam Goucher Jason Huggins “Selenium Open Space”
  • 12. I left the conference with a new perspective. I felt like this QA stuff was starting to make sense and that I would be able to really make a difference when I got back to work.
  • 13.
  • 14. When I got back? I saw nothing but mountains.
  • 15.
  • 16. 20/20
  • 17. It turns out that we were flying the plane with a flight simulator. All automated tests were built using Selenium IDE and grew into a massive set of Smoke and Regression suites that were brittle, slow to run, and provided very poor feedback. 20/20: Our Smoke suite took 20 minutes to run and roughly 20 minutes to interpret. Once the errors were understood, this information would be placed into an e-mail and shipped off to the appropriate Development team. Unfortunately, this information is viewed as a distraction by the Developers since it is out of band with their workflow.
  • 18.
  • 19. Much like the man with two brains, QA has 2 minds; technical and analytical. Unfortunately, a majority of the QA’s are more analytical than technical.
  • 20.
  • 21. Limited resources, both funding and human. There was roughly 1 QA for every 6 Developers, and, the training budget was fairly lax (especially given the economy).
  • 22.
  • 23. What story wouldn’t be complete without spaghetti code? 17 years of a growing code base can have that affect. And as a result, there are often discrepancies between our production and pre-Live environments. This presented some interesting challenges when finding issues on the live website that somehow breezed right by our Testing environments.
  • 24.
  • 25. There was a bit of aversion to change within Tech and the QA Department. Because when you mess with someone’s spaghetti, it can get messy.
  • 26.
  • 27. The QA Department was viewed as Outsiders and as a result there was a significant communication gap between Developers and QA. There was also a bit of a throw it over the wall mentality. When an issue was found Devs would often say “works on my machine”.
  • 28.
  • 29. I started to question my transition from IT Operations and felt like I was going through the 4 stages of grieving. But after much soul searching, I had a thought…
  • 30. What would Chuck Norris do (if he were in QA)?
  • 31. “ He would subdueThe Motley Fool’s use of Selenium IDE with a round-house kick to the face and build something in its place. Perhaps something Ruby-flavored that leveraged open-source libraries that could be used by everyone; Business, Developerment, QA. Thus bridging the gap between what is perceived that QA tests and what is actually tested. And he would call it “Testerfield”! “
  • 32. + + = Testerfield
  • 33. The solution we built was an assembly of innovation; cobbling together a bunch of different tools and concepts into a concatenation that we needed and wanted. And we gave it a name in an attempt to shake the “Selenium” nomenclature since it was a buzz word with some negative connotations. That and when you name something, you give it an identity. You make it your own. You care for it. A fun side effect of this tool was that we started to gain support/respect from the Dev’s since with it we were able to write some tests that saved them some time.
  • 34.
  • 35. Too bad our first go-round with Testerfield was a failure… Perhaps Chuck Norris’s business acumen needs some work. This is what you get when you try to solve a problem as a technologist rather than business perspective. There was a bit of signal to noise with Testerfield: Signal: We could write stable and robust tests Noise: This was a slightly different approach to testing than QA was used to. The thought of code seemed scary to most of QA, and the resulting output was difficult to interpret
  • 36. Failure posed a significant problem for this movement. Testerfield was developed through unofficial channels (aka me and an intern). There was no management mandate for this, no sound from on high, not even an angry mob or surly swear words at the computer screen from QAs when writing tests, just a vision in my head of how things could be. This meant no management decision would be made until a better solution was presented and captured value
  • 37. Testerfield AND the old Selenium IDE suites needed to be maintained simultaneously (read: double work) Push back started to appear (aka I was encouraged to write new tests ONLY in Selenium IDE)… But this was before they saw Testerfield 2.0 :-) I reveled in failure, listened for feedback, adapted the solution, and looked to re-tool my pitch
  • 38. E = Q * A
  • 39. I thought that if you can’t measure it, you can’t improve it. Failure led me to learn about the effectiveness formula (E=Q*A) which offered a good framework on how to view the task at hand. Effectiveness = Quality * Acceptance. If you have a low quality idea that is widely accepted, it is the same as have a high quality idea that is poorly adopted. Here’s a good write-up on it http://www.prescientdigital.com/articles/best-practices/change-management-strategies-to-support-intranet-adoption/ I felt that our use of Selenium IDE was a low quality solution that was poorly accepted and that Testerfield was a high quality idea. It just needed to be well received.
  • 40.
  • 41. So I started to wonder about what drove me to action which led me to the Human Action Model (re: Ludwig von Mises – Human Action: A Treatise of Economics). It basically states that someone suffers from discomfort, has a vision for a better world, and takes action. If I noticed discomfort, had a vision, and took action. How could I get others to follow? How can I get through to people? To have them see the value in this intrinsically?
  • 42.
  • 43. Enter ‘The Golden Circle’. It is a simple but powerful model for inspirational leadership that all starts with the question “Why?”. Simon Sinek – author of ‘Start With Why’. He offers some historic examples such as Apple, Martin Luther King, and the Wright brothers as well as a counterpoint example; Tivo. There’s a good Ted Talk about this; http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html So I thought about the messaging that I wanted for Testerfield, and here’s what I came up with: We believe that in order to create the World’s Greatest Online Financial Investment Community we need to craft quality software. We plan to do this by providing quick, reliable, and robust feedback to Developers and the Business. We just happen to have a new tool that provides this. Want to take a look? After re-tooling I was ready. Oh, and… propaganda helps.
  • 45. Testerfield 2.0 (now with propaganda!) New error reporting could be read by anyone. It was now possible for people to understood what the test suite did (plain English), if it passed, if it failed, and why. The feedback loop (after information receipt) was cut from 15-20 minutes down 15-20 seconds. The communication gap between Dev and QA was beginning to narrow. Respect thermometer increasing. We started to gain some real traction and picked up a couple of champions along the way. A movement started to take hold. As a result, an opportunity to present to the entire Tech Department appeared, and things started to change (read: funding started to appear).
  • 46.
  • 47. QA received in house training for Ruby through a company called Jumpstart Lab. As a result, the more Analytical QA’s are now writing new and converting old tests in Testerfield
  • 48.
  • 49. But what about the speed of the tests? The smoke suite takes 20 minutes to run! And just because you have good reporting doesn't mean that its not a distraction to the Devs who receive it. And, it may be old news by the time they get around to reading it. The process is still out of cycle with the development workflow.  What about parallelization? Parallelization was something that we thought would be challenging but a problem that had already been solved (within our type of setup). But we were wrong, it was going to be much harder. What options we found either didn't work as we wanted, worked exactly as we wanted but was no longer maintained and outdated (wouldn't work with our version of Ruby) or looked promising but required a rework of our platform architecture and test design. That is, of course, until we found the answer.
  • 50.
  • 52. Enter Sauce Labs, a provider of cloud testing goodness. I like to call this performance gain “20 to 2” (actually it's more like 3-1/2 minutes, but 20 to 2 is catchier). We were able to keep our existing reporting, offload the heavy lifting to their grid, get the added benefit of video capture, with minimal changes on our end Some minor additions/changes to our code base, standing up a single linux box at our data center to fork and send the test processes, and configure a secure tunnel). If you’re not using them, you should.
  • 54. I would like to claim this mole hill in the name of QA.
  • 55. QA
  • 56. Check out Testerfield.com Dave Haeffner Twitter: @TourDeDave E-mail: dhaeffner@fool.com
  • 57. Here is an example output from one of our Selenium IDE tests Title name (can you easily tell what this test does?) The whole test looks fairly gnarly; it’s got teeth What can you deduce from the error? Not much, right?
  • 58.
  • 59. Testerfield error output (leveraging the Ruby selenium-client gem http://github.com/ph7/selenium-client) Useful category heading and test name – you can tell what the test is and what it does Error – same as previous test, BUT Shows you the pertinent parts of the test - the step that failed AND the steps before and after And more importantly, the screenshot