11.01.2015 Views

Regression Testing at WebMD - PNSQC

Regression Testing at WebMD - PNSQC

Regression Testing at WebMD - PNSQC

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• First of all… why are we here. No… this is not the seminar where we contempl<strong>at</strong>e the purpose<br />

of your existence or answer the philosophical question of the meaning of your life. I think *th<strong>at</strong>*<br />

seminar is next door, so head on over there if th<strong>at</strong>’s the talk you are supposed to be <strong>at</strong>tending.<br />

•With a seminar name like “Avoiding Overkill in Writing Manual <strong>Regression</strong> Tests”, my guess is<br />

th<strong>at</strong> you have your own reason for being here. You might be a member of the QA team or<br />

someone in management… but most likely, you are feeling some pains in your organiz<strong>at</strong>ion th<strong>at</strong><br />

result from the document<strong>at</strong>ion of way too many manual regression tests. We are here to help<br />

you try to figure out where to begin in fixing your test plans and making them usable.<br />

•I am coming <strong>at</strong> this topic from the software standpoint where the product being developed is<br />

important of course… but doesn’t actually have a life or de<strong>at</strong>h impact. For example, I just read<br />

an article th<strong>at</strong> not only is robotic surgery getting more and more popular, but surgeons are<br />

starting to use software to pinpoint to the millimeter (or smaller) where they should make the<br />

incision for brain surgery. I h<strong>at</strong>e to say it, but if you cre<strong>at</strong>e instrument<strong>at</strong>ion th<strong>at</strong> is used in the<br />

docking of a space shuttle to the intern<strong>at</strong>ional space st<strong>at</strong>ion, this is probably not the topic for you.<br />

•Background on <strong>WebMD</strong> – 3 major releases per year. Integr<strong>at</strong>ion release a couple of times per<br />

week. Unit testing with collabor<strong>at</strong>ion with devs<br />

•Although it is important to every company th<strong>at</strong> their product, website, or applic<strong>at</strong>ion works<br />

correctly, when bugs do sneak in to most products, lives aren’t lost. If th<strong>at</strong> is the case for your<br />

organiz<strong>at</strong>ion, then you are part of my target audience. I’m hoping th<strong>at</strong> the topic reson<strong>at</strong>es with<br />

you and causes you to have discussions both within your team as well as with all QA about<br />

where we want to go as an organiz<strong>at</strong>ion with the tests we write.<br />

2


We think twice about spending excessive time on writing functional tests<br />

If there’s a good chance th<strong>at</strong> most of my individual functionality tests are going to be deleted or combined into a more<br />

conclusive regression test <strong>at</strong> the end of a sprint or the end of a release, then I am going to be much more str<strong>at</strong>egic<br />

about how much time I spend on documenting those tests. I can document wh<strong>at</strong> is necessary to make sure I test all the<br />

cases I need to, but I don’t need to ensure th<strong>at</strong> it is in “archive” worthy form<strong>at</strong>. I can spend more time testing and less<br />

time writing about wh<strong>at</strong> I just tested.<br />

We can trust the inform<strong>at</strong>ion in the manual regression tests<br />

Have you ever run across a test in a test repository and found th<strong>at</strong> it didn’t m<strong>at</strong>ch up with current functionality Wh<strong>at</strong><br />

normally happens in those cases Rarely, the discrepancy highlights a bug th<strong>at</strong> has just been introduced and the<br />

regression test has done its job of flushing out unexpected regressions in behavior due to new development.<br />

The majority of the time, however, we find th<strong>at</strong> the behavior had changed one or more releases ago, but the test just<br />

wasn’t upd<strong>at</strong>ed because nobody knew it existed. After the confusion is settled, no bug is entered and the test still<br />

remains unmodified. The cycle then repe<strong>at</strong>s itself a couple of releases l<strong>at</strong>er when someone else finds the same “bug.”<br />

Once we are in a p<strong>at</strong>tern where every test case is run with every release, we start to find fewer and fewer false bugs.<br />

When we do find a scenario where behavior behaves differently than the test case, it’s likely th<strong>at</strong> the unexpected<br />

behavior was introduced with the most recent development. At this point, we can decide if the test case needs to<br />

change to reflect new behavior or if the code needs to be changed to fix an unintended bug.<br />

We continue to review our test plans with every release<br />

As years go by, the number of test cases added to our test plans will continue to grow. Even when the test cases are<br />

written concisely and str<strong>at</strong>egically, this may still result in the plan growing to a size th<strong>at</strong> can’t be manually regression<br />

tested with every release. At any point we find our departments unable to make it through all of the regression tests, we<br />

have two options: Delete some tests or alloc<strong>at</strong>e more time to regression testing.<br />

In many cases, the appropri<strong>at</strong>e response is to groom and delete the existing test cases. When this is the case, it is<br />

important to recall the visual of the hiker climbing up the cliff. By deleting those “excess” test cases, we are NOT<br />

decreasing quality. We are keeping th<strong>at</strong> hiker from falling off the Cliff of Quality Assurance. We are actually helping the<br />

overall QA effort by deleting tests th<strong>at</strong> no longer contribute to the quality of the product.<br />

If someone makes a conscious decision to not run a set of tests because time is short, they are breaking the “Run<br />

Every Test” rule and need to remedy it by either deleting the test or by testing mor<br />

9


Go put on your shoes and socks.<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!