09 September, 2013

A Tester’s perspective on agile Software testing projects

Agile no longer seems to be unfamiliar to the industry. Over the years, the software has progressed rapidly and has developed to a commonly accepted methodology. Conducting tests in Agile projects has necessitated a tester to undertake a paradigm shift from conventional testing roles. It requires a change in the attitude where a tester needs to take up a more involved and upfront role against the traditional relay race oriented approach. This particular software strives towards getting things right and in place in the very first attempt thereby, reducing the need for QA testers to receive something over the finish line.

Certified software testers
Agile is a methodology that aims towards delivering constant value to users /customers frequently and incrementally based on the feedback and communication. These two aspects are important to successful Agile method and testers need to play an important role for generating value in such projects through different iteration phase.

Usually, the QA activities involve three phases in terms of a project type. However, it is to be noted that there is no set or predefined rule that guides the process and it can mould itself according to the project situation. The role of an Agile QA tester is not restricted to a set process as the methodology directs role in accordance to the situation.

Pre-iteration: This particular phase involves a detailed analysis of the requirements by the BAS following a detailing of the acceptance criteria for that specific story. Since the QA testers seem to be an instantaneous consumer of the requirements, it becomes significant to verify the requirements quite often and early.

Verification of the requirement/story: Agile testing involves early feedback, which might not always be offered by testing the requirements, but at times by conducting early requirement testing. The QA testers need to have a clear look at the requirements for maintaining testability and clarity effectively. This helps determining the requirements that are testable and definite.

  • Requirement should always be small for it should match sense with the context.
  • Acceptance criteria should never be duplicate or overlap from different stories.

To ensure doing this successfully, it is important to achieve a strong communication between the Business Analysts/Development/ Quality Assurance.

Testable: The testability aspect necessitates a complete scan of the story to determine what needs to be done for testing the same. The factors include:

  • Test data
  • Environment
  • Dependency on other requirements
  • Finding requirements that are hidden

Getting information about all these details early makes way for prioritizing the story in accordance to the backlog thereby, enabling a smooth execution in the iteration phase. QA testers also take part in meetings related to iteration planning for offering a perspective enabling the team to produce a developer estimate. This participation is deemed as a big role as the professionals do escalate some implicit requirement.

Activities of the QA in the Iteration Phase
Once the QA testers seem to be happy with the acceptance criteria, they help defining the acceptance tests for that particular story. What are acceptance tests? Well, these are actually requirements in aspect of the tests that can be executed to understand the expectations from the requirements. These usually tend to be automated and help driving development. It is important to note that these should not involve too many scenarios of corner case as it would lead to unnecessary delays and might end up producing likewise automated tests.

People often fail understanding the fact that acceptance tests in terms of Agile projects are different from the conventional and traditional projects. Acceptance testing in such projects are conducted prior to delivering the software as against to the traditional projects, which involve performing tests at the software lifecycle end.

Purposeful Use of Automation
Automation in Agile can turn out to be quite controversial. Many people make the mistake of attempting to automate everything and end up being caught in a trap of long cycle feedback. Automation is all about providing feedback early in terms of the latest code alongside being the key to identifying what is worth and what is not.

Each automated test involves a cost associated with the same. The automation cost must always be compared to the cost of operating or running the test. The questions that should be asked in such situations are:

  • What to do in case it is not an automated test?
  • What can get lost and what would exactly be the cost of setting up things around the code that is responsible for the coverage loss?
  • Is manual testing cheaper?

Well, the answers to the questions might not always be straightforward in terms of finding the test value. It often ends up to be a contextual decision depending on the project size and the number of people engaged with the same. Alternatively, a lengthy feedback cycle equals more people contributing time for getting the instant feedback.

You can hire software testing companies from India after due validation of their skillsets, expertise and experience in handling huge agile software testing projects to avoid risks associated with letting an amateur do load testing for you.

We provide software testing services. If you would like to talk to one of our certified software testers, please contact us at Mindfire Solutions.

No comments: