循环简化的目的是限制循环的次数,无论循环的形式和循环体实际执行的次数,简化后的循环测试只考虑执行循环体一次和零次(不执行)两种情况,即考虑执行时进入循环体一次和跳过循环体这两种情况。
⑦、程序变异测试法
程序变异是一种错误驱动测试。错误驱动测试是指该方法是针对某类特定程序错误的,要想找出程序中所有的错误几乎是不可能的,解决办法是将错误的搜索范围尽可能地缩小,以利于专门测试某类错误是否存在。
三、黑盒测试
1、定义:数据驱动测试或者基于规格说明的测试
只检查程序功能是否按照规格说明书规定正常使用,是否能接收数据及产生正确的输出
信息,并且满足数据库或者外部信息的完整性
2、黑盒测试的目的
①、是否有不正确或者遗漏的功能
②、界面是否有误
③、接口上,输入输出是否正确
④、是否有数据结构错误或者外部数据库访问错误
⑤、性能是否满足要求
⑥、初始化或者终止性错误
3、黑盒测试的优点
①、最大程度满足用户需求
②、相同动作可重复执行,枯燥部分可由机器完成
③、根据测试用例针对性的寻找问题,定位更准确,容易生成测试数据
④、测试直接和程序/系统要完成的操作相关联
4、黑盒测试的缺点
①、代码得不到测试
②、如果规格设计错误,很难发现
③、测试不能充分进行
④、结果取决于测试用例的设计
5、黑盒设计方法
①、等价类划分法
②、边界值分析法
③、因果图法
④、判定表驱动法
⑤、场景法
⑥、功能图法
⑦、错误推断法
⑧、正交试验设计法
注意点:确定测试的优先级和测试重点,提高覆盖率,边界值分析必须使用
6、设计用例的策略
①、首先进行等价类划分,包括输入和输出条件,减少工作量提高效率
②、边界值分析,发现错误的能力最强
③、错误推断法,补充用例(这个凭经验)
④、对照需求和业务场景逻辑,检查用例
⑤、如果需求说明含有输入条件,设计开始就用到因果图和判定表驱动法
⑥、参数配置类的软件,要用正交实验法
⑦、功能图法,不同时期条件的有效性来设计数据
⑧、业务流清晰的系统,采用场景法
6.1等价类
①、将所有可能输入数据(有效和无效)划分为若干个等价类,选取代表性的数据当做 测试用例,保证完整性和代表性
有效等价类:合理的有效的输入集合
无效等价类:无效的没有意义的输入集合,检查程序异常
②、等价类划分方法
按照区间、数值、集合、限制条件、处理方式划分
6.2边界值
对输入或输出的边界值进行设计(5/7原则)
6.3因果图
简化逻辑关系,操作步骤较复杂
6.4判定表驱动法
针对不同存在条件、动作关系或者因果关系的设计用例方法
4大组成部分:条件桩,条件项;动作桩,动作项
6.5场景法
事件触发的情景生成场景(同一件事不同触发顺序和处理结果形成事件流)
6.6功能图法
用功能图(流程图)形象的表达操作流(状态迁移图+布尔函数组成)
需要依靠判定表因果图表示逻辑,是黑盒+白盒混合用例的设计方法
6.7错误推断法
基于以往的经验和出现的错误,推测软件可能存在的缺陷和错误,针对性的设计用例
6.8正交实验法
从大量数据中挑选适量的有代表性的,合理设计用例
7、黑盒测试的原则
1、根据需求和规格要求,明确产品要求的正确性
2、针对性的找问题,正确定位
3、根据需求重要性确定测试等级和重点,减少缺陷
4、接口处,输入是否能正确接收,输出是否正确
5、站在用户角度思考,测试
8、测试计划
根据需求中关于功能和性能的要求设计,制定参考范围
四、测试用例
1、什么是测试用例
一组由前提条件、输入、执行条件、预期结果等组成,以完成对某个特定需求或者目标测试的数据,体现测试方案、方法、技术和策略的文档
2、为什么要写测试用例
科学有效的对测试步骤进行组织规划,方便管理,记录
3、测试用例主要包含哪些内容
编号、日期、设计和测试人员、优先级、标题、目标、环境、输入数据/动作、预期结果
4、编写测试用例需要什么
软件需求设计说明书、软件模板
5、设计测试用例的注意事项
从高到低,独立性,与功能一一对应,根据需求设计,由有经验的人员设计
6、设计测试用例的原则
有模板,正确性,代表性,可判断性,重现性,详细准确清晰的步骤,符合规范
7、用例的管理工具
市场上的用例缺陷管理工具很多:蛰了列举几个:mantis、redmine、jira、bugzilla、禅道等
8、用例的管理过程
编写→评审(修改→再次评审)→使用→保存管理→维护/升级
9、测试用例内容
目标的描述、环境、输入输出数据/动作、步骤、预期结果、备注等
五、单元测试
一种验证行为,程序中每一项都需要验证
1、目的
①、检查单元模块内部错误,为软件评审提供依据
②、测试模块内重要的路径,以程序设计说明书和测试数据为依据,以检查出错误
③、检查信息能否正确流入和流出单元
④、内部数据的完整性、数据形式相互关系的正确性,以及全局变量在单元中的处理和影响
⑤、数据在边界处能否正常工作
⑥、单元的运行能否满足特点的逻辑覆盖
⑦、错误处理机制是否有效
2、主要任务
程序语法检查、程序逻辑检查、模块接口测试、局部数据结构测试、路径测试、边界条件测试、错误处理测试、代码书写规范检查
2.1程序语法检查
①.编译语言对程序进行检查
②.人工检查
2.2程序逻辑检查
①.检查程序逻辑是否正确
②.程序中的循环语句上下项以及循环次数是否有问题
③.函数或子模块是否有自我调用问题
2.3模块接口测试