Agile Software Testing Flashcards
What is agile testing?
Software testing practice that follows agile dev principles
Involves all members of the project team, with special expertise contributed by testers
Testing is not a separate phase but intertwined with every other phase
What are the agile testing principles?
Testing moves the project forward - need continuous testing to ensure continuous progress
Everyone Tests - even the customer performs user acceptance testing
Shortening Feedback Loops - continuous feedback helps the response time of fixing things and lowers costs
Keep the Code Clean - Defects are fixed since they are found in the same iteration
Lightweight Documentation
Leveraging one test artifact for manual and automated tests - test script for manual testing can be used as input for automated tests
“Done Done”, not just done - feature is done after development AND testing
Test-last vs Test-driven - Test cases are written along with the requirements and thus development is driven but testing.
What is Test-Driven Development (TTD) ?
Based on coding guided by tests
What is Acceptance Test-Driven Development (ATDD) ?
Based on communication between customers, developers, and testers and is driven by pre-defined acceptance criteria and acceptance test cases
What are some things to consider when Agile Testing Planning?
- Test Scope
- Test Environment
- Identifying Dependencies
- Setting priorities
What is sprint zero?
Tester needs to collaborate with the team on a series of activities: scope, dividing user stories in sprints, creating the system architecture, planning and acquiring tools, initial test strategy, what will be the test metrics, and more
What are the two Agile Testing Practices? Explain each
1) Pairing: Two team members work together at the same keyboard and one of them tests while the other reviews or analyzes the testing. The two members can be a tester and developer or tester and business analyst or two testers
2) Incremental Test Design: Test cases are built from user stories, starting with simple tests and moving to more complex tests
How can test progress be tracked?
Scrum Boards
Burndown Charts
Automated Test Results
What are the three agile testing activities in scrum? Explain each
In Sprint Planning: testers choose what is picked from the product backlog and how many hours for testing of each user story. Tester must understand the sprint goals and is involved in the prioritizing process. Testers also apart of the daily standup meetings too
In Daily Work: Tester is responsible for automation testing by making automation scripts. They schedule the automation testing and review and report on the findings to the stakeholders. At the end of the sprint they perform user acceptance testing to confirm completeness
In Review & Retrospective: Tester finds what went right and what went wrong, lessons learned and best practices, encouraged to write user stories that support testing and bring value to the customer
What are some challenges associated with agile testing?
- Team may not value the testers
- Testers may not value the team
- Testers don’t have a clear role on the team
- Testing is squeezed in as deadline is approached
- Devs and Testers are in different operational silos
- Team may not have the skills or domain expertise to develop/test effectively
What are some challenges associated with agile testing?
- Team may not value the testers
- Testers may not value the team
- Testers don’t have a clear role on the team
- Testing is squeezed in as deadline is approached
- Devs and Testers are in different operational silos
- Team may not have the skills or domain expertise to develop/test effectively
Why should we automate tests?
- Provides safety net
- Supports rapid iterations
- Provides rapid feedback
- Focuses effort on what is valuable
- Frees people to do their best work
What are some types of automated tests?
UI Tests
Functional Tests
Unit Test
What are the metrics that are used in agile testing?
- Ratio of Successful Sprints (# success / total #) * 100
- Velocity
- Focus Factor (Velocity/Teams Work Capacity) / 100
- Estimation Accuracy (Estimated Effort/Actual Effort) / 100
- Sprint Burndown
- Defect Count
- Severity of Defects
What is contained within the definition of done?
- Detailed testable acceptance criteria
- Criteria to ensure consistency of the user story with the others in the iteration
- Specific criteria related to the product
- Functional behaviour aspects
- non-functional characteristics
- Interfaces
- Test Data Requirements
- Test Coverage
- Refactoring
- Review and approval requirements