AGILE Test – Adaptive Granular Iterative Lean Executable Test
February 21, 2011
The term "Agile" has become a buzzword in the field of software development. It is derived from a Latin word "agilis" which means quick. Since constant and rapid change is part of software development, an alternative "quick" response which is more adaptive rather than predictive as traditional approach was conceptualized. This brought the existence of Agile philosophy. A guideline known as Agile Manifesto was used in order to define "agility." It is comprised of four values and twelve principles. The four values emphasize that individuals and interactions over process and tools, working software over comprehensive documentation, customer collaboration over contract negotiation and responding to change over following a plan. According to the authors of this declaration, "That is, while there is value in the items on the right, we value the items on the left more." The twelve principles are as follows:
- Highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity--the art of maximizing the amount of work not done--is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly
Testing software built based on the agile values and principles stated above requires more flexibility to address the inevitable change of requirements in order to meet client satisfaction. A collaborative effort between the business analysts, testers, and developers are needed to develop a test approach designed to break the software down into manageable parts as modular and granular business components as possible in order to deliver a working product as quickly as possible. Functional test cases are created based on user stories from business analyst. The testers will further conduct exploratory testing in order to verify if there are other bugs that might have been missed from the initial functional test cases. Testers and developers can also be paired to automate possible lean executable tests for regression. Business components that are commonly used by other business processes should be re-used to minimize the need of additional coding. These business components should be made as lean and simple as possible so that it can be easily updated when there is a change in functionality. This process will be iterative and incremental and would go to a process of continuous improvement as to adapt to the continuous needs of clients.
Rommie L. Patricio
Research and Development Manager
CheQ Systems, Inc.
