The Automation Testing and Agile

Moataz Nabil
3 min readJul 30, 2017

A software testing practice that follows the principles of agile software development is called Agile Testing. Agile is an iterative development methodology, where requirements evolve through collaboration between the customer and self-organizing teams and agile aligns development with customer needs.

Traditional Testing (Waterfall) VS. Agile Testing

Traditional Testing

  • Follows a top-down approach, where the completion of one phase leads to another phase, making the changes difficult to carry out.
  • The project manager handles the leadership.
  • Client’s involvement needs in the initial phases of deciding the requirements.

Agile Testing

  • All members are assigned accountability for their individual roles and job.
  • Offers a comparatively flexible approach where changes can be brought about at any stage.
  • The client’s requirements are needed throughout.

Best Practices in Agile Testing

1. Automated Unit Tests
2. Test Driven Development
3. Automated Regression Tests
4. Exploratory Testing

How “Agile” relates to Testing

  • Testing moves the project forward
  • Testing is NOT a phase
  • Everybody Tests
  • Reduce feedback latency — Test early and often
  • Test represent expectations
  • Keep code clean & Fix bugs fast
  • Reduce test documentation overhead
  • Tested is part of “DoD” — Definition of Done
  • From test last to test driven

Becoming Agile Automation Tester

  • Provide Continuous feedback
  • Deliver Value to the customer
  • Enable Face-to-Face Communication
  • Keep it simple
  • Practice Continuous Improvement
  • Response to Change
  • Self organized
  • Focus on People

What is the problem with Manual Testing?

  • Manual Testing of all work flows, all fields , all negative scenarios is time and cost consuming.
  • It is difficult to test for multi lingual sites manually.
  • Manual Testing can become boring and hence error prone.
  • The use of automation improves quality and team morale
  • Automation does not require Human intervention. You can run automated test unattended (overnight).
  • Automation increases speed of test execution.
  • Automation helps increase Test Coverage.

Which Test Cases to Automate?

  • Test cases to be automated can be selected using the following criterion to increase the automation ROI (Return of Investment)
  • High Risk — Business Critical test cases.
  • Test cases that are executed repeatedly.
  • Test Cases that are very tedious or difficult to perform manually.
  • Test Cases which are time consuming.

Test cases are not suitable for automation

Test Cases that are newly designed and not executed manually at least once.

Test Cases for which the requirements are changing frequently.

Test cases which are executed on ad-hoc basis.

Benefits of Test Automation

  • Save Time
  • Speed
  • Repeatability
  • Maintenance of the test suite
  • Reusable
  • Increase Coverage
  • Cost Reduction

Automation Testing Career

Challenges:

  • Automation becomes critical part of business due to rapid changes in software
  • Automation testing requires software development background and also required software testing mindset and skills

Reward:

  • Fast growth in career path.
  • You develop software to test software.
  • Balance career : You develop both testing and development skills.

Good Luck & Happy Testing :)

--

--

Moataz Nabil

Manager, Quality Engineering - Platform Experience | Author of Mobile DevOps Playbook | AWS Community Builder | Speaker | Advisory Board Member (Packt)