Are software testers needed in the early design stage of the products? If they are, what should they do? I often hear such questions asked by my friends. As far as I am concerned, many medium and small-sized companies in our country do not attach importance to the testing job in the early stage or even the whole process of developing products. Example one: some companies hold the view that the investment in testing during the early stage is high and meaningless, so they will start design test cases after the first period of development ends. Example two: some hold that testers do not have to participate in the requirements mapping work, they just need to accept. As a result, the marketing department and the development department will discuss about the demands directly, and the test manager will just refer to the demand design documents. Example three: the test manager does participate in the requirements design at the beginning, and work out the test plan. But the quality of the products is what the engineer deploying on the scene determines. At the user’s place, something unsatisfactory and failed will be found. To save time, the testers have to adjust the software at the user’s place, with no regard for whether the product needs an overall testing.
Not to say whether these methods are even more costing, it is easier for us to get the answer of “what should testers do during the early stage”: it will be nice if the test plan is made during the early stage, and it is okay if it is not made. But the testing should be done. It is also uncertain that what kind of product will be handed to the user. But there is only one aim: the product should be able to be used by the users, no matter for a mature or a newly started company.
For Microsoft, there are three product life cycles: Product Definition, Product Development and Product Serving. To make the best use of the resources, the testers mainly participate in the Product Development and Product Serving work. Their major duties are: to determine the priority levels of all the products’ functions; to review the definition of the product using conditions; to review the user experience documents.
Of course, every company should have its own development mode that fits itself, but there is no difference between their goals when deciding whether to let the testers do these jobs: firstly, the testers should know what the customers demand; secondly, the tester should tell what demands are reasonable and what are not according to his own experience and from the angle of testing and preserving, then gives feedbacks to the project manager or the marketing department. Lastly, the tester should make test plans according to the demands and the software framework documents.
Each company and each team of the company does not have to take the same pattern. We should act according to actual circumstances, but the focus should not vary, neither should the goal, just like some companies in our country apply the CMM blindly, which is just imitation, but with no soul.