Friday, January 24, 2014

Role of Scrum Tester in Scrum/Agile Software Development Methodology

Let us have a bird's eye view of about how software testing is carried out in traditional methods of software development, a well known waterfall methodology.In a typical waterfall method of software development methodology, there is thick line between developers and testers. Once the developers are done with coding and optionally developer integration testing, the build is formally handed over to testers. Test team develops the test cases by studying the software requirements to test. Once done with test, the test team expects another build with bugs fixed. This process usually leads to multiple test cycles before a stable build can come out. If you are still following this approach, there ways to reduce software test cycles.

Scrum test is no different from what we do in different types of software testing. The major difference is that there is thin or no line between development and testing team. This means that testing is part of the development. Since scrum does not address all the software requirements at a go, so there is no need to write large documents of test cases by a dedicated test team. Usually one or two testers will be merged with development teams and they do involve in all the discussions, meeting, planning along with developers and product owners. There are no definite rules here as to how exactly the scrum testing needs to be performed. Different teams follow different ways for this. I've written down what role can a scrum tester play.
  •  When the software is still being coded (there is really nothing to test), the scrum tester spends time understanding the software requirements and deriving the test cases. Again this is only for that junk of software being developed that was planned in a PSI (Potentially Shippable Increment).
  • If the scrum tester has competency of writing the automated unit test cases, they can participate in unit testing the software. This role is what scrum demands from a tester. Usually the code is unit tested by the developer who creates that code.
  • Scrum tester plays an important role in continuous integration(testing). For this minimal functionality of the software should have been built. Here the code changes made by different developers are tested by the scrum tester to see if the software works when different code changes are integrated. This more required for maintenance projects where impacts can hit the software quality.
  • Scrum tester can discuss the use case scenarios with the developer during coding itself. This scrum test helps developer anticipate different user scenarios that the developer himself may not have thought of and leads not passing any bugs to the next person.
  • Scrum tester reads the code check-in comments to understand the nature of the changes made and think about the test scenarios such as issues fixed and impacts that may the fix can have.
  • Scrum tester involves in the PSI grooming sessions to know what new software is being planned in the coming days and think about how those new stories can be tested.

The agile development methodology does not differentiate between testers and developers. All are just the 'scrum team members'. However, in certain teams there may be a dedicated team for System Testing. This team tests if the software works with other subsystems or other products in the company's product portfolio. This will be beyond scrum testing.
Related Posts Plugin for WordPress, Blogger...