What is agile?
■   Agile is a process that allows a team to
    more efficiently manage a project by
    breaking it down into several stages, each
    of which allows for consistent
    collaboration with stakeholders to
    promote steady improvements at every
    stage.
■   In software development, agile practices
    involve discovering requirements and
    developing solutions through the
    collaborative effort of self-organizing and
    cross-functional teams and their
    customer/end user.
Some of the real life examples of
agile model:
■   Restaurant orders:
     – Preparation of some of the food before
        opening the shop (sprint planning)
     – continuous delivery of orders (adhoc
        stories)
     – number of successful orders (velocity)
■   cricket team:
     – Run rate (velocity)
     – team (scrum team self sufficient)
     – over (sprint length)
     – captain/ coach (scrum master)
What are the 12 principles of agile?
■   Customer satisfaction
■   Early and continuous delivery
■   Embrace change
■   Frequent delivery
■   Collaboration of businesses and developers
■   Motivated individuals
■   Face-to-face conversation
■   Functional products
■   Technical excellence
■   Simplicity
■   Self-organized teams
■   Regulation, reflection and adjustment
Agile methodology
■   Agile methodology is a type of project management process, mainly used for
    software development, where demands and solutions evolve through the
    collaborative effort of self-organizing and cross-functional teams and their
    customers.
■   Agile software development refers to a group of software development
    methodologies based on iterative development, where requirements and solutions
    evolve through collaboration between self-organizing cross-functional teams. Agile
    methods or Agile processes generally promote a disciplined project management
    process that encourages frequent inspection and adaptation, 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.
Examples of Agile Methodology
■   Agile Scrum Methodology.
■   Lean Software Development.
■   Kanban.
■   Extreme Programming (XP)
■   Crystal.
■   Dynamic Systems Development Method (DSDM)
■   Feature Driven Development (FDD)
scrum
■   The software development term scrum was first used in a 1986 paper titled "The
    New Product Development Game". The term is borrowed from rugby, where
    a scrum is a formation of players. The term scrum was chosen by the paper's
    authors because it emphasizes teamwork.
■   Scrum is a subset of Agile. It is a lightweight process framework for agile
    development, and the most widely-used one.
■   Scrum is an agile project management methodology or framework used primarily
    for software development projects with the goal of delivering
    new software capability every 2-4 weeks.
■   Scrum is an agile framework for developing, delivering, and sustaining complex
    products, with an initial emphasis on software development, although it has been
    used in other fields including research, sales, marketing and advanced
    technologies.
Agile scrum methodology
■   Agile scrum methodology is a project management system that relies on
    incremental development. Each iteration consists of two- to four-week sprints,
    where each sprint's goal is to build the most important features first and come out
    with a potentially deliverable product. More features are built into the product in
    subsequent sprints and are adjusted based on stakeholder and customer feedback
    between sprints.
■   Whereas other project management methods emphasize building an entire
    product in one iteration from start to finish, agile scrum methodology focuses on
    delivering several iterations of a product to provide stakeholders with the highest
    business value in the least amount of time.
■   Agile scrum methodology has several benefits. First, it encourages products to be
    built faster, since each set of goals must be completed within each sprint's time
    frame. It also requires frequent planning and goal setting, which helps the scrum
    team focus on the current sprint's objectives and increase productivity.
Lifecycle of Scrum:
■   Sprint:
    A Sprint is a time-box of one month or less. A new Sprint
    starts immediately after the completion of the previous
    Sprint.
■   Release:
    When the product is completed then it goes to the Release
    stage.
■   Sprint Review:
    If the product still have some non-achievable features then it
    will be checked in this stage and then the product is passed to
    the Sprint Retrospective stage.
■   Sprint Retrospective:
    In this stage quality or status of the product is checked.
■   Product Backlog:
    According to the prioritize features the product is organized.
■   Sprint Backlog:
    Sprint Backlog is divided into two parts Product assigned
    features to sprint and Sprint planning meeting.
How Scrum Works
■   In a rugby scrum, all the players literally put their heads together. When it comes to software
    development, a scrum can be characterized by developers putting their heads together to address
    complex problems.
■   Scrum software development starts with a wish list of features — a.k.a. a product backlog. The team
    meets to discuss:
     – The backlog.
     – What still needs to be completed.
     – How long it will take.
■   Scrum relies on an agile software development concept called sprints:
     – Sprints are periods of time when software development is actually done.
     – A sprint usually lasts from one week to one month to complete an item from the backlog.
     – The goal of each sprint is to create a saleable product.
     – Each sprint ends with a sprint review.
     – Then the team chooses another piece of backlog to develop — which starts a new sprint.
     – Sprints continue until the project deadline or the project budget is spent.
■   In daily scrums, teams meet to discuss their progress since the previous meeting and make plans
    for that day.
      – The meetings should be brief — no longer than 15 minutes.
      – Each team member needs to be present and prepared.
■   The ScrumMaster keeps the team focused on the goal.
How Scrum Works
Introduction to Scrum Terms
■   An introduction to Scrum would not be complete without knowing the Scrum
    terms you'll be using. This section in the Scrum overview will discuss
    common concepts in Scrum.
■   Scrum team: A typical scrum team has between five and nine people, but
    Scrum projects can easily scale into the hundreds. However, Scrum can easily
    be used by one-person teams and often is. This team does not include any of
    the traditional software engineering roles such as programmer, designer,
    tester or architect. Everyone on the project works together to complete the
    set of work they have collectively committed to complete within a sprint.
    Scrum teams develop a deep form of camaraderie and a feeling that “we’re
    all in this together.”
Who is in the Scrum?/Scrum Terms
■   Product owner: The product owner is the project’s key stakeholder and
    represents users, customers and others in the process. The product owner is
    often someone from product management or marketing, a key stakeholder
    or a key user.
■   Scrum Master: The Scrum Master is responsible for making sure the team is
    as productive as possible. The Scrum Master does this by helping the team
    use the Scrum process, by removing impediments to progress, by protecting
    the team from outside, and so on.
■   Product backlog: The product backlog is a prioritized features list containing
    every desired feature or change to the product. Note: The term “backlog” can
    get confusing because it’s used for two different things. To clarify, the
    product backlog is a list of desired features for the product. The sprint
    backlog is a list of tasks to be completed in a sprint.
■   Sprint planning meeting: At the start of each sprint, a sprint planning meeting is held,
    during which the product owner presents the top items on the product backlog to the
    team. The Scrum team selects the work they can complete during the coming sprint. That
    work is then moved from the product backlog to a sprint backlog, which is the list of tasks
    needed to complete the product backlog items the team has committed to complete in the
    sprint.
■   Daily Scrum: Each day during the sprint, a brief meeting called the daily scrum is
    conducted. This meeting helps set the context for each day’s work and helps the team stay
    on track. All team members are required to attend the daily scrum.
■   Sprint review meeting: At the end of each sprint, the team demonstrates the completed
    functionality at a sprint review meeting, during which, the team shows what they
    accomplished during the sprint. Typically, this takes the form of a demonstration of the
    new features, but in an informal way; for example, PowerPoint slides are not allowed. The
    meeting must not become a task in itself nor a distraction from the process.
■   Sprint retrospective: Also at the end of each sprint, the team conducts a sprint
    retrospective, which is a meeting during which the team (including its ScrumMaster and
    product owner) reflect on how well Scrum is working for them and what changes they may
    wish to make for it to work even better.
■   Each of the Scrum terms has its own page within the Scrum section, so be sure to check
    out all the pages in the navigation.
     A Visual Introduction to Scrum
This graphic is an introduction to the
essential elements of using Scrum for agile
software development. On the left, we see
the product backlog, which has been
prioritized by the product owner and
contains everything desired in the product
that’s known at the time. The two to four
week sprints are shown by the larger green
circle.
■   At the start of each sprint, the team selects some amount of work from the
    product backlog and commits to completing that work during the sprint. Part
    of figuring out how much they can commit to is creating the sprint backlog,
    which is the list of tasks (and an estimate of how long each will take) needed
    to deliver the selected set of product backlog items to be completed in the
    sprint.
■   At the end of each sprint, the team produces a potentially shippable product
    increment — i.e. working, high-quality software. Each day during the sprint,
    team members meet to discuss their progress and any impediments to
    completing the work for that sprint. This is known as the daily scrum, and is
    shown as the smaller green circle above.
■   Scrum is the type of Agile framework. It is a framework within which people
    can address complex adaptive problem while productivity and creativity of
    delivering product is at highest possible values. Scrum uses Iterative
    process.
Key Features of Scrum
Methodology
■   Scrum has a short fixed schedule of
    release cycles with adjustable scope
    known as sprints to address rapidly
    changing development needs. Each
    release could have multiple sprints. Each
    Scrum Project could have multiple Release
    Cycles.
■   A repeating sequence of meetings,
    events, and milestones
■   A practice of testing and implementing
    new requirements, known as stories, to
    make sure some work is released ready
    after each sprint
Who can benefit from scrum?
■   While scrum can benefit a wide variety of businesses and projects, these are
    the most likely beneficiaries:
■   Complicated projects: Scrum methodology is ideal for projects that require
    teams to complete a backlog.
■   Companies that value results: Scrum is also beneficial to companies that
    value results over the documented progress of the process.
■   Companies that cater to customers: Scrum can help companies that
    develop products in accordance with customer preferences and
    specifications.
What are the benefits of agile scrum
methodology?
■   Here are some of the collective benefits of agile scrum methodology:
■   Flexibility and adaptability
■   Creativity and innovation
■   Lower costs
■   Quality improvement
■   Organizational synergy
■   Employee satisfaction
■   Customer satisfaction
Benefits of Scrum
■   Rugby players try to gain control of the ball in the scrum and move it downfield.
    Software developers use scrum to move their projects quickly. And the benefits
    trickle down to software developers:
■   Developers who want the freedom to make decisions thrive in scrum teams. Team
    morale tends to be high.
■   Each sprint produces a product that is ready for market even though the project is
    ongoing. The highest priority requirements are addressed first so a high-quality,
    low-risk product can be on the market.
■   The incremental process shortens the time to market by about 30 percent to 40
    percent. Because the product owner is part of the scrum team, requirements can
    be delivered as they are needed.
■   Scrum projects often realize a higher return on investment (ROI). This is attributed
    to:
     – Decreased time to market.
     – Early and regular feedback that prompts course corrections early when they
        are less costly.
     – Defects that are fewer and less costly.
     – Projects failing early and quickly when it’s less costly.
■   Reviewing each sprint before the team moves on to the next sprint spreads testing
    throughout development.
■   Project focus and goals can change with evolving business goals.
Disadvantages of Scrum
■   While a rugby scrum may get rough and bloody, software developers
    shouldn’t have to worry about that. Nonetheless, scrum is not for all
    developer teams or software development projects. There
    are disadvantages to implementing scrum projects:
■   There is a danger of scope creep if stakeholders keep adding functionality to
    the backlog. This could be encouraged by the fixed deadline.
■   Scrum works best with small teams of experienced software developers.
    They need to be able to work quickly.
■   Scrum teams do not work well when the scrum master micromanages their
    work.
■   Losing any team members can hurt the progress of the project.
Scrum Best Practices
■   Teamwork wins rugby games and helps software developers create quality
    products. To get the best quality out of scrum:
■   Define requirements just in time to keep product features as relevant as
    possible.
■   Test and incorporate product owner feedback daily.
■   Sprint reviews with stakeholders need to be regular.
■   The scrum team needs to use the sprint retrospectives to improve how they
    work.
■   Conduct face-to-face conversations to reduce miscommunications.
■   Trust the teams to do the best job possible.
■   Allow the teams to self-organize around people’s skills, work styles and
    personalities.
■   Don’t burn out the team members. Respect the balance between their
    personal and professional lives to ease stress.
Role of test engineer in scrum team
■   The tester should be actively engaged in the team's work during
    the Sprint and meetings. It is the tester's role to ensure the quality of the
    developed product and the delivery process itself
■   The development team in Scrum is responsible for developing the product
    by working closely with the Product Owner. As per the testing quadrants,
    the testers are responsible for technology-facing tests that support team &
    critique the product and business-facing tests that help the team & critiques
    the product.
■   Even though an entire Scrum team has responsibility for testing and code
    quality, someone on the team needs to be good at testing, and someone on
    the team needs to set up unit and regression test automation, run the
    end-to-end integration tests, and do manual exploratory testing on the
    whole product
    Scrum in Software Testing
■   Scrum in Software Testing is a methodology for building complex software
    applications. It provides easy solutions for executing complicated tasks.
    Scrum helps the development team to focus on all aspects of the software
    product development like quality, performance, usability and so on. It
    provides with transparency, inspection and adaptation during the software
    development to avoid complexity.
Scrum Testing
■   Scrum Testing is a testing done in scrum methodology to verify the software
    application requirements are met. It involves checking non-functional
    parameters like security, usability, performance etc. There is no active role of
    tester in the process so it is usually performed by developers with Unit Test.
    Sometimes dedicated test teams are needed depending on nature &
    complexity of project.
Role of test engineer in scrum team
■   1) Attend sprint-planning sessions
■   2) Attend daily stand-ups.
■   3) Don’t save all the testing for the end; test throughout the sprint.
■   4) Meet with developers for short hand-off demonstrations.
■   5) Attend sprint retrospectives
■   6) Document Test cases
The Role of a Tester in an Agile
Team
■   Understanding, implementing, and updating the Agile Test Strategy
■   Work with Product Owners to define Acceptance Criteria and the Definition of Done.
■   Measuring and reporting test coverage across all applicable coverage dimensions
■   Ensuring proper use of testing tools
■   Configuring, using, and managing test environments and test data
■   Writing and executing automated checks and reporting back to the team
■   Reporting defects and working with the team to resolve them
■   Coaching other team members in relevant aspects of testing
■   Ensuring the appropriate testing tasks are scheduled during release and iteration planning
■   Actively collaborating with developers and business stakeholders to clarify requirements, especially in terms of testability, consistency, and completeness
■   Participating proactively in daily standup meetings, story grooming sessions, team retrospectives, suggesting and implementing improvements
■   Within an Agile team, each team member is responsible for product quality and plays a role in performing test-related tasks.
    Agile organizations may encounter some test-related organizational risks:
■   Testers work so closely to developers that they lose the appropriate tester mindset
■   Testers become tolerant of or silent about inefficient, ineffective, or low-quality practices within the team
■   Testers cannot keep pace with the incoming changes in time-constrained iterations
What is the role of a QA tester on a
Scrum team?
What is the role of a QA tester on a
Scrum team?
■   Face – To – Face Communication:
 Face to face discussion with the team is the most efficient way to communicate ideas
to the time. A tester participates in Planning/ Release of the Sprint: The design
meetings are held every time before the sprint planning is done. The testers can
participate in this meeting and ask questions on the stories being discussed. The
tester should make a model in his mind about how the system would look and work
based on the discussions.
■   Capability to find ambiguity:
The tester would work collaboratively and productively with the product owner and the
customer to form acceptance criteria. An agile tester would be able to describe the
feature well. Before any user story is sent for development the tester and other team
members would discuss the complete user story with the team member to find out
what the customer wants.
■   Absolute Role:
The tester should have good interpersonal skills .Tester should have Technical
skills apart from that he should have good communication skills to deliver the project
to the client . This shows that the tester should have a broader range of functionality.
What is the role of a QA tester on a
Scrum team?
■   Technical Skills:
An agile tester understands the relevance of technical skills. He/She is always prepared
to contribute to the technical discussions of the team. His contribution may extend up
to code reviews, user stories grooming, requirements understanding. The Agile
Software Tester would work with the developers when they are performing unit
testing and share the perspective of testing from a tester point of view instead of
developer point.
■   Automation:
Agile testing involves automation at the time of unit testing and integration testing. For
automation There are many tools available for automation which does not require
prior training for language.
■   Exploratory Tester:
The skill of exploratory testing is a very useful and powerful method sometimes in the
agile process. An exploratory tester can utilize his skills to perform testing avoiding
risks and uncertainty in the product. The tester can get ideas from the initial design
discussions and the meetings with the team to uncover the system and explore more
in the system. Once the tester is able to find out the areas of ambiguity the tester can
work more systematically and efficiently in the product. An agile tester should share
their knowledge and information with the rest of the scrum team.
What are the various testing activity
on scrum process
■   sprint meeting : Which Item should be picked from backlogs and estimated
    time for developing the component. It should also on the prioritizing the
    work.
■   Daily scrum : In daily scrum meeting tester should get the information about
    previously done tasks and also do plan for next task to deliver the developer.
■   Daily work : Tester should perform acceptance test ,system test and on the
    unit test and integration test tester should perform Automation test on the
    Daily work of the current sprint
In Review and Retrospection
meeting
■   The tester needs to identify what went wrong and what went right in the
    current sprint
■   He needs to learn new lessons and best practices from the current sprint
■   The tester is encouraged to write new user stories that would help in testing
    and also user stories that would help the customer
■   The tester will discuss like if any user story was not covered in current sprint.
■   Any obstructions in the project will be put under consideration of Scrum
    Master.