测试用例
测试用例(Test Case)是为某个特殊目标而编制 的一组测试输入、执行条件以及预期结果,以便 测试某个程序路径或核实是否满足某个特定需求。
测试用例是软件测试的核心
• 如何以最少的人力、资源投入,在最短的时 间内完成测试,发现软件系统的缺陷,保证 软件的优良品质,则是软件公司探索和追求 的目标。
测试用例的重要性
有效性
测试用例是测试人员测试过程中的重要参考依据,准确的测试用例的计划、执行和跟踪是 测试的有效性的有力证明
可复用性
设计良好的测试用例可以重复执行,能节约时间,提高测试效率
易组织性
清晰详细的测试用例能够便于测试执行的开展
可评估性
测试用例的通过率是检验代码质量的保证
可管理性
测试用例也可以作为检验测试人员进度、工作量以及跟踪管理测试人员工作效率的因素
测试用例的特征
最有可能抓住错误的
不是重复的、多余的
一组相似测试用例中最有效的
既不是太简单,也不是太复杂
模板可以根据所测对象的不同对模板内容进行调整
编写测试用例的优缺点及用途
优点
• 便于梳理需求
• 验证产品的需求是否合理
• 监督产品对需求做出更加详细的设计
• 记录产品的设计细节,保障以后的查阅
• 加深测试人员对产品的认识和印象
• 反映测试进度
• 帮助发现拓展测试范围,扩大测试覆盖面,发现软件中潜藏的缺陷
• 方便回归测试,复查bug是否还会出现
• 为紧急情况下的测试提供参考信息
• 培训新人,提高新人测试效率,节省对新人的指导时间
缺点
?
测试用例的用途
• 核实需求:每一个需求点都会设计测试用例
• 评估结果:对产品进行评估,对测试完成情况进行评价
• 准确回归:快速正确的进行版本重复测试
• 防止遗漏:使软件测试的实施重点突出、目的明确,确保需求功能不被遗漏
• 提高效率:避免盲目测试
• 缩短周期:版本更新和升级时,只需修正少部分测试用例,资源复用
准备编写测试用例
收集资料
• 需求文档
• 设计文档
• 遗留系统相关文档
• 与相关人员讨论
探索性测试
• 可以通过探索性测试来获得更多的需求。可以把软件当产品说明书来对待,分 步骤地逐项探索软件特性,记录软件执行情况,详细描述功能。
• 探索性测试与经过深思熟虑的、计划好的测试过程有所不同,它并不预先设计 测试用例或者精确地按照一个计划来执行,它依靠的是测试人员的知识水平和 创造力。
• 可用于重现和分析缺陷、研究缺陷和程序其他模块的相关性
• 是测试用例有利的补充
• 具体问题具体分析
设计测试用例的基本准则
测试用例的代表性
能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以 及极限的输入数据、操作和环境设置等。
测试结果的可判定性
即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。
测试结果的可再现性
即对同样的测试用例,系统的执行结果应当是相同的。
设计测试用例的着眼点
• 根据产品规格,测试基本功能;
• 考虑设计一般用户(非专业人员)的使用方案;
• 与系统其他组成部分的配合(如移动网络和wifi,测试中考虑对设备的共享);
• 好的测试用例集能花费最小的代价(人力、物力、财力、时间)做最好的测试。
测试用例设计书写标准(测试用例的内容)
在ANSI/IEEE829-1983标准中列出了和测试设计相关的测试用例编写规范和模 板。标准模板中主要元素如下:
用例标题——惟一标识每一个测试用例
测试项——准确的描述所需要测试的项及其特征
输入步骤和数据——执行测试用例的输入需求(这些输入可能包括数据、文件或者 操作)
预期结果——按照指定的环境和输入标准得到的期望输出结果
测试用例之间的关联——标识该测试用例与其它的测试(或其它测试用例)之间的 依赖关系
测试用例的模板
测试用例模板
• Excel模板
• Word模板
• 测试用例模板可以根据所测对象的不同对模板内容进行调整。
测试用例的更新与维护
需要更新和维护的原因
• 功能变化
• 需要不断完善,是个循序渐进的过程
• 通过测试实践检验测试用例并添加、修改、删除测试用例
测试用例要经过正式、有效的评审
利用工具(配置管理系统)来维护测试用例
如何选择测试方法
• 在任何情况下都必须使用边界值分析方法
• 用等价类划分方法补充一些测试用例
• 涉及到业务流程的软件,应采用场景法
• 用错误猜测法再追加一些测试用例
• 如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用判定表法
• 如果程序某功能适合自动测试,可以采用自动测试以及随机测试