What is Agile Development?
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle (Wikipedia).
Before the Agile methodology, methods of software development tended to be slow, bureaucratic and inconsistent. This created the need for a more adaptive method of software development. A large number of IT project failures lead toward a new way of thinking and delivering the project: IT teams around the world adapting the new ideas and getting them to work and deliver the success to their respective clients.
Agile methodologies encourage teamwork, self-organization, and accountability. Most agile development teams comprise 5-9 team members and a single customer representative. These teams normally work in a single open office to promote teamwork and cooperation. The following are few agile methods currently being used in the IT industry.
- Scrum
- Kanban
- Agile Modeling
- Agile Unified Process (AUP)
- Agile Data Method
- DSDM
- Essential Unified Process (EssUP)
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Getting Real
- Open Unified Process (OpenUP)
- Lean Software Developmen
In Agile there are two type type of test strategies
- Out of Cycle
- In Cycle
Out of Cycle
In this strategy, development is one sprint ahead of QA. For example development completed sprint/iteration1 and delivers to QA for testing and starts working on iteration2.
In Cycle
In this strategy , both development and QA are working in same iteration/sprints. Development is completing their tasks and QA is doing testing on the same iteration
QA Activities in Agile
The concept of multitasking and teamwork is very strong in Scrum, but there is not such a thing as ‘specialist in everything’ as people are always better in one area. Even if they know many other areas, they will never have time to do everything. Therefore, there are Developers and there are Testers.
In Scrum there is no separate phase of testing. Rather it is continuous development and testing. In Scrum, nobody is allowed to sit and wait for a delivery. Testers need to be an active member from the sprint’s start and everyone is expected to contribute.
The following are a few suggestions to a be good, proactive tester:
- Find what requirements mean and discuss the understanding with the development team
- Start to collect all information and learn. Capture the domain and analyze all the user stories
- Conduct sessions when you feel there is any confusion. You should have clarity of the business and all user stories
- Think like a QA, but behave and work like a Scrum Team member. Your focus should always be on the quality of the product.
- You should have the skills to know how to build a release and how to deploy the release.
- Don’t consume much time on formal documentation like a Formal Test Plan or QA Plan.
- Just prepare a simple Test Plan if all activities are planned in your project.
- While developing test cases, always focus on business processes. Your test case must cover “Acceptance Criteria” of every user story.
- Write Test Cases as fast you can, do not waste time on long elaborations / clarifications.
- Reuse old Test Cases if possible, this can be part of a regression test
- If daily (or personal) build is possible, start testing and probe the developed functions. If Dev. resource is not available to provide you build/release, do not wait. Build the release and start testing.
- Make sure that for every task to be executed there is also Test Case to be written and executed.
- Test coverage is important, so create a model
- Remember that the sprint has an end time, so make all efforts to fulfill the time line.
Requirements Review | Participate in the planning meeting. |
Analyze and clarify the requirements which are mentioned in user stories selected for the current sprint. | |
Review the user stories | |
Define in scope points | |
Define the out of scope points | |
Identify Product risk /Issue | |
Initialize the test planning ( identify test types, test environment details, Automation feasibility) | |
Review Sprint Back log and all supporting documents | |
Add estimates for each divided tasks. Then add it to the final estimation of a user story. | |
Create Test Plan if required (Test levels, types, strategy ,entry exit criteria). Test plan is not necessary but it depends on your project nature if you want to create | |
Finalize the In Scope , out of Scope items | |
Create the test environment requirements and setup your test environment. Identify all test date and every thing you need in up coming phases | |
Divide the tasks for each user story. For example: Test Case Preparation Test Case Execution Regression | |
Define risks and mitigation plan | |
Define automation feasibility | |
Test Designing | Create Test Design document |
Create Requirement Tractability Document some ALM have this feature in agile, so use those tools | |
Identify test conditions | |
Create detailed test cases. If you don't have enough time you can create abstract level test cases. | |
Do the peer review | |
Prioritize and Categorize you test cases into Smoke Test, Sanity Test, Integration Test, System Test, Shipment Assurance Test | |
Get review with team and approval on your test cases | |
Test Execution | Install received builds on your test environment |
Create test execution plan, your main reference is your test plan. | |
Start execution of your test cases accordingly to the priority and categorization | |
Create and update your defect logs | |
Update your execution logs | |
Update the tractability matrices | |
Create quality metrics to measure the quality of release's | |
Manage your execution plan | |
Test Closure | Evaluate execution results |
Evaluate exit criteria you defined in your test plan | |
Evaluate Product risk /Issue | |
Create quality metrics to measure the quality of release | |
Prepare Test closure report | |
Review your deliverables | |
Create sign - of certificate |
Post a Comment