What is Agile testing? The quick answer is simply: testing done by Agile software development teams, though it may also be described as an approach to testing that embraces the principles of Agile software development. But these answers are too shallow—neither fully explains what makes a testing process Agile. This post will shed some light on Agile Testing and describe how it can be best achieved in a mobile context.
First, let’s make a distinction between quality and testing. The literal definition of quality is a measure of how well a particular software compares to a standard or specification. Testing, however, is a measurement of quality along with performance and reliability. Testing determines software’s fitness for use and a program’s usefulness is at the very core of Agile’s value proposition. So let’s set aside the concept of quality and Quality Assurance (QA) for the moment and focus on the activities of testing. Because Agile is about the activities of testing, not about a QA role, team or organization.
In an Agile team, everyone tests all the time. Testing drives development. This is quite different from the traditional software development approach in which a phase late in the development lifecycle is dedicated to testing—a test phase that always follows a development phase and only begins when that development phase has been completed. In this tradition, development drives testing. On an Agile team it’s the other way around. Testing drives development.
Agile offers several test-driven development techniques. For example, TDD (Test Driven Development) is a software development process that involves using an automated test that mimics how the software will be used before developing the actual software itself. The idea with TDD is that development teams can more quickly develop software that passes the test. There are several benefits to this approach: it focuses the team on developing for the “happy path” while de-prioritizing the effort around negative-testing and developing for contingencies. The early development of an automated regression test suite and a confidence the evaluation software will work as expected are also benefits of TDD. Additional test-driven Agile techniques include Acceptance Test Driven Development, Behavior Driven Development, and Feature-Driven Development.
A test-driven approach to mobile app development can be tactically implemented with a few widely accessible tools and techniques. An automated test framework like SOASTA may be used to quickly develop test scripts. Techniques like unit testing can also help teams mature individual components of mobile software and help isolate issues that may occur when integrating mobile apps with back-ends, web services, or other service-oriented architectures.
The test-first philosophy of Agile testing means a development team will always be testing. In contrast to the traditional approach of testing last, Agile teams start a project with the development of tests and continue to define and refine those tests throughout the development lifecycle.
Everyone on an Agile team is involved with developing test cases, automated tests, unit tests, harnesses, and maintaining testing tools. These testing activities require the team to have a variety of skills and aptitudes including design, code, a quality mindset, and a strong customer focus. Agile teams don’t have traditional developer and tester roles, rather every team team member develops and tests.
Agile Testing is the testing done by Agile teams. On such teams, everyone tests all the time. Agile teams start mobile app development projects by writing and coding user-focused automated tests. They continue to nurture those tests through every iteration of the project, facilitating a confidence the mobile app will prove useful for the customer. Agile testing is an approach that embraces the principles of Agile Software development and focuses teams to quickly deliver value to customers by delivering useful software.
Still need help? Let Propelics help with all your Enterprise testing needs. Our mobile testing services include Mobile Testing Strategy, Regression Testing, System Functional & Non-Functional Testing, System Integration Testing, Test Automation Strategy, Script Development and Execution, User Acceptance Testing, and UI/UX Testing.