Software Testing Part-2 -Agile Methodology.

Gvnswetha
8 min readDec 2, 2019

--

In the previous article we have seen SDLC models and few basic concepts of Manual testing.

In this article let’s understand what changes did Agile methodology do to SDLC.

*All the previous models are called the classical models.

What is the reason behind introducing Agile Methodology?

Did Agile Methodology suffice the need?

*Agile Methodology is a rapid chain of development and deployment.

In the past, software development used to happen so long that by the time projects were ready to be delivered, the business had moved ahead and the requirements had changed. Thus a project was not able to meet the business needs even if it was able to meet its defined objectives.

Hence different software engineering techniques got together and the end result was what they called the “agile manifesto’ which we will be discussing in detail in this article.

The existing waterfall techniques had no provision for feedback until the final product was ready to be delivered. This meant that there was no scope for correction and the customer had no view on the progress until the whole product was ready.

To avoid this and to make a difference in the existing SDLC models, this model is introduced.

Agile methodology promotes continues iterations of development and testing throughout the SDLC. Both development and testing activities are concurrent unlike the Waterfall model.

That is why agile is also about being adaptive and continuous improvement, as much as it is about constant feedback and speed of delivery.

In this model the entire release process is divided into multiple parts.
Example:

  1. If a customer is having 10 requirements and has given 2 months of time.
  2. In the given time frame we will divide timelines into multiple blocks or pieces named as iterations.
  3. Later we will pickup first few requirements and perform tasks like requirement analysis, design,development testing etc and deliver that part of the software to the customer, so that customer will start using them.
  4. Next, we will start the 2nd iteration and will pick and work on the requirements and deliver it, customer will start using those.
  5. The same is done till the end of all the iterations.
  6. At the last iteration all the iterations are integrated and the final software is delivered.
    This is at high level Agile Model.
  7. Even though customer changes the requirements we can accommodate them at any time.
  8. If we are working on the 2nd iteration and customer want to add or change some requirements in the 1st iteration we can make the changes as per customer expectation in the 2nd iteration.
  9. All the phases are included in every iteration.
    Note: Whatever part of software is completed we can deliver it to the customer and they will start using it and feedback will be shared and we can make the changes accordingly.
    Example 1:

*Updates on applications in our mobiles.
*As per the market requirements, implementation is done and we are notified this is because of Agile Model.

This model emphasizes on four core values:

a)Individual and team interactions over processes and tools.

b)Working software over comprehensive documentation.

c)Customer collaboration over contract negotiation.

d)Responding to change over following a plan.

What does this model do?

Agile software development allows the team to work together more efficiently and effectively in developing complex projects. It consists of practices that exercise iterative and incremental techniques which are easily adopted and display great results.

Agile methods or Agile processes generally promote a disciplined project management process that encourages:

1)Frequent inspection and adaptation.

2)A leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.

Terms used in Agile Methodology:

EPIC: This is a larger requirement.

STORY:This is the smaller requirement.

*Requirement is the functionality of the application.

Advantages of Agile:
1)Persistent software delivery
2)Inspect and adapt
3)Design is important
4)Increased stakeholder satisfaction
5)Welcome to change at any stage
6)Daily interaction

How to implement agile?
List of few frameworks or philosophies:
SCRUM
KANBAN
CRYSTAL
LEAN
etc.,
The most popular one used by people is Scrum.

1)Scrum:

*This is an iterative philosophy meaning, we iterate over changes and over the deployment in software development one at a time.

*Scrum is iteration of plan then build then test and then review.We will constantly be iterating over these aspects.

*Also, scrum is a software product development strategy that organizes software developers as a team to reach a common goal like creating a ready for market product. It is a widely used subset of Agile software development.

How Scrum Works?

As a user we need to login and add a product to the cart and place the order.- This is an EPIC.

In this we have 3 STORIES login,add product to cart,purchase.

We do not have huge documentation like previous models.

Scrum implementation team has:

  1. Product manager/owner :He/she will receive the requirements(epics/stories)from the customer/stakeholders and prepares the Product Backlog (which has the epics and stories captured from customers).He/She holds the responsibility to make sure that the application is deployed when committed at the same time the application is built exactly as the way it has to be build.
    *He/she need not be a technical person or know development or the technicalities in details and can be from management team.
    *All the accountability lies in him.

Note: The team with 5–10 people(Product owner/product manager/business analyst,developer,tester,scrum master)are assigned to work on a project.

2.Scrum master manages the entire process, that is she/he is responsible for checking the status of the process and conduction meetings and addressing the challenges that are faced by the team.

  • Also, updated the: Progress of the development,time management,communication with the management.He/she conducts the meeting on daily basis for 15 minutes called as Stand up Meeting/Scrum Meeting.
  • In this meeting every team member should update the following details:

a)What is achieved the previous day?(If not achieved anything then reasons and causes or challenges)

b)What is the plan for the Present day?

c)What is the plan for the Next day?

Scrum master drives the process.

3. Once the team is formed planning is done on:

a)Release planning.

b)Sprint plan/Iteration plan

Example 2:

a) Consider a project with time duration of 6 months and in project backlog we have 30 stories and there are 10 people(team).
b)Also, start date and end date of project are mentioned.
c)Entire release is divided into small parts each part is called sprint or iteration(a specific set of tasks that has to be completed in specific priority)
d)Each sprint will have a duration of 2 to 3 weeks.
e)For the 1st sprint we will take few or (5)stories based on customer priority,time,complexity,size of story and size of team.
f)Committed stories are called sprint backlog(stories committed by testers and developer to complete within the sprint)
g)The stories committed are implemented,tested and the product is given to the customer, based on customer feedback the changes are done or the next stories are processed.
h)Customer changes and bugs not fixed in 1 st iteration can be fixed in 2nd iteration and the process continues.
i)Intraspective Analysis: After completion of a sprint the discussion is made on challenges faced in that sprint that is called intraspective analysis.
j)The same is done till the end of the iterations.
Sprint Backlog: In a sprint if there are 3 stories and if 2 stories are implemented the rest are listed for future iterations that is sprint backlog.

Sprint Review: At the end of the sprint backlog that we are working on,(2 weeks or so as per the company)there will have a sprint review in which a demo is given to the customer or some kind of verification is done to make sure that the sprint is completed and we can move to the next sprint or new user story to work on.

2)Kanban:

*Unlike Scrum, Kanban is not time-based. Rather, it is based solely on priority.

  • Kanban is a continues process in which we have list of tasks to be done.
  • This process is nothing but a Board, which is called “Kanban Board”,which plays a vital role in displaying the task workflow.
  • On this board we have Build(TO DO), Test(DOING) and ship(DONE)queues.
  • Under build we have 2 services(green and red)to be built once the 1st service(green) is build it will move to the test queue and the service 1 will be occupied by service 2(gray).
  • Meanwhile if the service 1 in the test queue is built it will move to the ship queue.
  • And the same continues till all the services are processed.
  • The idea is,what ever tasks are achieved it will move to the next queue and place which is empty will be replaced by the other service.

*When a developer is ready for the next task, he/she pulls it from the to-do list. Since there are fewer planning meetings, this approach means the team needs to be extremely close.

*It helps to optimize the flow of task between different teams. It is a method for defining, managing and improving services for delivering knowledge work.

*In this method, work items are printed visually. It allows team members to see the state of every piece of work at every development stage. Moreover, a team member gets overview who’s doing what and can identify and eliminate problem areas in the process.

*This methodology allows re prioritizing work as per the need of stakeholders. As work moves from one state to another, some extra work also added until the flow is steady. The team collaborates with each other to improve the flow of work throughout the project.

*Kanban process is never restricted to set process and defined sprint backlog. So, it offers flexibility for developers.

  • Kanban process visualizes the workflow which is easy to understand.
  • Encourage acts of leadership at all levels
  • It helps to measure and improve Collaboration
  • Respect the current process, roles & responsibilities
  • Helps team to make process easy and explicit

That is all about Agile Methodology. In the next article we will see different levels of software testing & Testing methodologies.

--

--