Agile Testing

Tram Ho

1. What is Agile Testing?

AGILE TESTING is a software testing method that follows the principles of the agile software development model. Unlike Waterfall software development model, Agile software development model requires testing to be conducted at early stages of development. Agile testing is not sequential, but an ongoing process.

According to the definition of ISTQB foudation

Agile testing: Performs testing for a project using Agile software development methodologies, incorporating techniques and methods, such as extreme programming (XP), considering development as the customer. of the test and the design model emphasizes the test priority.

2. Compare waterfall and agile

Agile testingWaterfall testing
Test planning is minimal and the test process is less structured.Thorough test planning and highly structured testing procedures.
Testing is conducted at the beginning of (almost in parallel with) software development. In other words is a test of growth and continuity and continuity.Testing is only conducted after the development phase is completed. In other words, testing is sequential.
There is very little test documentation available.Test documentation, like test plans, test cases, is very complex.
The requirement change frequently poses a testing challenge. As the project progresses, people need to adapt (maybe even improvise.)The required changes are less likely to ease the testing process.
Acceptance testing is performed at the end of each iteration / sprint. Customer feedback is constant and surprisingly well the small packages can be handled easily.Acceptance testing is only conducted at the end of the project. The client’s response is late, and the risks of getting received are surprisingly big, which can come at a cost.
Testers and developers work closely. Both take on the role of QUALITY PARTNERS.Testers and developers work separately. The tester assumes the role of QUALITY GUARANTEE

3. The value of Agile test


  • Personalize and interact through processes and tools:
    This means that flexible and communicative people are valued over rigid tools and processes. However, this does not mean that Agile testing ignores processes and tools. In fact, Agile testing is built on very simple, robust, and streamlined processes like conducting daily meetings or preparing to build on a daily basis. Similarly, Agile testing tries to leverage tools, especially testing automation, as much as possible. However, it must be clearly understood that the testers are the drivers of those tools and that the output of the tools depends on the tester and not vice versa.
  • The software works on comprehensive documentation:
    This means that functional and usability software is appreciated over comprehensive documentation but is unusable. While this points more toward upfront requirement specifications and design specs, this could also be true for test plans and test cases. Our main goal is the act of self-testing, and not any complex documentation is directed towards that goal. However, it is best to have the necessary documents ready so that the ‘picture’ is clear and the ‘picture’ remains with the group if a member leaves.
  • Cooperate with customers in the whole process of contract negotiation:
    This means that the client participates regularly and is closely related to the project’s progress (not through complicated progress reports, but through working software). This adds some burden to customers who have to collaborate with the team on a regular basis (instead of just waiting until the end of the contract, hoping that the handover will be delivered as promised). But this constant participation ensures that the project is on the right track, not building a frog when the project expects a fish.
  • Responding to Change vs. Following a Plan: This means accepting changes as a matter of course and not being shy about responding to them. It is always good to have a plan in advance but it is not great if you have to follow one plan, at all costs, even if the situation has changed. Say you write a test case, that’s your plan, assuming a certain requirement. Now, if asking for change, you don’t have to lament about wasting your time and effort. Instead, you quickly tune your test case to validate the request has changed.

4. The principles behind Agile testing

RulesWhat It Means for Software Testers
The highest priority is to delight customers through the early and ongoing release of valuable software.Customer satisfaction is the highest priority through the early and continuous release of high-quality software.
Change inquiries welcome, even if development is late. Agle processes exploit change for the competitive advantage of its customers.Change requests welcome, even if testing is late. Agile processes exploit change for the competitive advantage of customers.
Software handover works regularly, from weeks to months, with a shorter time span preferred.Handing over high quality software on a regular basis, from weeks to months, preferably shorter intervals
Business people and developers must work together daily throughout the project.Business people, developers, and testers must work together every day throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.Build test projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most effective and effective way to convey information to and within the development team is face to face chat.The most effective and effective way to convey information to and within the test team is live chat.
Working software is the primary measure of progress.High quality working software is the primary measure of progress ..
Agile processes promote sustainable development. Sponsors, developers and users will be able to maintain a constant rate indefinitely.Agile processes drive sustainable testing and development. Sponsors, developers, testers and users will be able to maintain constant speed indefinitely.
The constant interest in good engineering and design enhances agility.The constant attention to engineering excellence and good test design enhances agility.
Simplicity – the art of maximizing unfinished workload – is essential.Simplicity – the art of maximizing unfinished workload – is essential.
Periodically, the group reflects on how to be more effective, then adjusts their behavior accordingly.Periodically, the test team reflects on how to be more effective, then adjusts its behavior accordingly.

5. The challenge of QA in Agile

  • Faster error detection, however less documentation is taken into account, thus putting a lot of pressure on QA
  • New features are introduced quickly, reducing the time the test team has to determine whether those new features are suitable for requirements.
  • The execute test execution cycle is cumulative more.
  • There is little time to prepare the test plan
  • There is only minimal time to perform regression tests
  • The role of QA has changed from quality manager to partner of quality.
  • Constantly facing constant change and updates


Share the news now

Source : Viblo