Read Along- ‘Agile Testing’ Chapter-14

“An Agile Test Automation Strategy”

Use the Agile Test Quadrants to help you identify the different types of test automation tools you might need for each project, even each iteration.

Test Automation Pyramid (introduced by Mike Cohn)

Lowest Layer- Bulk of automated unit , technology facing tests. Quickest feedback, code much more quickly using xUnit family of tools

Middle layer – Automated business-facing tests that help the team. “Are we building the right thing” Tests operate at the API, behind the GUI level. Bypass the presentation layer – less expensive to write & maintain these tests. Fit & FitNesse are good examples, written in domain language

Top Tier – Should be the smallest automation effort as they  have the lowest ROI. Done through GUI, operating on the presentation layer. More expensive to write, more brittle and need more maintenance.

The Test Automation Pyramid
  • Any tedious or repetitive task involved in developing software is a candidate for automation.
  • AN automated deployment process is imperative – getting automated build emails listing every change made is a big help to testers. It speeds up testing & reduces errors.
  • A fast running continuous integration and build process gives the greatest ROI of any automation effort.
  • Another useful area for automation is data creation or setup. Cleaning up test data is as important as generating it. You data creation toolkit should include ways to tear down the test data so it doesn’t affect a different test or prevent rerunning the same test.

What we shouldn’t automate

  • Usability testing
  • Exploratory testing
  • Tests that will never fail
  • One-Off tests
  • Plan-in plenty of time for evaluating tools, setting up build processes, and experimenting with different test approaches in the initial iterations.
  • If management is reluctant to give the team time to implement automation, explain the trade-offs clearly. Work towards a compromise.
  • We will always have deadlines, and we always feel pressed for time. There is never enough time to go back and fix things. During your next planning meeting, budget time to make meaningful progress on your automation efforts.
  • Good test management ensures that tests can provide effective documentation of the system and of the development progress

Read Along- ‘Agile Testing’ Chapter-13

“Why we Want to Automate Tests and What holds us back”

  • Test automation is a core agile practice. Agile projects depend on automation.
  • Manual tests take too long and are error prone.
  • Automation regression tests provide a safety net. They give feedback early & often.
  • Automated builds, deployment, version control and monitoring also go a long way toward mitigating risk and making your development process more consistent.

“Build Once, Deploy to Many” – is a tester’s dream!

Projects succeed when good people are free to do their best work. Automating tests appropriately makes that happen!

If we become complacent about our testing challenges and depend solely on automated tests to find our issues, and then just fix them enough for the test to pass – we do ourselves a disservice.

However, if we use the tests to identify problem areas and fix them the right way or refactor as needed, then we are using the safety net of automation in the right way.

When tests that illustrate examples of desired behavior are Automated, they become ‘living’ documentation of how the system actually works.

Barriers to Automate –

  • Programmer’s attitude – Why automate at all
  • The Hump of Pain – the initial learning curve
  • Initial Investment
  • Fear – Non-programming testers fear they have nothing to contribute
  • Legacy code
  • Old habits, team culture
  • Without automated regression tests, manual regression testing will continue to grow in scope and eventually may simply be ignored.
  • Teams with automated tests and build processes have a more stable velocity.
  • Good test design practices produce simple, well-designed, continually refactored, maintainable tests.
  • Team culture & history may make it harder for programmers to prioritize automation of business-facing tests than coding new features. Using Agile principles & values helps the whole team overcome barriers to test automation.

Read Along- ‘Agile Testing’ Chapter-12

“Summary of Testing Quadrants”

This chapter reviews all the four Agile Testing Quadrants by illustrating an example of a team’s success story in testing their whole system using a variety of home-grown and open source tools.

The system is related to Monitoring of Remote Oil and Gas Production Wells. The software application had a huge legacy system, with very few unit tests. The team was slowly rebuilding the application using new technology. And describes how they used tests from all four quadrants to support them.

  • Using Test Driven Development and Pair Programming wholeheartedly. Also adding unit tests and refactoring all legacy code they encountered on the way.
  • The product engineer writing acceptance tests and sharing with the developers and testers before they began creating.
  • Automation involving functional test structure, web services and embedded testing
  • Exploratory testing to supplement the automated tests to find critical issues.
  • Don’t forget to Document… but only what is useful
  • Finding ways to keep customers involved in all types of testing, even if they are remote. Have UATs and end to end tests
  • Use lessons learnt during testing to Critique the product in order to drive the development in next iterations
Agile Testing Quadrants

Read Along- ‘Agile Testing’ Chapter-11

“Critiquing the Product Using Technology-Facing Tests”

  • Technology-facing tests that critique the product are more concerned with the non-functional aspects – deficiencies of the product from a technical point of view.
  • We describe requirements using a programming domain vocabulary. This is the main of Quadrant-4 of our Agile Testing Quadrants.
  • Customers simply assume that software will be designed to properly accommodate the potential load, at a reasonable rate of performance. It doesn’t always occur to them to verbalize those concerns.
  • Tools, whether home-grown or acquired, are essential to succeed with Quadrant 4 testing efforts.

“Many teams find that a good technical tester or toolsmith can take on many of these tasks.”

Take a second look at the skills that your team already posseses, and brainstorm about the types of “ility” testing that can be done with the resources you already have. If you need outside teams, plan for that in your release and iteration planning.

The information these (Quadrant-4) tests provide may result in new stories and tasks in areas such as changing the architecture for better scalability or implementing a system-wide security solution. Be sure to complete the feedback loop from tests that critique the product to tests that drive changes that will improve the non-functional aspects of the product.

When Do you Do it?

  • Technical stories can be written to address specific requirements.
  • Consider a separate row on your story board for tasks needed by the product as a whole.
  • Find a way to test them early in the project
  • Prioritize stories such that a steel thread or a thin slice is complete early, so that you can create a performance test that can be run and continued as you add more functionality.
  • The time to think about your non-functional tests is during release or theme planning.

The team should consider various types of “ility” testing including – Security, maintainability, Interoperability, Compatibility, Reliability and Installability – and should execute them at appropriate times.

Performance, Scalability, Stress and Load tests should be done from the beginning of the project.

Read Along- ‘Agile Testing’ Chapter-9

“Toolkit for Business-Facing Tests that Support the Team”

  • As agile development has gained in popularity, we have more and more tools to help us capture and use them to write executable tests.
  • Your strategy for selecting the tools you need should be based on your team’s skill set, the technology your application uses, your team’s automation priorities, time, and budget constraints. Your strategy should NOT be based on the latest and coolest tool in the market.
  • In agile, simple solutions are usually best.
    • Some tools that can help us illustrate desired behavior with examples, brainstorm potential implementations and ripple effects and create requirements we can turn into tests are—
      • Checklists
      • Mind maps
      • Spreadsheets
      • Mockups
      • Flow diagrams
      • Software based tools
  • A picture is worth a thousand words, even in agile teams. Mock-ups show the customer’s desires more clearly than a narrative possibly could. They provide a good focal point to discussing the desired code behavior.
    • Visuals such as flow diagrams and mind maps are good ways to describe an overview of a story’s implementation, especially if it is created by a group of customers, programmers, and testers.
    • Tools such as Fit (Framework for Integrated Tests) and FitNesse were designed to facilitate collaboration and communication between the customer and development teams.
    • Finding the right electronic tools is particularly vital for distributed teams (chat, screensharing, video conferencing, calling, task boards etc.)
    • Selenium, Watir and WebTest are some examples of many open source tools available for GUI testing.
  • Home-Brewed Test Automation Tools
    • Bret Pettichord (2004) coined the term ‘home-brewed’ for tools agile teams create to meet their own unique testing needs. This allows even more customisation than an open source tool. They provide a way for non technical customer team members to write tests that are actually executable by the automated tool. Home-brewed tools are tailored to their needs, designed to minimize the total cost of ownership and often built on top of existing open source tools.

The best tools in the world won’t help if you don’t use them wisely. Test tools might make it very easy to specify tests, but whether you are specifying the right tests at the right time is up to you.

Writing detailed test cases that communicate desired behavior is both art and science.

Whenever a test fails in Continuous Integration (CI) and build process, the team’s highest priority should be to get the build passing again. Everyone should stop what they are doing and make sure that the build goes ‘green’ again. Determine if a bug has been introduced, or if the test simply needs to be updated to accommodate intentionally changed behavior. Fix the problem, check it in, and make sure all tests pass!

Experiment – so that you can find the right level of detail and the right test design for each story.

  • Keep your tests current and maintainable through refactoring.
  • Not all code is testable using automation but work with programmers to find alternative solutions to your problems.
  • Manual test scenarios can also drive programming if you share them with the programmers early. The earlier you turn them into automated tests, the faster you will realise the benefit.

Start with a simple approach, see how it works, and build on it. The important thing is to get going writing business-facing tests to support the team as you develop your product.

Read Along- ‘Agile Testing’ Chapter-8

“Business-Facing Tests that Support the Team”

A look at tests in Quadrant-2 – Business-Facing tests

Agile Testing Quadrants
  • On an agile project, the customer team and the development team strike up a conversation based on a user story.
  • Business-facing tests address business requirements. They express requirements based on examples and use a language and format that both the customer and development teams can understand. Examples form the basis of learning the desired behavior of each feature and we use those examples as the basis of our story tests in Quadrant-2
  • Business-facing tests are also called “customer-facing”,”story”,”customer” and “acceptance” tests. The term ‘acceptance tests’ should not be confused with ‘user acceptance tests’ from Quadrant-3.
  • The business-facing tests in Q-2 are written for each story before coding started, because they help the team understand what code to write.
    • Quadrant-1 activities ensure internal quality, maximize team productivity, and minimize technical debt.
    • Quadrant-2 tests define and verify external quality and help us know when we are done.

The customer tests to drive coding are generally written in executable format, and automated, so that team members can run the tests as often as they like to see if functionality works as desired.

  • Tests need to include more than the customer’s stated requirements. We need to test for post-conditions, impact on the system as a whole, and integration with other systems. We identify risks and mitigate those with our tests. All of these factors then guide our coding.
  • The tests need to be written in a way that is comprehensible to a business user yet still executable by the technical team.
  • Getting requirements right is an area where team members in many different roles can jump in to help.
  • We often forget about non-functional requirements. Testing for them may be a part of Quadrants 3 and 4, but we still need to write tests to make sure they get done.

There are conditions of satisfaction for the whole team as well as for each feature or story. They generally come out of conversations with the customer about high-level acceptance criteria for each story. They also help identify risky assumptions and increases team’s confidence in writing & correctly estimating tasks needed to complete the story.

  • A smart incremental approach to writing customer tests that guide development is to start with a “thing-slice” that follows a happy path from one end to the other. (also called a “steel-thread” or “tracer-bullet”). This ‘steel-thread’ connects all of the components together and after it’s solid, more functionality can be added.
  • After the thin slice is working, we can write customer tests for the next chunk.
    • It’s a process of  “write tests — write code— run tests — learn”
  • Another goal of customer tests is to identify high-risk areas and make sure code is written to solidify those.
  • Experiment & find ways your team can balance using up-front detail and keeping focused on the big picture.

Quadrant-2 contains a lot of different types of tests and activities. We need the right tools to facilitate gathering, discussing, and communicating examples and tests.

>>Simple tools such as Paper or Whiteboard work well for gathering examples if the team is co-located.

>>More sophisticated tools help teams write business-facing tests that guide development in an executable, automatable format.

Are you a Good Agile Leader?

Agile leaders are supposed to get the maximum amount of quality work done with minimum control of the situation. The team constantly needs support and guidance while remaining independent and self-motivated.

How do you get this done within the tight deadlines? Do you have the team’s trust, and do they have yours? How do you know if you are a good leader for your agile team?

In my article for Testrail blog, I discussed the challenges of Agile Leadership and shared some tips for aspiring Agile Leaders to excel in their team management! Here are some areas to focus on:-

Communication

Communication is the backbone of agile. Open, clear and frequent communication breathes life into the agile team.

As an agile leader, you will be required to be big on communication, stressing its need, ensuring it is happening, and keeping it open and constructive at all times. You may even need to get over your own fear or reluctance if you are an introvert! A good agile leader needs to constantly encourage people to work together, discuss issues, and enforce good communication practices.

Vision

As a good agile leader, it is imperative to maintain a clear vision for the project. Since agile requires teams to deliver working software frequently, most of the team’s time is spent concentrating on different tasks and activities to make the release happen.

But since requirements change often, it is easy to lose sight of the overall vision for the project amidst all that chaos. It falls to the leader to keep the team aligned, maintain the overall vision, and help everyone zoom out periodically to look at the bigger picture.

Removing Impediments

A Good Agile Leader

An agile leader is required to be a constant problem solver. They need to look for problems before they happen and resolve them as early as possible.………

Read More »

My contribution to the eBook “Software People- Work From Home” -now on Leanpub

I am super excited to share that I have my first ever contribution to an eBook now published on Leanpub. This eBook called “Software People- Work From Home” is initiated and compiled by Stephan Kamper and Maik Nogens which has many software professionals from all around the globe contributing their stories, experiences and ideas on their work-from-home experiences.

In my chapter , I wrote about Speaking and Engaging from home in this pandemic-induced lock-down situation. I shared my take on engaging with your colleagues, engaging with the community and also with oneself while working from home. Check out Chapter-9 in the eBook to read my contribution. Please give it a read and support this wonderful initiative –> https://leanpub.com/softwarepeopleworkfromhome

Catch updates and opinions about the book, and tweet about it using the hashtag #SoftwarePeopleWfhBook

My Work-from-Home Desk

Another fun aspect of this eBook is getting to see all the fun ‘work-from-home’ setups and desk images shared by the authors along with their write-ups. It brings a sense of belonging, understanding and normalcy to this unique situation and helps you relate to the writer’s life and experiences. I , too shared by home desk image! 🙂

Find out how software people experienced the corona-virus-caused time working from home!

Software people from all over the planet share their insights & experiences, opinions, and tips.

The coronian times during the year of 2020 have – in fact are still at the time of the writing – proven to provide a good number of challenges for everyone.

– eBook “Software People- Work From Home”

This eBook is available for free at LeanPub. Please give it a read and support this wonderful initiative! https://leanpub.com/softwarepeopleworkfromhome

Cheers

Nishi

My experience speaking at Testbash Home

The Ministry of Testing (MoT) is definitely the biggest and the most supportive testing community. Having heard so much about their Testbash events conducted world-wide, speaking at one was a long time goal. And I was fortunate enough to be accepted to speak at Testbash Detroit this year. But as things progressed since the beginning of 2020, travels and conferences of any kind were far from possible in light of a the global pandemic of Covid-19. Alas! our dreams were shattered. And though, it was disheartening for sure, the awesome community jumped back from the jolt and got together to bring us all an awesome online event #Testbash Home 2020.

Preparations began and I too got back to preparing my talk, which I had given up on after the cancellations! Took a couple of weekends sorting out the content and slides. Then we had a call to record the talks with the community members Heather and Diana were ever so supportive and so kind with their emails, scheduling and feedback! This was a wonderful idea to have the talks pre-recorded so that we are not hampered by any technical glitches on the event day, while we speakers get to focus on engaging with everyone and answering questions from the community.

As the day of the event approached, I prepared for my live interview. The event had more than 1000 registrations! Definitely making it the biggest audience I have ever presented to. Though the event began late night hours for my timezone, my talk was at a convenient morning hour. So that is when I joined in. Had a wonderful chat with Richard who was the Backstage boss and handling the entire livestream for the entire 24 hours! Checked on my audio & video etc and also had introductions with James who was the host for that part. And then we were live!

The duration of the talk went great. It was surreal listening to myself presenting, and looking at the live chat and questions coming from the participants throughout the talk. Once it ended, I was back live with my video. Me and James continued to discuss the most popular voted questions asked and I answered them the best to my knowledge. It was amazing to see such great comments and kind appreciation by the listeners in the chats once we were done. #Grateful

Once my talk was done, I could now continue to enjoy the rest of the live event! #Testbash Home was an absolute treat with a mix of great content, discussions, community participation, fun hosts and great conversations! It sure has set the bar really high for all online events in the future. I stayed throughout the next 5 parts of the event and only left late at night when it was absolutely impossible to keep my eyes open 😛

It sure felt like a day away from our regular stay-at-home lives, and felt like we had met up with so many people in the virtual world. Some key highlights of the day were-

  • Awesome talks by speakers
  • Black Box puzzles played live with volunteers
  • 99 second talks with many enthusiastic participants, many of whom were presenting for the first time!
  • The breakout room was so much fun – where you could select your avatar, enter a virtual room and just chit chat (and play with Ralph the dogBoss 😛 )
  • The breaks in-between parts had the background noise of an actual conference hall with people chattering and plates clanking. It was so soothing to hear (given the times we are in!) A fantastic idea! 🙂
  • The hosts did an awesome job engaging everyone in informal chats, yoga, discussing shows we are watching, things we are cooking and what not. Considering that it was a 24 hour long event, it sure was a welcome change of pace every few hours.
  • The short intros of all the MoT community bosses was so much fun to watch and made it very relatable. Now we know the faces behind the names.

Overall, TestBash home was an awesome experience, and I was fortunate to get some great feedback for my first ever Testbash Talk! I also loved the sketch-note of my talk created by Louise Gibbs

Sketch note Created by Louise Gibbs

I look forward to taking it further and engaging with this community in a live Testbash event some day! 🙂

Cheers

Nishi

I am speaking at TestBash Home 2020

When life gives you lemons, make lemonade! None better example of this than the zingy, sweet lemonade under preparation by this awesome community at @Ministry Of Testing , bringing the ‘testing’ flavors of the entire world right to your home!

Despite cancellations of a number of events due to the ongoing pandemic, this community has come back together to create an amazing online event. I am super excited to be speaking at TestBash Home 2020 – the first online software testing conference by Ministry Of Testing. It will begin on the 30th of April 2020 and run for a full 24 hours into the 1st of May 2020, traveling all timezones so that everyone in our truly global testing community can get involved. 

I am honored to be a part of such an awesome line-up of speakers. These hours are going to be packed full of interactive sessions including talks, panels, challenges, plus we’ll relive and reflect on some classic TestBash talks.

Speakers List – TestBash Home 2020

The agenda is live now-

Checkout more details about the event and schedule here –https://www.ministryoftesting.com/events/testbash-home-2020

Follow the updates on Twitter—

Register now for loads of fun and learning and engaging with a worldwide community of testers right from your home!

Cheers

Nishi