标题: 一种有用的测试方法——破坏性测试(英文) [打印本页] 作者: snowers 时间: 2004-11-10 11:04 标题: 一种有用的测试方法——破坏性测试(英文) Bad User Testing
How can you be sure that an application will behave properly when users perform actions or combinations of actions that were not considered during the development of the functionality? During the testing phase, you have to plan for what is sometimes called "bad user" testing, or negative testing.
Boris Beizer's definition of negative testing in "Software Testing Techniques" is: "Testing aimed at showing software does not work".
In his paper, "A Positive View of the Negative Testing", James Lyndsay stated the objectives of bad user testing to be:
Discovery of faults that result in significant failures; crashes, corruption and security breaches
Exposure of software weakness and potential for exploitation
Observation and measurement of a system's response to external problems
Why Is Bad User Testing Important?
During negative or bad user testing, the tester seeks to abuse the functionality of the product in an effort to create odd program states by exercising functionality that deals with state management, input validation, boundary conditions, fault recovery, and more.
Bad user testing is generally performed as part of integration or system testing and does not have a distinct phase of its own. The basic principle to follow is if the tester can perform bad user tests without error, there is a significantly lower chance that the users will inevitably find such defects later on.
As Lyndsay points out in is his paper, negative testing can find significant failures and also can produce invaluable strategic information about the risk model underlying testing, and allow overall confidence in the quality of the system.
Where To Start?
It is possible to design a bad user test plan starting from the specification documentation. The most important thing to keep in consideration when designing a bad user test plan is to not test what is described, but what is not. The tester should look at the specification documentation as a guide to what the boundaries of the software and then look beyond the boundary to the extreme edges of the software's functionality. Employ your creative destructiveness to take you beyond these boundaries and perform actions and tasks that you are sure will fail, or should be impossible. These are the areas where the most interesting defects can be found.
Of course, each product is specific and all tests cannot be applied in all circumstances. The few brief examples below can be used as a guide when starting a bad user test plan. Use your creativity to add to and expand this list.
Generic Bad User Test Scenarios
What is expected behaviour when you:
Manually shut down, or reboot, the computer while the application is running
Manually restart the computer by pushing the reset button while the application is running
Restart the computer while the application is running using the start menu
Log off while the application is running
Boundary Test Scenarios
What is expected behaviour when you:
Attempt to go below the minimum input limits
Exceed the maximum input limits
Stress Test Scenarios
What is expected behaviour when you:
Run the program concurrently with many other programs
Set memory to a stressed state (low Virtual Memory, low RAM)
Run on slower or older machines
Load large volumes of data
Create large numbers of concurrent connections or open files
Performance Test Scenarios
What is expected behaviour when you:
Test on a system lower than the minimum configuration requirements
Open extremely large files
Attempt to import a corrupt file
Create a situation requiring an error message
Install/Uninstall Test Scenarios
What is expected behaviour when you:
Run the installation script again while the application is running
Cancel the installation midway through the install using the task manager
Install the application onto a hard drive without enough free space
Install the application onto a network drive and disconnect the drive partway through
Uninstall the application when the application is still running
Change or remove the registry settings before trying to uninstall the application
Summary
Bad user testing is performed by the tester to find weaknesses in the design or the code by attempting actions that are likely to occur after deployment. Although it is hard to make predictions about real-world use, real users will find all ways of using the system including those that were considered unreasonable or improbable.
Including this type of testing as part of your project will result in a more robust and user-friendly application and will of course save effort and costs after the product is released.作者: jody 时间: 2004-11-10 18:23 标题: 好文章 虽然短小,但是很精,很是有用。作者: snowers 时间: 2004-11-12 10:32 标题: 有时间我把它翻译出来好啦 要出差了,暂时没时间弄。谁有时间可以完成它吖。觉得文章挺有用的。作者: noone_pm 时间: 2005-1-2 14:59 标题: very good! 作者: yslin1128 时间: 2008-7-3 10:41
看完了,不错呢作者: soon_zsj 时间: 2008-7-16 17:55
Thank you...作者: soon_zsj 时间: 2008-7-16 17:55 作者: cnbomb 时间: 2008-7-17 10:16
以前单位搞过破坏性测试。效果不错。作者: zjy711 时间: 2008-8-5 16:47 标题: 精辟 文章很好,赞一下!作者: panluhai 时间: 2008-10-19 14:48
收藏了,长见识了作者: wangjingying 时间: 2008-10-23 18:11
太神奇了,2004年的帖子还能在如此前排作者: 楠族开心果 时间: 2008-11-20 16:47
看不懂也要看看~~作者: 楠族开心果 时间: 2008-11-20 16:50
谢谢楼主分享》》作者: 猫猫的拖鞋 时间: 2008-11-20 17:41
谁翻译一下。。作者: dylan0804 时间: 2008-11-27 13:33 标题: 金山词霸翻译的。。。 不良用户测试你怎么能保证一个应用程序将正确的行为,当用户执行行动或组合的行动,被认为在发展的功能吗?在测试阶段,你必须计划是什么,有时被称为“不良用户”的测试,或消极的测试。 鲍里斯Beizer定义的负面测试“软件测试技术”是: “测试旨在展示软件不工作” 。
在他的文件中, “积极看待负面测试” ,詹姆斯Lyndsay指出的目标不好的用户测试,以是: 发现的断层,造成重大失误;崩溃,贪污腐败和安全漏洞曝光的软件缺陷和潜在的开采观察和测量系统的响应外部问题为什么是坏用户测试重要吗? 在否定或坏用户的测试,测试旨在滥用的功能产品,努力创造奇数程序规定行使功能,涉及国家管理,输入验证,边界条件,故障恢复,等等。