Loading

Cross-Functional Learning


Our well-rounded business content is designed for Leaders & Managers to implement change with ease & improve accountability amongst their teams. Here you’ll find Articles from thought leaders in their fields, have access to practical Business Templates, learn new skills from On-Demand Webinars & connect to our Expert Panel to answer your organizational challenges. Stay informed & proactive…Join Us Today!

Join Now

Testing Within The Agile Framework – Learn What’s Different

By Ron Montgomery (1055 words)
Posted in Project & Process Management on February 21, 2013

There are (0) comments permalink

Add to My Toolkit

By Ron Montgomery, Management Consultant & Owner, OnPoint, LLC

Agile is sometimes perceived as “cowboy programming,” devoid of discipline, and structure.  This perception is fueled by flawed rollouts that overlook the agile principles that espouse “working software.”  When properly implemented, agile is very disciplined and results in high quality, reliable software that is tested extensively.  Agile testing, however, requires a new approach.

 

Why is a new approach needed?

In a traditional, “waterfall” software development environment, the original plan allows plenty of time for testing.  Towards the end of the project, the team is surprised to find that development is taking longer than expected.  Since the completion date is firm, something has to give.  That “something” is usually testing.  The plan may have called for a solid month of testing but the QA team will be lucky to get a couple of days prior to go-live.

 

{#/pub/images/planvsactual.jpg}

 

By contrast, the agile framework calls for frequent delivery of working software.  As depicted in the drawing below, each two-week sprint results in tested, usable code.  Some teams may try to perform “mini-waterfalls” that delay testing until the final 2-3 days, but these teams quickly create a tsunami of test issues that carry over from sprint-to-sprint.    To be successful, agile teams must employ a new approach.

{#/pub/images/sprinttosprint.jpg}

 

How is agile testing different?

Common agile testing practices in place today are the result of the XP (Extreme Programming) methods developed by Kent Beck in the late 1990s.  These methods are no longer considered “extreme” and are currently considered quite mainstream among systems engineers.  Following are four testing practices that are common among agile teams.

 

1) Test Driven Development (TDD)

With TDD, the developer first writes the test, then writes the code, and then continues to refine the code until it passes the test.

 

2) Automated Testing

Agile teams quickly learn that the level of effort required for testing is impossible to sustain.  Automation is needed and there are many tools that allow testers to run pre-planned test scripts over and over again.  In agile, the role of the tester grows from merely executing tests to designing and developing automated test scripts. Another change is that in agile, both systems engineers and QA specialists are involved in testing.

 

3) Continuous Integration

The developers check in their code at least once a day (usually more frequently) and automated test scripts are run to ensure the new code works and that previous successful tests are still successful.  If the new code “breaks the build,” the developer is responsible for fixing it immediately.

 

4) Definition of “Done”

In agile, desired software functionality is communicated by means of something called user stories and those stories should include acceptance criteria.  The acceptance criteria are imbedded in user acceptance test scripts that are written by business-oriented team members rather than developers.  These acceptance test scripts must execute successfully before the software functionality will be accepted as “done.”  All defects must be corrected in a given sprint or the entire story (not just the testing activity) is carried into the next sprint.

 

Senior leadership – What you can do to help?

Much of the effort required to implement agile testing happens at the team level.  However, the teams will require the assistance of senior leadership in the following areas:

 

Changes in the Role of Testers

As noted above, software-testing specialists are typically engaged at the very end of the project.  In an agile environment, testing is continuous.  The testers become part of the team and should be co-located with developers in a common workspace.  The testers must also learn to use automated testing software in addition to manual tests.  These changes could impact the job classification and possibly the reporting structure of the testers.  Implementing these changes will require your support and assistance.

 

Acquisition of Automated Testing Tools

Your support will also be needed to secure the resources to select, acquire, and deploy automated testing tools.  These tools can improve the productivity of testers and reduce the cost of software defects, so the business case should be straightforward. 

 

Cultural Transformation

Agile transformation extends beyond tools and processes.  In order for the transformation to be complete, the culture of an organization must also change.  A cultural transformation is an extensive undertaking that is far beyond the scope of this article.  However, it is worth noting that even agile testing brings with it a cultural change.  In many organizations, there exists a cultural value of expediency – “get it done.”  This value of expediency needs to be moderated with an appreciation for quality by developers as well as testers.

 

Software is pervasive in our world today, and our customer’s tolerance for defects is becoming quite low.  One of the principles of the agile movement is satisfying customers, and comprehensive testing is a key enabler of that principle.

 

{#/pub/images/RonMontgomery1.jpg}Written by Ron Montgomery, Management Consultant & Owner, OnPoint, LLC Ron is certified as a Project Management Professional, Agile Certified Practitioner and Certified ScrumMaster with over 35 years of hands-on experience in business planning, software development, process improvement & deployment of software solutions.  By partnering with clients to drive business value from technology projects, Ron assists clients with business planning, IT strategy, project and program management, vendor selection and team training/mentoring.

 

 

Do you have a management question for Ron?  Post it in our Project Management Community and he will be happy to help: Ask an Expert

  

Did you find this story informative?  We would like the opportunity to keep you up to date on all of our training articles.  Please Sign Up for our newsletter so we can do just that.  

 

Here are some related articles you may be interested in: 

Communication Essentials For Project Managers

A Simple Approach to Prioritization

Learn How Action Oriented Team Management Can Drive Timely Results.

Lessons Learned Templates & Guide: A Managers Toolkit for Continuous Improvement

Agile Methodology: A Creative Approach to Project Management 

 

ManagingAmericans.com is a community of Business Professionals & Expert Consultants sharing knowledge, success tips and solutions to common job issues.  Our objective is to mentor and develop professionals to be better leaders, managers, team players and individual contributors. Ultimately, helping people succeed in their careers.  

 

Comments (0)

no comments posted

Leave a comment

Not a robot?