高效设计测试用例(总结)第一章:软件测试用例测试用例的概念:为实施测试,向被测试系统提供的输入数据、操作、环境的设置以及预期结果的一个特定的集合。
编写测试用例的好处:v组织性:编写测试用例有利于测试的组织。
v功能覆盖:测试用例可以确保功能不被遗漏。
v重复性:在项目进行期间对不同的版本必须要多次重复执行同样的测试,以寻找新的软件缺陷,保证老的软件缺陷已被修复。
v跟踪:通过对测试用例的统计,以确定下一步的测试重点,缺陷多的模块在后续测试中进行重点测试。
v测试确认:在少数高风险的测试中,必须证明确实按照设计执行了所有的测试用例。
探索性测试用来加强测试,不能用他来代替其他的测试。
更新和维护测试用例在测试过程中,测试用例并不是一成不变的,需要不断的更新和维护:v无论测试人员在开始执行测试之前把测试用例设计得如何好,开始执行测试后,肯定又会考虑编写新的测试用例。
v在实际项目中,所有的需求、设计很早就形成了文档,并且可以利用的情况非常罕见。
测试用例必须在开发流程的每个阶段不断的发展。
v在执行测试时,测试人员会了解到关于该系统的更多知识,设计出新的测试用例。
v测试用例可以用配置管理系统来维护。
第二章:通用的测试技术方法一:等价类划分概念:等价类划分发作为一种最为典型的黑盒测试方法,他完全不考虑程序内容结构,而只是根据对程序的要求和说明进行测试用例的设计。
划分等价类的步骤:1.划分等价类。
2.建立等价类表。
3.确定测试用例。
Ø为等价类表中的每一个等价类分配一个唯一的编号。
Ø设计一个新的测试用例,使他能够尽量覆盖尚未覆盖的有效等价类。
(重复这一步,从而使所有有效等价类均被测试用例所覆盖)Ø设计一个新的测试用例,使他只能覆盖一个无效等价类。
(重复这一步,从而使所有无效等价类均被测试用例所覆盖)4.细画等价类。
等价类的特点:v测试的内容相同。
v如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷。
v如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷。
等价类划分中的核心要点:v若某个输入条件说明了一个必须成立的情况,则可划分一个有效等价类和一个无效等价类。
v若某个输入条件对取值范围或值的个是数进行了规定,则可以确定一个有效等价类和两个无效的等价类。
v如果输入条件一个布尔量,则可以确定一个有效等价类和一个无效等价类。
v若在某个输入条件中对输入数据的一组可能值进行了规定,并且程序是用不同的方式处理每一种值的,则可以为每一种值划分一个有效等价类,并针对这组值确立一个无效等价类,他是所有不允许的输入值的集合。
v如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。
v若已划分的某等价类中的各个元素在程序中的处理方式不同,则应当将此等价类进一步划分更小的等价类。
划分等价类要注意的问题:v考虑有效等价类,同时也要考虑无效等价类。
v利用有效等价类生成的测试用例,可以检验程序是否实现了需求规格说明书中预先规定的功能和性能。
v利用无效等价类生成的测试用例,可以检查程序中的功能和性能的实现是否不符合规格说明要求。
v仔细划分,审核划分。
v等价类的目标就是把所有可能的测试用例组合数量缩减到仍然足以测试软件的范围。
方法二:边界值分析不管什么测试,边界值测试是必须的。
边界值方法的小结:1.输入或输出的边界最容易产生错误2.确定边界值。
Ø如果输入条件对取值范围进行了界定,则应以边界内部以及恰巧超出范围边界外的值来作为测试用例。
Ø如果对取值的个数进行了界定,则应当分别一最大的个数、最小的个数、比最大的个数大1和小1、比最小的个数大1和小1作为测试用例。
Ø对于输出条件,同样可以应用上面提到的两条原则进行测试用例设计。
Ø若在规格说明书中提到的输入或输出域是一个游戏的集合(如顺序文件几表格等),就应注意选取该有序集合中的第一个和最后一个元素作为测试用例。
Ø分析规格说明书,找出其他可能的边界条件。
3.隐含的边界值。
4.测试知识储备v2的乘方v ASCII表方法三:因果图法解决那类问题:必须考虑采用合适于描述对于多种条件的组合,相应产生多个动作的形式来考虑测试用例,这就需要利用因果图(Cause—Effect Graphs)。
因果图法小结:1.分析软件需求说明的描叙中那些是原因(即输入或输入条件的等价类),那些是结果(即输出条件或输出条件的等价类),并给每个原因和结果赋予一个标识符。
2.分析软件需求说明书描述中的语义。
找出原因和原因、原因与结果之间的对应关系。
3.由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。
4.把因果图转换成判定表。
5.把判定表的每一列那出来作为依据,设计测试用例。
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
§条件桩:列出问题的所有条件。
§动作桩:列出问题的所有输出。
§条件项:列出针对条件桩的取值。
§动作项:列出在条件项的各种取值情况下的输出结果。
因果图法的核心要点、适用范围及局限性1.因果图法的核心要点Ø建立判断表的步骤。
Ø适合使用判断表设计测试用例的条件:规格说明书以判定表的形式给出,或很容易转换成判断表。
条件的排列顺序不会也不影响执行那些操作。
规则的排列不会也不影响执行那些操作。
当某一规则的条件已经满足,并确定要执行的操作后,不必检查别的规则。
如果某一规则得到满足,且要执行多个操作,这些操作的执行顺序无关紧要。
2.因果图的适用范围如果在测试中必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。
3.因果图法的局限性方法四:其他测试方法1.通过测试和失败测试2.错误猜测发:错误猜测本身不是一种测试技术,而是一种可以应用到所有测试技术产生更加有效的测试技术的一种技能。
3.随机测试随机测试指测试中所有的输入数据都是随机生成的,起目的是模拟用户的操作。
缺点:v无法量度随测试实际覆盖率。
v许多的测试都是冗于的。
v确定预期结果可能花费大量的时间。
v测试的数据因为的随机的,重复测试是不可能的。
测试方法的的选择v在任何情况下都必须使用边界值分析方法。
v用等价类划分方法补充一些测试用例。
v用错误猜测法在追加一些测试用例。
v如果程序的功能说明含有输入条件的组合情况,应在一开始就选用因果图法。
v如果程序的某功能适合自动测试,则可采用自动测试方法以及随机测试方法进行测试。
第二章:功能性测试技术1.输入方法一、输入非法字符产生的原因:1.防止不正确的输入进入被测软件。
2.输入了不正确的数据后,软件提示错误细心,拒绝不正确的输入。
3.允许不正确的输入进入系统进行处理,软件失效时调用异常处理程序,他通常包括重新设置内部变量,关闭文件,存储软件等代码。
如何发现这类问题:1.输入类型:输入无效的类型常会产生错误信息。
2.输入长度:对于字符型,键如太多的字符常会引出错误信息。
3.边界值:输入边界值或超过边界值的数据。
测试方法小结:v应用场合:GUI的输入。
v测试方法:分别从输入的数据、输入数据的长度、输入数据的边界值等方面进行考虑。
v测试信息的检查:要留意错误信息本身。
方法二、输入默认值产生的原因:1.变量没有被初始化或内存随机的给变量赋了一个初值。
2.开发人员不确定到底要赋什么样初始值,就随便给了一个值。
如何发现这类问题:测试方法小结:v应用场合:需要输入默认值的地方。
v测试方法:分别从选项按钮、配置面版、安装配置、开始界面等方面进行考虑,强制使用或不使用默认值等。
v测试知识储备:全面理解需求规格说明书对默认值的要求,同时深刻理解被测试软件的行业背景。
方法三、输入特殊字符(或数据类型的合法输入)产生的原因:1.字符集包括普通字符和特殊字符。
2.实现应用程序的程序设计语言有特定的处理一些字符和字符串的方法。
3.应用程序有时也使用设备名称、系统对象和程序的保留字符串集合。
如何发现这类问题:测试方法小结:v应用场合:需要接受字符输入的地方。
v测试方法:根据被测软件的具体情况输入非法字符。
方法四、输入使缓冲区溢出的数据产生的原因:开发人员没有考虑到传送给内存缓冲区的字符串的大小。
如果缓冲区只能保留固定长度的字符串,输入的更长的字符串就会改写其他的内存存储单元,引起操作系统强制性的终止应用程序。
如何发现这类问题:1.首先弄清楚要测试的输入域的长度,输入最大字符串测试。
2.输入一个比最大字符串,应用程序可能出现错误提示信息,提示不允许输入;或者输入了更长的字符串使应用程序崩溃。
测试方法小结:v应用场合:需要接受字符输入的地方。
v测试方法:根据被测试软件的具体情况输入最大字符串或输入一个比最大字符串更长的字符串。
方法五、输入产生错误的合法数组合:产生的原因:本测试只要测试多个输入值的组合,每个输入值一被单独测试过,但是这些值的组合可能会相互影响而引起软件失效。
如何发现这类问题:首先要确定测试是那些输入组合,并弄清他们之间的“关系”。
如果具备以下的任一特性,可以认为这些变量是有“关系”的。
1.描述的是有关单个内部数据结构的属性和内容。
2.一起用在了一个计算中,也就是将多个输入用做一个内部计算的操作数,因此这些输入变量具有了相互“关系”。
测试方法小结:v应用场合:输入值之间存在依赖关系。
v测试方法:输入可能是出现问题的组合值。
2.输出方法六、产生同一个输入的各种可能输出产生的原因:单个输入产生多种输出的情况与先前的输入和被测系统的状态都有关系。
如何发现这类问题:具有被测软件的业务方面的知识,具备各种程序文档,明确一个输入可以产生何种输出。
测试方法小结:应用场合:同意输入对应多个输出情况。
测试方法:测试输入对应得每一个输出。
方法七、输出不符合业务规则的无效输出:产生的原因:开发人员对业务了解不深刻,忽略处理没有遵循一般规则的输入如何发现这类问题:了解软件的预期目的,按预期目标列出所有无效输出,然后逐一测试1. 测试人员应尽可能学习所涉及问题的领域。
2.有时列出无效输出后,很难知道那些输出组合能强制这些输出产生。
测试方法小结:应用场合:强制产生不符合业务背景的知识。
测试方法:列举出所有的无效输出,逐一测试。
方法八、输出属性修改后的结果方法九、屏幕刷新显示3.数据结构方法十、数据结构溢出方法十一、数据结构不符合业务约束4.计算方法十二、操作数与操作符不符方法十三、递归调用自身方法十四、计算结果溢出方法十五、数据共享或关联功能计算出错5.文件方法十六、文件系统超载方法十七、介质忙或不可用方法十八、介质损坏方法十九、文件名不合法方法二十、更改文件访问权限方法二十一、文件内容受损第十三章:设计功能和界面性测试用例一一、文本框、按钮等控件测试1. 文本框的测试2. 命令按钮的测试3. 单选按钮控件的测试4. up-down控件文本框的测试5. 组合列表框的测试6. 复选控件的测试7. 列表框控件的测试8. 滚动条控件的测试二、各种控件在窗体中混合使用时的测试三、文件操作1. 打开文件2. 保存文件3. 关闭文件4. 打印文件第十五章:设计功能和界面性测试用例二一、设计功能测试用例1. 编辑操作2. 插入操作a.插入文件b.链接文件c.插入对象3. 编辑操作4. 鼠标操作二、界面测试用例设计方法1. 窗体a.窗体大小b.移动窗体c.缩放窗体d.显示分辨率2. 控件a.控件b.错别字c.中英文混合3. 菜单(常用—主要—次要—工具—帮助)a.菜单是否可以正常工作b.快捷键c.热键d.字体和字号的一致e.中英文问题f.菜单的显示与权限的关系g.鼠标右键h.菜单的深度i.菜单的图标4. 特殊属性a. 安装界面上应有公司介绍或产品介绍,并有公司图标b. 主界面以及大多数界面上最好有公司图标c. 登录界面上要有本产品的标志,同时包含公司图标d. 选择“帮助”-----“关于”命令,应可以看见相关的版权和产品信息e. 公司的系列产品要保持一致的界面风格第十七章设计文档和安装测试用例一、文档的测试需测试的文档1. 用户手册2. 联机帮助3. Readme文件4. 包装文字图形5. 市场宣传材料6. 授权/注册登记表/用户许可协议7. 标签8. 指南及向导二、安装测试1. 典型安装2. 用户自定义安装3. 网络安装三、运行测试四、卸载测试五、加密测试第十九章设计兼容性和易用性测试一、设计兼容性测试二、设计易用性测试第二十一章状态图方法设计测试用例第二十三章测试大纲方法设计测试用例。