top of page

The Essentials of Testing in Agile Methodology

Writer's picture: Allison DunnyAllison Dunny

Testing is necessary in Information Technology. Each test during the project provides opportunities for the team to make important quality adjustments before releasing the product. Testing also takes time. It takes resources. And there is also the wrong way to go about it. 

 

Instead of saving testing for the final stages of the project, Agile Methodology builds frequent testing into its iterative workflow. This promotes frequent stakeholder feedback throughout the life of the project, thus increasing the likelihood of a higher quality end product [1, p. 363][2].

 

Oftentimes, when the project manager does not have proper knowledge on how to make testing efficient, it is one of the first areas in which a team will cut corners on to save elsewhere. If not careful, this sacrifice could come back to haunt the project team and put the project at risk. To restore faith in your ability to manage testing in your projects, this week, we are going to discuss how to properly approach testing in an Agile environment.

 

Common Testing Types

Graphic: Allison Dunny | Reference: [1, p. 363] | Created using LucidChart


As a project manager, you have choices in the type of test to perform. To guide us toward what type of testing to use, you must acknowledge the status of your project. When progress is made throughout each sprint, retrospectives play a key role in deciding the next direction you take toward improving our overall testing and quality process [1, p. 363]

 

  • Unit Test: Performed on each element (i.e. program or feature) to determine whether there are imperfections. This is done before continuing to integration testing [1, p. 349].

 

  • Integration Testing: Tests functionally similar elements. It makes sure that this segment of the system works correctly before attempting a complete system test [1, p. 350].

  • System Testing: Tests the entire system to make sure that there are no conflicting components [1, p. 350].

  • User Acceptance Testing: Separate from the core testing types, this test is performed by end users prior to full implementation. This ensures that the product will meet stakeholder expectations and suit business needs [1, p. 350].

 

The testing types discussed above only scratch the surface. Other options include alpha and beta, performance, and scalability testing. Quality management can be adapted specifically to business and project requirements, so it is important to make sure the quality requirements are thoroughly understood [1, p. 350].

 

Common Testing Techniques

Graphic: Allison Dunny | Reference: [2][3] | Created using LucidChart


There are also different techniques used to shape the overall testing approach for a project. We will address three commonly used techniques within Agile projects.

 

Test-Driven Development (TDD) 

In software development, for example, TDD focuses on writing test cases before coding even begins. TDD directs the developer to consider what the code needs to do before the code is programmed. If regression occurs, the tests created will expose it and allow for improvement. This process is repeated for each update or additional function added to the current product [2].


 The basic steps of TDD: [2]

  1. Create a test case that defines expected behavior.

  2. Execute the test case and it will fail.

  3. Write the least amount of code required for the test to pass.


Code can be updated to improve the ability to maintain and adapt to the rest of the product’s functionality [2].

 

Behavior-Driven Development (BDD)

This technique is more inclusive to both technical and non-technical stakeholders. Instead of focusing on actual code implementation, the actions desired for the program or feature are written in natural language. One way to do this is to create pseudocode, which resembles how the real code is written, only in an easy-to-understand format for non-technical stakeholders [2].

 

The technique of BDD incorporates: [2]

  • Interactions between different elements

  • Expected outcomes

  • Validation criteria for actual code

 

Acceptance Test-Driven Development (ATDD)

The main priority of this technique is to evaluate the performance of the software or product in accordance with the end-users. It is a series of tests that determine “acceptance” of the complete product. Like the BDD technique, ATDD test cases are built with the user’s perspective in mind. Before releasing the final work, this test must be successful [3].

 

The technique of ATDD involves: [3]

  • Going over user stories

  • Reviewing the product backlog

  • Determine risks upon implementation

 

Work to Achieve Efficiency

Graphic: Allison Dunny | Reference: [2] | Created using LucidChart


Testing and efficiency work together harmoniously when provided the chance. Trust us, testing is not where you want to cut back investment if you can help it. In using Agile-focused testing techniques, as well as consistently testing throughout the course of the project, the project team is provided many opportunities to correct issues as they arise, rather than discover them later. This is known as shift-left testing, where quality within the product is constructed from the beginning [2].


  • Automate: If your project incorporates a great deal of repetition, it is worth incorporating automation into the testing process. This allows resources to be allocated to more difficult tasks, thus increasing testing efficiency [2].

  • Plan and Prioritize: It is important that resources are used effectively. To increase efficiency, high-risk aspects need to be addressed and strategies need to be implemented to combat any problem areas [2].

  • Maintain a Good Pace: It is not in the team’s best interest if everyone is working excessively and is slowly losing pace. Instead, the team must work together to formulate the best pace that works for them. It is also important to meet often and to improve processes using strategies such as retrospectives [2].

 

Difficulties Encountered in Testing


Graphic: The Tonik Co. | Reference: [4]


Agile testing still presents problems and will try to discourage project teams at times. With the right mindset toward adaptation and continuous improvement, the project team can use their toolbox of strategies to eliminate these hurdles [2]


Common problems include: [2]

  • Time constraints

  • Fast-paced development

  • Lack of collaboration with stakeholders

 

Staying proactive and ensuring the best practices are being followed will allow the team to keep moving forward toward project success [2].

 

Another important difficulty that must be acknowledged is that any late-stage testing may not resolve every issue that gets overlooked earlier in the process. Software quality expert Watts S. Humphrey states that as the complexity of the code increases, the introduction of problems that testing will not catch also increases. He also states that the solution is to prioritize the creation of error-free code [1, p. 350].

 

Determining Success

Graphic: Allison Dunny | Reference: [3] | Created using LucidChart

 

Determining success in Agile testing is a multi-faceted answer. Throughout the life of the project, the team consistently improves the testing process, eliminating issues as they arise. Testing ultimately has a goal to achieve zero escaped defects, which indicates all defects have been resolved through the testing process in development. As testing occurs in the later stages, the team will rapidly discover whether their testing process has been successful [1, p. 363].

 

Even though system testing of a deliverable may show error-free, it is critical to understand that final determination of success ultimately lies in the satisfaction of the project stakeholders. User acceptance testing is essential to the process and should also be frequently incorporated after each release of a working deliverable to determine stakeholder needs are being fulfilled [1, p. 363].

 

Final Thoughts

 

Aiming for the highest quality product does not have to be the Achilles heel of your team. To be a successful Agile project manager, you must make testing a priority for your team, even though it appears intimidating to manage through each stage of the project [2]. It is even more intimidating to consider the potential changes that can arise in each sprint. Breathe. It’s okay. You’re prepared for it.

 

As the project manager, it is imperative that you provide your team with the best practices for testing and send them in the right direction from the beginning. Your project does not have to throw away quality, we promise. Focus on facilitating a communicative environment and stress that the team needs to take this aspect of the project seriously. This provides a safe space for the team to adapt and grow with each sprint, and work toward meeting stakeholder expectations [1, p. 363][2].

 

References


[1] K. Schwalbe, et al, Information Technology Project Management, 9th ed., Boston, MA, USA: Cengage, 2019. [Online]. Available: https://ebooks.cenreader.com/#!/reader/b2aef31a-bf2f-4c23-a0fa-63a64a662287/page/758a39896cdf87baf7a6aadddffd418f (Accessed February 28, 2024).


[2] Wrike Team. “Ensuring Quality and Efficiency with Agile Testing.” Wrike. October 23, 2023. https://www.wrike.com/blog/agile-testing/ (Accessed March 8, 2024).


[3] Katalon. “Agile Testing Methodology: A Complete Guide for Agile Testers.” Katalon. November 2, 2022. https://katalon.com/resources-center/blog/agile-testing-methodology (Accessed March 10, 2024).


Comentarios


Los comentarios se han desactivado.

©2024 by Planet Agile. Proudly created with Wix.com

bottom of page