Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams (Wikipedia
Agile testing is a software testing
practice that follows the principles of agile software development
. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. Specification by example
is used to capture examples of desired and undesired behavior and guide coding. (Wikipedia
Agile software development is a type of incremental model, developed based on the iterative development process. Agile does not necessarily follow the plan, it can have its own breakthroughs to create the perfect software.
Features of Agile model:
- Each project is divided into several segments for ease of use and change when customers request changes
- Small portions of the project will be tested during project implementation.
- The requirement for frequent face-to-face meetings is because the whole team must focus on developing a piece of the project at each point of time in Agile.
a. Kick Off:
- Kick Off testing software, We :
- Understand and analyze customer requirements
- The first step in software testing process is to review customer requirements that must be thoroughly analyzed and tested. In case of any incomprehensible or unreasonable, report to the analysis team. This phase helps us to answer the question: What will be tested?
- Prepare strategies and plans (test plans)
- In the Agile model, test plans are written and updated continuously in each loop including:
- The key functions of the project
- Non-functional requirements
- The approach and identification of test activities can be either manual or automated, or a combination of both
- Estimate the cost of testing and building, reasonable time division.
- Division of human resources for testing
- Preparing the environment is the foundation for software testing to include the operating systems (Win 7, Win 8, IOS, ...), browsers (Opera, IE, ...), devices (Mobile, tablet , destop, ...)
b. Deployment Features, Functions in each sprint
The process is shown below:
As shown on pictures, the same work will be done in each development included:
This stage is very important, it ensures all test situations "cover" all the testing requirements. Designing a test is not just a one-time. It will be repaired, updated, added or subtracted throughout the software testing period, at any time with any required change, or notice that it needs to be repaired or added after analysis.
Writing test cases, writing Checklist, from functional and non-functional requirements of the software consists of three cases: True, Fail and unidentified results (case incurred, not in the specification document). Testcase should cover all aspects of testing for each software requirement. Write test scripts if you use the tool to perform automation tests for interfaces, functional tests....
After designing, we run the test in a variety of ways.
- Run the test for each test case / test script
- Perform special ad-hoc testing
- Review bugs that have been fixed
- The tester should report the bugs to the developer during the implementation and track them until the bugs are fixed.
- And during the implementation, there may be some additional missing cases (if any).
Bug Report & Re-run the bug
After the test is done, report the bug to the developer to confirm and the developer will fix if it is the bug.
After fixed, the tester re-runs the bug to ensure that the bug runs correctly after fixed and does not damage other program functions.
After the Deployment stages are completed or each function is completed, the tester will test the entire development cycle, the whole system to make sure that the Deployment n is finally complete.
The tester performs a software test on the UAT. If there is a bug, it will be reported to the developer to fix and test until the software is complete. Then the software will be tested by the user.
The system is uploaded to the UAT for the user to run the program.
If the user feedback software is complete, the software will be launched.
If the user has any feedback about the bug, ask for the interface as well as adjust the software, the software testing team will receive feedback, record and make changes with the implementation of the development 1, development 2, .... basing on the customer requirements.