Must have skills for Agile Testers – a key to the entire team’s agility

Software test professionals have shouldered the responsibility of ensuring a quality software delivery. With the advent of agile, testers in agile teams have had a lot more in their plate. Instead of being a quality ‘gateway’ or checkpoint at the end of the software development life cycle, they have become an integral part of each and every phase of creation.

As I like to say, testers are key to the team’s agility and have a crucial part to play in the success of the project as well the team’s agile journey.

In my article published on ATA Agile Testing Alliance blog website at https://atablogs.agiletestingalliance.org/agile/must-have-skills-for-agile-testers-a-key-to-the-entire-teams-agility/ , I discussed the skills and thoughts that every agile tester must focus on to stay abreast with their project’s needs as well as the industry’s pace. Here are excerpts from the article:

—-

Be the User’s Amigo

Agile talks about the ‘3 amigos’ – the Business Analyst, the developer and the tester – all working together to bring a user story to life. To understand the user’s perspective on each and every requirement, a tester can play a crucial role by thinking ahead, asking the right questions during story grooming and design discussions and testing the most probable and useful paths while execution.

QA professionals are also required to think from the user’s chair and provide constant feedback during continuous involvement in usability testing, cognitive walkthroughs, focus groups and surveys etc.

Overall, an agile tester needs to think of the customers as their amigos, have a taste of their experiences, keep note of their problems and bring out the best in the software to keep their buddy happy!

 Learning Areas: Requirement Analysis, Use Cases and User Stories, Usability study, End-to-end testing, exploratory testing and test techniques

 

Keep a check on the ‘Behavior’

The requirements from the market need quick gathering, distillation and development which require collaboration between the entire set of stakeholders in short time scales.

Behavior Driven Development (BDD) uses the concept of ubiquitous language or a semi-formal language which is shared by all team members including developers, testers, business analysts and other non-technical stakeholders. It makes use of simple domain specific language to convert natural requirements into executable tests.

BDD is definitely catching up in the market because of its outside-in, multiple stakeholder and high automation approach suitable to agile projects. So, all my tester buddies, get your hands into BDD and related tools!

Learning Areas: Basics of TDD, BDD, Cucumber, ATDD, Fitnesse, building a Test automation framework

Spin the wheels of ‘Continuous Testing’

Software delivery timelines have reduced tremendously and to meet the expectations of quick delivery and deployments, software testing has to become a part of the delivery pipeline. The advent of DevOps has brought with it various tools to support CT as a part of CD which makes testers an integral part of the devops system. Software testers are required to participate in setting up and maintenance of sustainable test setups and environments, automate tests rapidly, set up and maintain the continuous testing pipeline.

Learning Areas: DevOps fundamentals, Configuration Management Tools, Build automation, Test automation tools and integration into devops pipeline

 

It is all black and white!

Testers focussing solely on ‘black’ box testing and only business level tests would need to think more ‘white’ now. The need of continuous testing can be met only by ensuring API level tests, and moving towards micro services testing which ensures easy test and deployment of new independent pieces of functionality in the code.

With faster delivery cycles, huge interdependencies of systems in real-time and regression overloads, functional tests are insufficient and impossible to run in isolation. For comprehensive tests, API testing will be the foremost requirement to verify dependencies on and with other applications and systems. Adding white box testing skills to their profile will not only be a value add to the resume, but also add an essential key piece to complete the ‘black and white’ picture.

Learning Areas: White Box testing basics, REST APIs, Unit test framework like JUnit, TestNG etc.

 

A tester’s role in an agile team is to provide assistance and support in all areas, so they may need to switch hats frequently, depending on the team’s needs. The success of this endeavour, though, also depends on an open, communicative, and receptive environment fostered within the team. Adding these new skills to your hat can help any agile tester bring more value to their team.

Happy Testing!!

 

Let the ‘Agile Manifesto’ guide your testing efforts!

Hello readers

My article on the relationship of Agile Manifesto to the efforts and dilemmas of software testing has been published at stickyminds.com

Here are excerpts from the article – Please visit https://www.stickyminds.com/article/let-agile-manifesto-guide-your-software-testing and share your views too!


The Agile Manifesto is the basis of the agile process framework for software development. It sums up the thought process of the agile mind-set over the traditional waterfall methodology, and it’s the first thing we learn about when we set out to embrace an agile transition.

The Agile Manifesto applies to all things agile: Different frameworks like Scrum, DAD (Disciplined Agile Delivery), SAFe (Scaled Agile Framework), and Crystal all stem from the same principles.

Although its values are commonly associated with agile development, they apply to all people and teams following the agile mind-set, including testers. Let’s examine the four main values of the Agile Manifesto and find out how they can bring agility to teams’ test efforts.

agile-manifesto

Individuals and Interactions over Processes and Tools

Agile as a development process values the team members and their interactions more than elaborate processes and tools.

This value also applies to testers. Agile testing bases itself in testers’ continuous interaction and communication with the rest of the team throughout the software lifecycle, instead of a one-way flow of information from the developers or business analysts on specific milestones on the project. Agile testers are involved in the requirements, design, and development of the project and have constant interaction with the entire team. They are co-owners of the user stories, and their input helps build quality into the product instead of checking for quality in the end. Tools are used on a necessary basis to help support the cause and the processes.

For example, like most test teams, a team I worked on had a test management system in place, and testers added their test cases to the central repository for each user story. But it was left up to the team when in the sprint they wanted testers to do that. While some teams added and wrote their test scenarios directly on the portal, other teams found it easier to write and consolidate test cases in a shared sheet, get them reviewed, and then add them all to the repository portal all at one go.

While we did have a process and a tool in place to have all test cases in a common repository for each sprint, we relied on the team to decide what the best way for them was to do that. All processes and tools are only used to help make life easier for the agile team, rather than to complicate or over formalize the process.

Working Software over Comprehensive Documentation

With this value, the Agile Manifesto states the importance of having functioning software over exhaustively thorough documents for the project.

Similarly, agile testers embrace the importance of spending more time actually testing the system and finding new ways to exercise it, rather than documenting test cases in a detailed fashion.

Different test teams will use different techniques to achieve a balance between testing and documentation, such as using one-liner scenarios, exploratory testing sessions, risk-based testing, or error checklists instead of test cases to cover testing, while creating and working with “just enough” documentation in the project, be it through requirements, designs, or testing-related documents.

I worked on an agile project for a product where we followed Scrum and worked with user stories. Our approach was to create test scenarios (one-liners with just enough information for execution) based on the specified requirements in the user story. These scenarios were easily understood by all testers, and even by the developers to whom they were sent for review.

Execution of test scenarios was typically done by the same person who wrote them, because we had owners for each user story. Senior testers were free to buddy test or review the user story in order to provide their input for improvements before finalizing the tests and adding them into the common repository.

Customer Collaboration over Contract Negotiation

This is the core value that provides the business outlook for agile. Customer satisfaction supersedes all else. Agile values the customer’s needs and constant communication with them for complete transparency, rather than hiding behind contract clauses, to deliver what is best for them.

Agile testing takes the same value to heart, looking out for the customer’s needs and wishes at all points of delivery. What is delivered in a single user story or in a single sprint to an internal release passes under the scrutiny of a tester acting as the advocate for the customer.

Because there is no detailed document for each requirement, agile testers are bound to question everything based on their perception of what needs to be. They have no contract or document to hide behind if the user is not satisfied at the end of the delivery, so they constantly think with their “user glasses” on.

As an agile tester, when I saw a feature working fine, I would question whether it was placed where a user would find it. Even when the user story had no performance-related criteria, I would debate over whether the page load time of six seconds would be acceptable. After I saw that an application was functionally fine, I still explored and found that the open background task threads were not getting closed, leading to the user’s machine getting hung up after few hours of operation. None of these duties were a part of any specification, but they were all valuable to the user and needed correction.

Responding to Change over Following a Plan

Agile welcomes change, even late in development. The whole purpose of agile is to be flexible and able to incorporate change. So, unlike the traditional software development approaches that are resistant to change, agile has to respond to change and teams should expect to replan their plans.

In turn, such is the case for agile testing. Agile testing faces the burden of continuous regression overload, and topped with frequent changes to requirements, rework may double itself, leading to testing and retesting the same functionalities over and over again.

But agile testing teams are built to accommodate that, and they should have the ability to plan in advance for such situations. They can follow approaches like implementing thorough white-box testing, continuously automating tested features, having acceptance test suites in place, and relying on more API-level tests rather than UI tests, especially in the initial stages of development when the user interface may change a lot.

These techniques lighten the testing team’s burden so that they can save their creative energies to find better user scenarios, defects, and new ways to exercise the system under test.

Let the Agile Manifesto Guide Your Testing

When agile testers have dilemmas and practical problems, they can look to the Agile Manifesto for answers. Keep it in mind when designing and implementing test efforts; the Agile Manifesto’s values will guide you to the best choice for your team and your customers.


If you are interested in learning more about the Basics of Agile Testing, here is an interesting post for you!

Hope you liked my write-up, please share your views too!

Happy Testing!

Nishi