Agile Software Testing – A Must Do, Anyone Can Do!

cPrime’s 1st Hackathon

The other week, cPrime held our very first Hackathon, with the goal of debugging cprime.com. I’m sure you’re curious, no, we did not bring on a QA team or developers; we were them for the day. Team members from our entire back office, recruiters, sales, finance, marketing and more, teamed up and learned to use Git and Ruby to write tests in Cucumber and run them with Selenium, with the guidance and patience of our CTO, Joel Brass. Source code was stored in Stash, pushed to Jenkins and Automated tests were run with Saucelabs. There was a lot of sweat, blood, tears, grunts and bottles of wine, but all in the name of good fun and better understanding our customers. Not only that, but by learn by doing, our team truly understood the importance of proper testing, but why the right tools, process and team matter!

That being said, below is the juicy info you actually want to know about the importance of testing:

Agile Software Testing - cPrime

Reasons to Focus on a Proper Functional Testing Approach for your Agile Teams:

1. Functional testing is more important than unit testing in an Agile context – deliver working software, satisfy the customer

  • Unit testing, while valuable to ensure engineering quality, is costly.
  • Unit testing typically tests much more than the current scope for a user.
  • Unit testing cannot identify defects found in functional testing.
  • Functional testing cannot guarantee engineering quality but guarantees product functional quality from a users perspective.
  • From an end user’s perspective, functional testing is more important as, at a minimum, it ensures a working solution is delivered.

Note: Unit testing is necessary to achieve engineering quality. This approach does not eliminate the need for the same.

2. Agile teams have adopted automation including BDD and ATDD, to overcome the challenges of manual functional testing. This was supposed to alleviate the challenges but it did not.

3. Traditional automation is focused on achieving a regression test suite – does not solve the need for in sprint automation testing

  • ATDD, BDD/Gherkin, Cucumber move the work to developers – developers do not like to test and this burdens them further
  • Use of scripting languages to automate ( selenium , QTP, UFT etc) is slow and requires the test writer to be skilled in using the technology
  • The first round of testing is typically manual which is a waste of time, if automation is the intent
  • Even if the automation tests get completed in the Sprint defects are identified after the developer checks in their code
  • Developers resort to extensive unit testing as functional testing becomes available too late in the development cycle

4. For in-sprint functional testing to be valuable we need to adopt an Automated Functional Test First development approach

5. Automated functional tests must be available while a developer is coding (before they check in their code)

  • Automated tests must be created rapidly: 10 – 15 minutes for small tests
  • Tests are immediately automated – no manual testing
  • Anyone with minimal training must be able to create a test ( QA, PO, Dev): no coding, scripting or script tool knowledge required
  • Person writing the test must not have to deal with device issues. Tests must be able to work on a browser, phone or desktop

6. Developers check in their code only if unit AND functional tests pass

  • Developer executes automated functional tests as part of their code testing
  • Developer fixes defects identified by automated functional tests
  • Developer checks in code AND also ‘checks in’ passing functional tests

7. Functional regression testing must occur all the time (CI)

  • Functional tests become part of the CI run
  • Any broken functionality becomes quickly obvious to all

In Agile Development, Testing is meant to be a part of the development process, right along with coding. Code should be tested early and throughout the lifecycle while it is still being developed. Does this sound about right, or could your testing process and tools use a tune up?

Need more help with Agile Testing? Learn more at cPrime

Leave a Reply

Your email address will not be published. Required fields are marked *

More Great Content

Get Started with QASymphony