0% found this document useful (0 votes)
23 views18 pages

(12.0) Agile Testing

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views18 pages

(12.0) Agile Testing

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Agile Testing

INFO-6067
Defining Agile Programming
• From Webopedia.com:
• It is an alternative to traditional project management where emphasis is
placed on empowering people to collaborate and make team decisions in
addition to continuous planning, continuous testing and continuous
integration.
• From Wikipedia.com:
• It describes a set of principles for software development under which
requirements and solutions evolve through the collaborative effort of self-
organizing cross-functional teams. It advocates adaptive planning,
evolutionary development, early delivery, and continuous improvement,
and it encourages rapid and flexible response to change.
Traditional vs Agile Testing
• In traditional approaches to testing, its clear that the bulk of testing
happens at the end of development right before release. And what
tends to happen is that the testing time gets reduced substantially
because coding takes longer than expected.
• Agile is iterative and incremental. This means a tester will test each
increment of coding as soon as it is finished. An iteration could be as
short as one week or as long as a month. The team builds and tests a
small bit of code to make sure it functions correctly and then moves
on to the next piece that needs to be created. Ideally, the
programmer/programmers will never get ahead of the testers.
• Another difference is the whole team approach to development. With
agile, its not only the testers or a quality assurance team who are
responsible for quality.
• The focus is on producing high quality software in a time frame that brings
the highest possible value to a business.
• Everyone on an agile team is responsible for testing. All tests from unit
testing and on up will drive the coding, help the team learn what the
application is supposed to do, and deciding if the task is completed.
• It involves constant collaboration. Testers meet with programmers, the
customer team, and other team experts to discuss everything from
infrastructure, and designing for testability.
Agile Video

• What is Agile
What is an Agile Tester
- Someone who works well with business and technical stakeholders.
- Someone who is unscathed by change and is able to roll with it.
- Someone who likes to drive development.
- Someone who understands the idea of documenting requirements
through the use of tests.
- Someone who can emulate customers to better understand their
needs.
- Someone who is willing to jump in with ideas on how to make the
design better and more efficient.
Ten Principles for Agile Testers
• Deliver value
• Face to face communications
• Continuous feedback
• Continuous improvement
• Courage
• Simplicity
• Respond to change
• Self organize
• Focus on people
• Have fun
Organizations influence agile testing
• Agile teams tend to work best in organizations that allow independent thinking.
• Organizational culture is often overlooked when attempting to implement agile
processes.
• You also have to consider the organizations philosophy surrounding quality. You
have to ask the following questions:
• Is it okay with poor quality?
• Is it concerned with getting the product to the market as quickly as possible?
• Does it take the customer’s quality requirements into account?
• Companies that value quality will have an easier time adopting agile processes.
How to Build a Successful Agile Testing Team

• A larger community of testers is crucial for learning and trying out


new ideas.
• Keep the whole team together to promote communication.
• A good attitude goes a long way.
• Teams need to be self starters. They should not have to wait for
direction from above.
• Members need to find ways they can contribute using agile principles
to improve their skills.
Agile Testing Quadrants

Business Facing
Q2 Q3
Functional Tests Exploratory Testing
Examples Scenarios
Story Tests Usability Testing
Support the Team

Critique Product
Prototypes User Acceptance Testing
Simulations
Q1 Q4
Performance and Load Testing
Unit Tests Security Testing
Component Tests All the “ility” Testing

Technology Facing
Quadrant 1
• Represents test-driven development, a core agile development
practice.
• Unit tests verify the functionality of a small subset of the system.
• Component tests verify the behaviour of a larger part of the system.
• Usually automated.
• Programmers can confidently write code to deliver a story’s features
without worrying about making unintended changes to the system.
• “Video break”
• Test Driven Development
Quadrant 2
• Supports the work of the development team but at a higher level.
• These tests are derived from examples provided by the customer
team.
• They are called business facing tests each one verifying a business
satisfaction condition.
• Oriented toward illustrating and confirming desired system
behaviour.
• Tests can be both manual and automated in this quadrant.
Quadrant 3
• This quadrant focuses on helping design the desired product.
• It classifies the business facing tests that exercise the working software.
• Efforts are made to emulate the way a real user would work the
application.
• Users and customers will often perform these types of user acceptance
testing.
• Exploratory testing is central guided by a strategy that takes into a account
how the end user would work the system.
• This is a manual test that only humans can do.
Quadrant 4
• Tests here are intended to critique product characteristics such as
performance, robustness, and security.
• Generally requires the use of specialized automation tools to create
test data, set up test scenarios for manual testing, drive security tests
and make sense of the results.
• Automation tends to be mandatory for such efforts as load and
performance testing.
• “Video break”
• Automated Testing
Technology Facing Tests
• Support programming by letting the team produce the highest
quality code possible.
• Benefits include going faster and doing more. Speed and quantity
however should never be the ultimate goal.
• Such tests support the team and provide great value to testers by
enhancing the internal quality and testability of the system.
Business Facing Tests
• Examples and business facing tests as opposed to traditional
requirements documents, tell the team what code to write.
• Working on thin slices of functionality, in short iterations gives users
an opportunity to see and use the application and adjust
requirements.
• Helps customers express satisfaction conditions and create examples
of behavior for each story.
• Use these tests and examples to mitigate risks of missing
functionality or losing sight of the big picture.
Critiquing the product
• Demonstrate software to stakeholders in hopes of getting early feedback
to help direct the building of the right stuff.
• Use scenarios and workflows to test the whole system, end to end.
• Always be aware of how the system is being used.
• Automated tools should be used to perform the tedious and repetitive
tasks so you have more time for manual exploratory testing.
• The developer team should evaluate whether it has or can acquire the
expertise to do the tests or if it needs to bring in external resources.
• Performance, scalability, stress, and load testing should be done from the
beginning of the project.
Test Checklist
• The whole team should choose or create tests to solve each testing problem.
• Common business tools (spreadsheets and custom test scripts) may be needed
to accomplish complex tests.
• Invest time in building the right test architecture that works for all team
members.
• Find ways to keep the customers involved in all types of testing even if in a
remote location.
• Report tests results in a way that keeps all stakeholders informed about the
iteration and project progress.
• Use lessons learned during testing to critique the product in order to drive
development in subsequent iterations.

You might also like