Results of the Agile Process and Lessons Learned Agile Testing

The results speak for themselves:the project continues to deliver successfully,the reputation of the project has excelled,and other projects within the same organization are now looking to reuse the approach developed in order to improve their productivity and delivery records.

The key lessons learned from this project and which are continuing to be used in the later iterations of the project include:

  • User requirements and test cases – you need them both up front.Following the use case essentials practice we have extended the role of use cases beyond being just an approach for gathering requirements.As the use cases are constructed,a test resource is on hand to identify the test cases that will be needed to cover functional and nonfunctional issues,quality,and integration.During the discussions with the customer representatives,where requirements were being identified,the tester would contribute by asking clarifying questions,such as, “How do you verify if that works?” Having these sorts of questions asked during analysis has proven to identify more details than we might otherwise have found at that time.This ultimately resulted in us producing a single document that covers what we would traditionally call a use case and a test case. This provided us with accurate requirements and the details of the testing needed to ensure that the requirements were met.
  • Pair developers and testers – one effective technique we adopted was to pair a testing resource with a developer during the implementation of the code.We already knew about the benefits of pair programming,and we attempted to gain similar benefits by bringing developers and testers together.This solution was not perfect,as the perception of the developer was that the tester was acting as a policeman,sitting on their shoulder constantly directing her or him.We refined this approach so that the tester was involved in reviewing what had been delivered at the end of each day,so that this could be incorporated into the next day’s testing.
  • Every day is test day – I have heard it proposed many times during projects that “we can cut back on testing to meet the deadline!” Testing seems to be the first thing that is ditched when tight timescales start to make things difficult.The truth is that something can probably be delivered under these circumstances but the reliability and quality of such a system is often questionable.Once a project has started delivering,it is vital that testing is continuous in order to keep to the levels of reliability required by the stakeholders.We have tried to promote the fact that testing is the central cog in our project,and that the testers need to be in communication with all members of the team in order to fully integrate the work completed by the requirements analysts,developers,and the customer community.If something is to be delivered,then it is the testers who make the final decision as to whether or not that something is delivered into the live environment.In addition to daily builds and their associated tests,test cases are implemented during an iteration as the code is being developed.The testers work closely with the developers to help focus the effort on achieving deliverable code that can successfully pass the test cases.Because the testers are involved in the requirements-gathering effort,they are able to provide extra clarification points when a requirement is unclear.This means that we have analysts,testers,and customer representatives available to the developers to help clarify or confirm a particular requirement;this helps us cut down on the amount of documentation produced while improving the quality of the communications.Each and every day in our iterations is a day that the testers will work with the team,with one common goal–successful delivery.
  • Automated testing of daily builds – The use of automated testing tools for regression testing has saved the project significant amounts of time,effort,and cost,and has helped to ensure that the quality of the deliverable is maintained.The key to using these tools successfully is to have a testing resource who fully understands the tools and who has responsibility for keeping the scripts up to date every single day.The goal is to run automated tests every night,with any issues highlighted the following morning.Fixing these issues is a standard task all the way through the iterations – so there was an assumption that time would be spent on this activity and the iterations would be planned accordingly.
  • Role and use of Scrums – One of the benefits of holding daily Scrums has been in promoting effective testing as the key to the delivery of higher-quality code.Scrums have also been instrumental in ensuring that testers,analysts,developers,and customer representatives are all working together as a team toward the same goal.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd Protection Status

Agile Testing Topics