Thursday, 13 August 2015

Quality assurance through agile testing



Quality is not only an attribute of the software product but also that of the development procedure followed to build it. The first consideration to any quality assurance is - are we building the correct product and if so are we building it correctly. Agile Software Testing methodologies adhere to the very well defined rules in its manifesto

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

 

In Agile Testing, the customer's perspective is taken into consideration as early as possible. Testing is done as code is written and is stable enough for unit level testing. Since testing is done often with every increment of the working software, it is done by automated testing. Manual Agile testing is more likely to result in flawed product or delayed time line. Agile testing covers all types of testing. They can be defined into the following main four.

  • Functional Testing
  • Exploratory Testing
  • Unit Testing
  • Performance and Load Testing

Main Testing Practices:

  • Paired Programming
  • Test Driven Development
  • Continuous Integration
  • Automated Unit Tests
  • Automated Functional Tests
  • Restructuring Code without altering corresponding functionality
  • Defining 'done' clearly.

Testing Approaches:

  • Scrum: This concentrates on the task management within a team. It implements working in small teams. Each iteration of a scrum is called a Sprint. All the details of the end product are entered in the product backlog. The top items of the product backlog are selected and listed in the Sprint backlog. The team checks for the daily work the Sprint backlog. The team then delivers the product functionality after each sprint.

  • Kanban: This framework can be better defined through its difference with scrum. Here there in no definite sprint size, optional prioritization of product backlog and adding items whenever possible.

  • Crystal Methodologies: This is based on the concept of chartering, cyclic delivery and wrapping up. Chartering involves the creation of development team, feasibility analysis and defining the development methodology. In delivery cycles, the team implements and reviews a subset of the requirements. Then the entire developed software is deployed and reviews are performed.

  • Extreme Programming: This approach is very useful when the requirements are constantly changing and evolving. The product is frequently released in short development cycles called iterations. This introduces a checkpoint where additional requirements can be easily implemented. There are six phases in this method which are Planning, Analysis, Design, Implementation, Wrapping and Closure.

  • Dynamic Software Development Model (DSDM): The main focus of DSDM is frequent delivery. It is a Rapid Application Development (RAD) approach. DSDM consists of seven main phases which are self explanatory in their terminologies. They are Pre-project, Feasibility Study, Business Analysis, Functional Model Iteration, Design and Development Iteration, Implementation and Post Deployment.

  • Development of Lean Software: It is a just-in-time production approach which basically aims at increasing development cost and decreasing cost. The main steps of this system are Waste Elimination, Amplification of learning, deferring commitment, early delivery, team integrity and empowerment and optimization of the whole.

  • Feature Driven Development: Unlike other approach, this method focuses on the separate accomplishment of each feature.

Conclusion:

Agile Testing methodologies ensure the perfect alignment between the development process and testing process, thus optimizing the overall project outcome. Whichever tools we choose and whatever methodology we follow, Agile testing acts as a catalyst which takes the team to a whole new level.

1 comment:

  1. Hello Tom,
    The Article on Quality assurance through agile testing is nice, gives detailed information about it. Thanks for Sharing the information about Agile Testing For More information check the detail on the Agile testing here Software Testing Services


    ReplyDelete