For the development model, most Internet companies have now completed the transition from the traditional waterfall development model to the Agile development model, and this transformation is more challenging than the traditional testers, both in terms of role positioning and skill stack, so how should testers respond? The following according to my usual work of some summary experience to say that testers should be the direction of force, for your reference:
Role 1: Training staff
At the beginning of the transition, testers should be trained and guided by the weaknesses of the developer, the business skills. Due to the differences in work tasks, the developer is well aware of the responsible module business and the specific implementation details, but the peripheral modules or the business is not very clear, mainly in the configuration and use. This part is precisely the experience of the tester, this time requires the test staff to carry out as much as possible training and sharing work, so that the team as quickly as possible to make up for the shortcomings, in the development of the user story in the process of the business has a better control. The training is carried out in several steps as follows:
- Collect team feedback, identify business weaknesses, List topic
- Training and sharing for different topic phases (sprint)
- Keep training materials for future inquiries (documents, videos, etc.)
Role 2: Test planner
For test planners, I think the main function is to plan how efficiently (time, resources, quality) to advance the development of user story testing. This is really not easy to do and needs to be considered in two ways:
- Balance test and development effort
In an agile team with a disproportionate number of testers and developers (mostly developers, at least now I haven't seen a test more than a team ^_^), it's not possible for testers to match the speed of development when it comes to workloads, and there are a few steps that developers need to give some help with:
-
- Testers create test policies for user stories (test cases, environment configurations, etc.)
- Related personnel review (including testing, PO, developer responsible for user stories, and another developer who will be responsible for testing)
- Reviewers agree on test strategy
- User story developers write code to perform integration testing following test policies
- After code checkin, the developer responsible for the test executes the final test according to the test policy
- Simple functional Verification (exploratory testing) if necessary for testing personnel
The steps are relatively simple, but the operation is not easy, first of all, the tester should be a simple test theory training, including some test methods, test ideas, etc. (it is impossible to rely on the training has a great upgrade, need to accumulate in the test slowly), and then is the developer is willing to do testing work, I think this is also a big problem in the transformation, but fortunately, our team's development is very nice, some students will take the initiative to do some testing work, which is beyond my expectation. Here I would like to say that developers do some testing in fact there are many advantages, mainly embodied in the Code quality awareness, business understanding and personal skills stack upgrade. Of course, there are some small partners do not want to do the task of testing, there is no way, anyway, will do the development of testing generally become handsome ~
So the question is, does the tester always have to be responsible for creating test strategies for user stories? Of course not, when developers have a better understanding of the test, they can try to get the development to create a test strategy, the tester is responsible for the review, and when the testers do not make too many changes, the tester can be unemployed.
- Conduct pairing tests as much as possible
A pair test is a combination of two team members testing the same feature. There are two purposes for this:
- Test functionality from multiple perspectives as much as possible
- Training Guide (mainly for some test theories and skills of developers)
- The right time to conduct exploratory testing
This stage is a relatively advanced test method, mainly after the developer has a certain test methods and ideas to carry out. The time to perform exploratory testing is to organize multiple developers and testers to discover as many potential problems as possible, after each important function has been completed.
Role 3: Product Manager
The product manager here does not say that the tester should be the product manager, but rather to analyze the user's pain point from the perspective of a tester or customer, and to make a corresponding user story. This point testers have the advantage, after all, each tester is a product of senior users.
Role 4: Tool developer
In order to improve the testing efficiency, tool development is very important. A tool is not necessarily a large system, it can be a SQL script, batch file, or a simple executable file, as long as you can improve the test efficiency can be tried to do.
Role 5: Automation engineer
Automated testing is an important part of the testing process, which can save manpower, time and greatly improve the efficiency of testing. The main point here is end-to-end automated testing, as the Automation scripts for unit and integration testing are written by the appropriate developer. The general work to be done at this time is:
- Evaluate the appropriate testing framework and tools for the project to identify
- and development discussion to build a test framework
- In the iteration, add the appropriate script for the corresponding user story use case
- Regular execution
Role 6: Full stack Engineer
This is not much to say, because the distance is far ...
Finally share a sentence fat to listen to Wang Xing said the American entrepreneurial circle of a sentence of English: keep growing, fuck everything else. Just the sauce ~
The role that testers play in agile teams