1. What is Agile

The Agile method is a way of focusing on the continuous iteration of development and testing throughout the process of a software development project. Both the software development and testing activities of the Agile model are completely different from the Waterfall model.

The growth of Agile emphasized 4 following core values:

  1. The interaction of individual and team through process and tool.
  2. The software task through full document.
  3. Customer cooperation through contract negotiation.
  4. Response to change in order to follow the task.

Agile umbrella

2. Agile and Waterfall model

Agile and Waterfall models are two completely different methods in the software development process. Although they differ in approach, both methods are useful at some point, depending on the requirements and characteristics of the project.

3. Agile testing method.

Agile Testing Method

Agile has testing methods as below:

3.1 Scrum

Scrum is an agile development management and development process that focuses specifically on managing tasks in a team development environment. Basically, Scrum is derived from activities that occur in a cycle. Scrum believes in empowering the development team and working in small teams (from 7-9 people). It consists of three roles with responsibilities explained in the following figure:

Scrum

  • Scrum Master

The Master is responsible for setting up the team, setting up meetings during the development stages, and removing the obstacles that affect development.

  • Product owner

The product owner creates the product backlog, sets the priority of the backlog, and is responsible for releasing features at each stage.

  • Scrum Team

The team will manage and organize their tasks to complete development stages or cycles.

This is a repository of tracked requests with details of requests not being completed in each release. It must be maintained and prioritized by the Product Owner, and it will be distributed to the scrum team. The team can also add or modify or delete new requests.

Scrum Team

Scrum Practices

Has described specifically as below:

Scrum Practices

Process flow of Scrum Methodologies

Process flow of Scrum Testing Methodologies as following:

  • Each iteration of a scrum is known as a sprint.
  • The product backlog is a list of detailed descriptions for completing the final product
  • During each Sprint, the top items of the Product backlog are selected and converted to the Sprint backlog
  • The team perform on the sprint backlog that has been described
  • Group inspection for daily tasks.
  • At the end of the sprint, the team will release product features

3.2. eXtreme Programming (XP)

The eXtreme Programming (XP) programming technique is extremely useful when there are constantly changing requests from customers or when they are not sure about the system’s function. With the policy of “releasing” products regularly in short development cycles, it will improve the functionality of the system as well as make important points where any request from customers can be easily enforced.

Extreme Programming XP

Business requirements are collected according to stories. In this method, releases will be based on shorter life cycles called iterations with 14 days each. Each iteration includes stages such as programming, unit testing, and system testing, where small functions will be built into the application.

eXtreme programming phases:

There are 6 phases in the Agile XP model, and the phases could be explained below

1. Planning

Determine the related partners and sponsors.

Infrastructure requirement.

Information and collect related to security.

Agreement on conditions and consensus on service level

2. Analysis

Imaging the user’s story going to happen.

Give priority to the user’s story.

Estimate the effect on the user’s story.

Determine the repetition interval (time).

Planning personnel on the development team and QA

3. Design 

Divide the task.

Prepare the testing case for each task.

The regression automation framework.

4. Performance

Developing

Testing

Executing manually testing case.

Evaluate the repetition interval.

Ending.

5. Packing

Release the product on a small scale.

Regression testing

Trial and evaluation

Develop a new story based on the requirement.

Improve the process based on the evaluation comments of the end of the cycle.

6. Ending

Release testing program.

Training.

Release product.

Ensuring the SLA.

Considering the SOA campaign.

Supporting the product.

3.3. Crystal Methodologies

Crystal Methodology is based on 3 following concepts:

Chartering

The various activities associated with this phase create a development team, perform feasibility analysis, formulate initialization plans and refine development methods.

Cyclic delivery

The prime development phase consists of 2 or more release circle, including:

  • The team will update and revise the release plan
  • Deploy a set of requirements through one or more integration tests
  • Integrated products are delivered to real users
  • Review of the approved project plan and development methodology

Wrap Up

Activities carried out during this phase will be deployed into the user environment, post-deployment assessments implemented.

3.4. Dynamic Software Development Method (DSDM) 

DSDM is a fast application development method (RAD) approach to software development and provides a quick project release platform. An important aspect of DSDM is that users are required to actively participate, and the development team is empowered to make decisions within the project. Regular product releases became the focus of DSDM operations. The techniques used in DSDM include:

  • Boxing time
  • MoSCoW rule
  • Create the template

DSDM Project consists of 7 phases:

  1. Before starting the project
  2. Feasibility study
  3. Research business ability
  4. Repeat the function model
  5. Design and construction
  6. Implementation
  7. Project completed

3.5. Feature Driven Development (FDD)

This method focuses on “design and builds” features. Unlike other Agile methods, FDD describes very short and specific work phases that need to be performed for each feature. FDD develops products by following the following goals.

  1. Domain object model
  2. Developed by feature
  3. Own component / class
  4. Feature group
  5. Check
  6. Configuration manager
  7. General construction
  8. Display progress and results

3.6. Lean Software Development

The lean software development method is based on the principle of “Lean manufacturing” (right time, right product). This method aims to speed up software development and reduce costs. Lean development can be summarized in the following seven steps:

  1. Remove excess
  2. Promote learning
  3. Delayed commitment (decided as late as possible)
  4. Early release
  5. Empower the group
  6. Integrity building
  7. Optimize the whole