content:
Introduction Automation test is not a silver bomb? Is there enough time to test everything? How to help us? Create an automated test guideline automation what can I do for me? Reference information Acknowledgment about the author's evaluation
subscription:
DeveloperWorks News DeveloperWorks Subscribe (Subscribe CD and Download)
Dawn haynes
Technical commissioner, IBM Rational 2005 January
There is no simple technique or management, and can independently commit to greatly improve software productivity, reliability, and conciseness within 10 years. Brooks encourages us to regard technology and methods as an evolutionary means, not revolution. When the automation technology introduces the test, I tend to support the same point of view.
Introduction Frederick P. Brooks, Jr. has written a article entitled "No Silver Bullet - Essence and Accidents of Software Engineering" in 1986. This article lists some expectations for software engineering technology development and compares with reality. His arguments are summarized as follows: There is no simple technology or management, and it is possible to independently undertaken to significantly improve software productivity, reliability and simple Brooks in 10 years, encourage us to regard technology and methods as an evolution. Means, but not revolution. When the automation technology introduces the test, I tend to support the same point of view. I have been dealing with the potential customers of automated test products and solutions for 5 years, and many "silver bombs" thinking have been met. They always appear with this idea:
All tests can be automated! Since the automation test can significantly improve productivity so significantly, we can complete all the tests (fine ministers) with fewer people. The automation test is so simple, we don't need any training. The automation method will reduce the overall test workload. We don't have to develop any test programs. With an automated test, did the testers become "outdated" or "extra"? That time consuming test design is no longer necessary. Although I don't want to break people a beautiful fantasy, I always feel that there is a difference between the responsibility to help them understand, implement the automation test and get the difference between the Dream of the Shenbing Terrible. Usually this means explaining the true meaning of automated testing, and the actual functionality of automated testing tools and solutions. Does the automation test are not a silver? It is this means. Automated test, or automated test strategy and tool implementation, just one tool in the tester toolbox. Note I emphasized that it is a tool, located in the toolbox. I intentionally avoid the same as the automation test and test workers, and it can't replace the status of the tester. Despite this, the automated test still has no doubt, it can make us benefit from test efficiency and thoroughness. The key is to determine the best time and way of playing its efficacy. We put forward another question to specifically explain it. Is there enough time to test everything? I think people will answer "no!" In concert. There is always more things to test, or try again on another platform or in other configurations. However, with the increasing date of the final period and product delivery date, the time allocated to each test cycle is shortened. So how do software development project managers and test team deal with this situation? Typically, they reduce the amount of tests of each test cycle before the software releases. Have you experience this situation? Ideally require some risk-based analysis to determine which risks are queued. More common, however, that the test team is just a focus on the test cycle to verify the repaired defect. What is even more, the test plan after this reduction is not enough to complete. How many products are delivered after a complete test? I don't know this situation. The development team often makes the decision to deliver software according to other factors: Is the time arrived? Is the budget be super? Is the resource exhausted? Is there any pizza and beer? Unfortunately, because the test work is arbitrarily deleted, the development team cannot fully know the overall quality of the product, and they are facing the risk of the software with serious problems. Can we get rid of this dilemma with the power of automated testing? Let's discuss it. How to help us? Before you plan to implement an automated test, you need to understand the definition of automated testing. In other words, what does it mean for you? Here have some other people I heard for the description of the automated test:
Fully uninhabited test. Test script. test tools. Not clear. Sometimes people understand the concept of automated tests is too narrow, only concerned with test scripts generated by tools or programming. In fact, the word automated includes a broader meaning. Take a look at the Quality Engineering team to build this definition of the automated test when building an automated test criterion: In our environment, "Automation" refers to the use of policies, tools, and workpieces, which increases or decreases manual or artificial Participate or interfere with non-skill, repetitive or lengthy work needs. In addition to this definition, the guidelines also provide examples of application automation methods for the team. Table 1 lists some. Is this small example let you see an automation? Now, define automation is critical to you and your team what is critical. Then you can use this definition to build a set of automation guidelines, so that everyone in the team can use the same method to quickly evaluate whether a task is suitable for application automation. Creating Automation Test Guidelines here lists some policies and matters that you can consider when you define the Automation and Develop Criteria: Determine the "Plan" of the Automation Test as a candidate object in all work as an application automation. Start considering from a highly redundant task or scene. Automation will be automated. First of all, pay attention to the development mature, understand the thorough use case or scene. Prioritize the relative stable portion in the application, not the variable portion. Improve automation efficacy by using data-driven test techniques (increase the depth and breadth of test coverage). Assign several experts in charge of automation, do not let everyone testing each of them. Keep in mind that don't pursue 100% automation, manual testing is still crucial. Plan more test
Automation will be repeated to win more time for other methods. Increase testivity test. Increase the configuration test. Build more automation tests. Make more artificial tests, especially in high risk characteristics. Careful planning: divide labor testing and automatic testing, can not be automated. Each design is designed to design all the tests and documents. If an automated test cannot be run, make sure it can be done manually. Take automation as an investment
Training users make full use of automation tools. Build a reusable code base. Keep the test modularization, the size is controlled within a certain range, so it is easy to maintain. Documentation Test Scripts (code) for reuse. Enhance the backup process. Use source code control. Recognizing that automation is a software development work and usually requires code generation. Gradually implement automation test
Don't try to implement all tests automation in one day. Accumulated experience and step by step. From a small part of the entire test plan, gradually add to the automated test collection. (Ie, what can I do with the actual, controlled manner), can I do for me? Although automation testing requires a lot of investment in the preliminary planning and training, it is indeed a gain from several big aspects. It can bring you the following benefits:
Higher Quality Software - Because you can spend less time and resource for more testing. More complete test coverage potential. More time is put into other test activities, including: detailed plan. Carefully design and test. Build more complicated tests (data drivers, increased code for conditions for conditions and special reports, etc.) More artificial tests, not less! Automated testing also provides you with invisible value, it can bring testers:
Get new skills (that is, the opportunity to establish skills and learning skills). Learn more about the knowledge of the system in the test, because automation can reveal the internal conditions of the system, such as object properties and data. (For more understanding of the system, better testers now "Now you know what is automated testing and what work it can be competent, I hope you can use these knowledge to make more better tests for your products. Although the automated test is not a silver bomb, it is still not a good tool; if it is able to apply it to your suitable job, it will bring you huge benefits. Referring Abstract You can see this article on our website on the world of developerWorks. For more information on section some topics in this article, see the following articles on the CEM KANER website. URL: http: //www.kaner.com/articles.html 1. "Architectures of Test Automation" 2. "Improving the Maintainability of Automated Test Suites" 3. "Avoiding Shelfware: A Manager's View of Automated GUI Testing" Acknowledgments Cem Kaner provides a reference link article. Thanks to IBM Rational TED Squire, and the James Bach of Satisfice, Inc. carefully review this article and helps in writing. For more information on Satisfice and its widely praised test lectures, please visit www.satisfice.com.
About the author Dawn Haynes, Technical Commissioner, IBM Rational
Http://www-900.ibm.com/developerWorks/cn/RATIONAL/R-TESTING-AUTOMATION/index.shtml