Part 1:Companies believe in buzzwords like TDD or getting testers involved early in testing. However, this often fails to materialize because there is simply not enough information at the beginning of a sprint to enable proper testing.
In this workshop, we will look at how to approach user-story creation within teams, what questions to ask to provide to get the right level of information, to begin with proper testing, and then work through examples of different user stories to showcase the difference a testable story can make to improve testing.
Attendees work through some of these examples in an interactive fashion, but also work together in teams to work through some specific scenarios and shape the given user stories to be more testable.
We will then take time out to reflect at the end, look at lessons learned through this creation process, and then also discuss some strategies on how testers can influence their teams towards better user story design.
Outline for Part 1 of workshop:
- Discuss the challenges of traditional user story design that prohibit TDD and early testing
- Explore aspects that make a user story more testable
- Showcase examples of user stories and provide ways that they can be improved to be more testable (interactive session)
- Discuss strategies to collaboration that can lead to better user-story design
- Group work – Get teams to create testable user stories out of given scenarios
- Discuss strategies to influence teams to adopt a better design approach
- Q&A
Part 2:Once we have discover how to write testable stories, its time to understand how to implement these stories int workable unit tests to ensure they can be tested.
Unpacking the world of unit testing in a way that a tester can understand and contribute towards, bring the tester closer to the code and allowing for improved collaboration between developers and testers.
We talk a lot about the testing triangle and how we need to focus more on the lower level unit and component tests for most of our coverage. However, in my experience unit tests and how to effectively write them remains a mystery for many testers and in this workshop I want to unlock the idea behind unit tests, how to write them in an effective way that ensures a high coverage, mitigates the need for too many higher integration tests and most importantly, makes them easy to read and contribute to for testers.
In this tutorial I want to share my experience as both a developer and a tester in highlighting the mind-sets of both and how through collaboration between developers and testers, software quality can be greatly improved through effective unit testing. The talk will discuss the different unit testing approaches, provide tips on how to write unit tests in a simple way and cover things like mocking and coverage analysis to improve coverage and scope of unit tests.
The tutorial will be mostly technical, but also include a few soft skill tips to aid the communication and provide testers with more confidence to help change the unit testing culture in their teams.
As someone who has filled the role of both developer and tester, I understand both viewpoints on unit testing. In this workshop I will share my experience on how having a better understanding of unit tests can enhance a testers ability to test more effectively and contribute in helping catch defects earlier, while reducing the load on the tester at the end of any development cycle.
Outline for Part 2 of workshop- Explore why testers should get involved with unit tests
- Identify what areas need to be unit tested
- The basics of how to write unit tests
- Work through a variety of unit testing exercises to practice these techniques and become more familiar with how this can get done.
Prerequisites for attending the TutorialThis tutorial will require testers to bring their own laptops, connect to Github and do some basic coding as they learn how to write unit tests and use this to better their testing elsewhere. The focus of the technical workshop will be in Java and require people to have JDK installed on their machines, along with Visual Studio Code or IntelliJ. The rest of the code will be supplied on GitHub (shared during tutorial) where all the required libraries will be available.