首先先了解下故障模型的概念。
故障模型:
--设计测试用例时有太多的单个输入变量、多个输入变量的组合,优秀的软件测试人员不会依靠运气,他们有着丰富的经验和直觉,可以从中找到哪些是要进行测试的,哪些不需要测试,哪些操作可能会引起软件失效。我们把这些测试人员的经验和直觉尽量归纳和固化,形成一些故障模型(Fualt Model)。
--为软件测试工程师明敏锐发现缺陷提供帮助
方法一:输入非法数据
如何发现这类问题
--举例:假设"软件测试工程师管理系统"中每个工程师的信息单独使用一个文件进行保存,保存文件名为工程师姓名;即如果工程师姓名为张三,则保存的该工程师信息的文件为"张三.txt",则添加工程师测试时要注意工程师姓名输入的隐含问题。
注意
--检查错误信息,保证正确、易懂!
--举例:错误信息:Error 5-unkown data!
方法二:输入默认值
此类缺陷产生原因
--定义变量时未赋初值
--赋初值不正确
--再次赋初值后对程序其他部分的影响
如何发现这类问题
--创建默认值是相当难的程序设计工作。开发人员要确保变量在进入循环或进行函数调用之前就做了初始化。如果没做初始化,使用这样的变量将产生严重的后果。确定应用软件中使用的数据有一些基本原则:
1、寻找选项按钮、配置面板、安装屏幕等。这种屏幕上显示的数据常常在应用程序的许多地方用到。
2、查阅源代码的数据声明部分。(如果可以得到)
3、确定了要测试的数据,可以通过以下操作来强制使用或不使用默认值:
方法三:输入特殊字符集
方法四:输入使缓冲区溢出的数据
方法五:输入产生错误的合法数据组合
用户接口输入测试小结
--输入非法数据
--输入默认值
--输入特殊字符
--输入使缓冲区溢出的数据
--输入产生错误的合法数据组合
方法六:同一个输入产生各种可能输出
方法七:产生不符合业务规则的无效输出
如何发现这类问题
--我们在测试的时候必须了解软件的预期目标,这样在检查输出结果的时候才可以知道是正确的还是错误的。我们可以通过软件的预期目标列举出所有无效的输出,然后逐一测试。例如,如果测试日历程序并了解了一些函数的受限范围,就可以设计一些输入值以强制函数产生无效输出。如果不了解该函数,甚至会将错误结果当作正确结果。
--如同对输入域进行分析以确定测试输入一样,执行该测试我们需要对输出进行分析
--测试人员应该尽可能多地学习所涉及问题的领域。例如对财务软件进行测试,就要学习财务的相关知识。对计算器进行测试就要重新温习数学知识。
--有时在列举出了无效输出后,也很难知道哪些输入组合能强制这些输出产生。这时,测试人员必须先要确定哪些输入与输出有关,然后用产生了意外结果的输入组合进行测试,测试过程中要注意输入执行的顺序,用不同的顺序执行可能得到不同的结果。如果不能强制无效的输出产生,那说明软件没有这方面的缺陷。
--在验证测试结果时,要重点查看输出结果的正确性,因为这种测试常使软件产生看似正确的结果,必须小心验证才行。
测试方法小结
--应用场合:强制产生不符合业务北京的知识
--测试方法:列举出所有无效的输出,然后逐一测试
--测试知识储备:全面理解需求规格说明书,熟悉行业背景知识。
Web应用系统中的表单测试
内容总结
--输入非法数据
--输入默认值
--输入特殊字符集/数据类型的合法输入
--输入缓冲区溢出的数据
--输入产生错误的合法数据组合
--产生同一个输入的各种可能输出
--强制产生不符合业务规则的无效输出
--Web应用系统中的表单测试