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

ATA 12th Meetup @Moolya software, Bangalore

I organised and hosted the ATA 12th Meetup last Saturday 25th March 2017 @Moolya software, Bangalore. The event saw good participation from many enthusiastic testers and some insightful talks by great speakers. We had talk on

>>Problem solving techniques: An attempt to apply ideas across disciplines — by Ajay Balamurugadas, Tyto Software (Creators of Sahi)-

>>Behavior Driven Development – What, Why and How – from a tester’s perspective — by Mr. Vinay Krishna, Agile Technology Coach

>>Challenges of Agile for a Manager — by Preeth Pandalay, Techno Agilist, Agile Coach, Trainer

>>Create 100 mindmaps in 1 minute (demo) — by Dharamalingam K – Moolya Software

The event was a great success owing to the awesome speakers and the amazing discussions and questions by the participants. We hope to continue these meetups and bring the community together with more such open events!

This slideshow requires JavaScript.

Happy Testing!

Nishi

My talk at the UNICOM World Quality Summit 2017, Bangalore

Hello Friends,

I was recently invited to speak at the World Quality Summit 2017 organised by UNICOM at The Leela Palace, Bangalore. The event saw attendees from many teams from Pune, Gurgaon and the city itself who participated in the Quality Olympiad. It was a good mix of audience and lots of interesting talks and discussions during the sessions.

I spoke on the Practical risks in Agile teams and Ways how testers can help build-in continuous quality in Agile projects.It was a great experience, met some great people and enthusiastic teams and got awarded the Thought leadership Certificate by UNICOM!

Check it out!

 

Cheers

Nishi

11th ATA Meetup – Feb’17 @Epsilon, Bangalore

ATA strives to spread knowledge about agile testing and aims to create and nurture a community of agile testers by organising events like conferences, contests and meetups. ATA meetups are free open events which bring testers together for thought provoking talks, discussions and networking opportunities to passionate testers in the area.

18th February 2017 was a great day with the 11th ATA meetup organised in Bangalore courtesy the wonderful team at Epsilon. ATA community got together at the Epsilon venue for some good discussions and talks, one of them being mine!- on the topic “Agile vs Traditional Testing”. Other speakers who graced the occasion were Shanthala and her team from Epsilon talking about “Campaign Testing” and Amit Vyas from Moolya talking about “Client side Performance Testing”.

Here are some pictures from the day-

Stay updated at www.agiletestingalliance.org for upcoming meetups and events. We are looking for volunteers and organisers for our next events, and also reach me in case you have ideas to present on our next meetup!

This slideshow requires JavaScript.

Cheers,

Nishi

5 Ways Agile Testing Is Different from Traditional Testing

My latest article for stickyminds.com focused on the essential differences between Agile and traditional approach of testing >> published here

****

The agile world is abuzz nowadays with talk about agile testing and the key role of testers in an agile project. Some even say testers are the key piece of an agile team, arguing that they define the success or failure of the team’s attempts to be agile.

But what makes agile testing different from traditional testing? It’s the distinctions between the agile and traditional software development approaches, but also the adaptability of testers in these very different environments. Agile demands more from its testers, and, in turn, it values them more, too.

Let’s look at five main things that make an agile tester’s life different from that of a traditional tester.

Continuous Involvement

In traditional projects, the test team works mostly in a silo, and there is little or no interaction needed with developers or other teams on a daily basis. But in agile, the test team is integrated with the Scrum team instead of being a separate unit. They need to be continuously involved in all aspects of the project, starting with the requirements and design of each feature. This makes the testers’ days busier with discussions, meetings, and interactions where they need to put forward their opinions.

Agile necessitates that everybody report to the Scrum team first and their separate testing or development team later. In my experience as a part of a Scrum team, we would discuss our vacations or skill training needs first within the Scrum team, then inform our test manager afterward.

Essential Tools

Agile needs tool support more than traditional projects do because of the pace of development and continuous iterations. Each iteration brings along some regression work from the previous iterations that needs to be automated quickly.

The same is true for test data generation, white-box testing tools, and static analysis tools, which become a necessity in an agile system. Given the time and quality constraints, performing white-box tests using control flow or data flow analysis, static analysis of code, or reviews for code and documents is no longer optional. Instead, it’s a mandate to prevent defects and ingrain quality into each work product.

While in traditional projects, tools may be a luxury we might not be able to afford, in an agile project they become a necessity. Testers need these tools’ abilities in order to achieve their quality targets.

When my team began our agile transformation, we had one automation engineer who would work on automation scripts for the entire project. But when pacing through the sprints, we quickly realized that one automation engineer was not able to keep pace with automating all features in all sprints. So, everybody started pitching in by scripting the features they tested, and eventually it was mandated. The automation expert was only used for framework-level implementation, and later he was absorbed as a functional tester.

Due to frequent changes in the application within the sprint, we would follow an (n–1) approach to automation of our product, automating the features of the nth sprint in the next sprint, then subsequently using them for regression. But due to overload of regression building up as we progressed, it was crucial that each tester be able to perform and use the tools effectively, building up the test suites every sprint.

Multidimensional Skills

A traditional project has set expectations from the testers and testing activities. Each phase of testing gives set outputs, such as test design and specifications in the design phase, functional issues and defect reports in the execution phase, regression tests and retest results in reruns, and acceptance test reports in the end phase. This pattern does not leave much room for anything else because the project is already hard-pressed at the deadline.

But an agile tester’s viewpoint covers not only the functional aspects of what he is testing, but also many broader aspects of the application. He need not be a performance testing expert to suggest during the design discussions that the design might not be able to support too many users. He may not be a usability expert, but he can suggest better ways to design the web form of their user story. He may not be a technical writer, but he may be required to review the installation guide steps. An agile tester has to have a broader perspective of quality in his project’s context and possess skills in all those areas.

Effective Communication

Agile requires effective communication among the team members at all times, and testers play a key role in establishing and maintaining that. For example, as a part of a Scrum team, a tester will be required to wear many hats: that of a requirement critic for the product owner, of a design reviewer for the developers and architects, of a functionality expert as a tester, and of a release adviser to the manager. Testers have to give their opinions and ideas at all stages of the project, which may be not required (or even much welcomed) in a traditional project.

Testers act as the binding force of the team when they work in pairs with developers, sharing their test cases and ideas, as well as when they work as a quality reporter for the manager, with daily statistics and defect metrics for each sprint. The art of verbal and written communication is essential in an agile project.

Quick Feedback from Testing

The most important difference for agile testers is the quick feedback being given from the testing perspective at every point. The agile timeframes are shorter than on a traditional project, and testing needs to provide feedback about project quality on a regular basis. Daily stand-up meetings, design discussion or review meetings, the user story verification status, and sprint retrospectives all require constant feedback from testers.

There is some additional pressure because the direction of the project gets defined by this feedback, and there is no final “quality gateway” at the end if the project does not meet the deadlines or quality goals. This keeps the testers on their feet at all times, unlike in traditional projects where testers are required only at the end of the project for a sign-off.

Working in an agile environment can be challenging for testers coming from traditional projects, but by being open, flexible, and adaptive, they will find that an agile team is a wonderful place to be a tester.

Do share your views!

Cheers

Nishi

A day well spent at the STeP-IN Summit 2016, Bangalore

I recently received an invite to the prestigious event STeP-IN Summit 2016, since my training company was one of the Gold sponsors of the event. It is an annual event organized in Bangalore by the STeP-IN Forum, and the workshops also extended to the cities of Hyderabad and Pune where the forum has its local chapters.

The event was a full-house with 400 delegates, 35 speakers and meet and greet sessions. Though I happened to attend only one day of the 2-day event, it was a great experience listening to some amazing keynote speakers and talks. One talk by Mr. Wolfgang Platz from Tricentis on ‘Ninja or Samurai? The Art of War and the Future of Testing‘ was an definitely an eye opener into the future of our industry. The event also saw some excited participants from across the country for the Automation Contest where the best minds came together to live up to the challenge.

I also had a chance to attend a pre-conference workshop on Exploratory Testing by Ajay Balamurugadas, which was a good hands-on session on practical aspects of testing.

This slideshow requires JavaScript.

ISTQB Certification Camp for Corporate Team

One of the renowned corporates recently invited us to conduct a ISTQB certifcation camp at their site, where I led and trained a team with the most interesting mix of candidates having experience range from 2 years to 11 years ! Most of the candidates were domain experts shifted into testing teams , were leading testing efforts in their teams and all of them had the urge to take their learnings from our training back to their teams and project’s context.

We had some great conversations not only about the course content , various test design techniques and tools, but also about agile and the struggles they had with scrum and the measures to improve upon them.

The course delivery went great and I received impeccable feedback from the candidates! I wish them the best of luck for their certification attempt as well as their future endeavours!

WP_20160615_010WP_20160615_011

Advanced Level Workshops with industry leaders

My association with Verity Trainings recently led me to assist on and experience some great advanced level testing and ISTQB workshops by industry leaders! A great corporate team in Bangalore had invited experienced trainers as the likes of Mr Tarun Banga for their workshop on ISTQB Advanced Level Test Analyst which I happened to assist on as a co-trainer. It was an awesome experience and great learnings came from the interaction with a leader in trainings domain as well as the interaction with the team of candidates, having some proactive discussions, hands-on exercises and fun with learning environment.

 

Another great experience was hosting some hands-on public workshops on ISTQB Advanced test levels with Mr. Gaurav Pandey , where we met some excellent, self-driven individuals with keen sense of learning and quest for excellence in their careers.

With these interactions, I experienced that every trainer has their own style of delivery and conduct , even with similar content and exercises.And every candidate is bound to have their own experience with the training depending upon their agenda , quest and initiative!

QA Bootcamp time! – Conducted a 10 day corporate training for freshers

Working with fresh minds is always refreshing and so much fun! I got the chance to interact with some such enthusiastic and energetic people in my latest training at Misys, Bangalore. I led the QA Induction Bootcamp for the testers who were a pleasure to work with. We covered all the fundamentals of software testing, various testing techniques and practiced with some live exercises and applications. The agenda was not only getting them familiarized with the world of a software tester , but to get them to explore the amazing opportunities that lie ahead and basically start enjoying this wonderful profession. The best part was that we received some great feedback from the candidates at the end, they enjoyed the training and found it very relevant to the real experience within their teams.

Wish them all a fulfilling career ahead!

This slideshow requires JavaScript.