文章目录
前言
软件测试是软件工程中的重要部分,是确保软件质量的重要手段。随着软件的复杂度不断增强、软件产业的不断发展,软件测试得到越来越广泛的重视,本篇文章就将较详细地介绍测试用例的基本概念、测试用例的设计方法、测试用例的分类和测试用例的有效管理,并给出较详细的测试用例设计实例。
一、测试用例的基本概念
-
测试用例的概念
测试用例是测试执行的最小实体,是为特定的目的而设计的一组测试输入、执行条件和预期的结果。 -
测试用例的作用
测试用例的作用主要体现在以下几个方面。
• 有效性:在测试时,不可能进行穷举测试,从数量极大的可用测试数据中精心挑选出具有代表性或特殊性的测试数据来进行测试,可有效地节省时间和资源、提高测试效率。
• 避免测试的盲目性:在开始实施测试之前设计好测试用例,可以避免测试的盲目性,并使得软件测试的实施重点突出、目的明确。
• 可维护性:在软件版本更新后只需修正少部分的测试用例便可开展测试工作,降低工作强度,缩短项目周期。
• 可复用性:功能模块的通用化和复用化使软件易于开发,而良好的测试用例具有重复使用的性能,使得测试过程事半功倍,并随着测试用例的不断精化,使得测试效率也不断提高。
• 可评估性:测试用例的通过率是检验程序代码质量的标准,也就是说,程序代码质量的量化标准应该用测试用例的通过率和测试出软件缺陷的数目来进行评估。
• 可管理性:测试用例是测试人员在测试过程中的重要参考依据,也可以作为检验测试进度、测试工作量以及测试人员工作效率的参考因素,可便于对测试工作进行有效的管理。
二、测试用例的设计
1.测试设计说明
正如开发人员有功能设计说明书一样,测试也有测试设计说明书,它包括为每个软件特性定义具体的测试方法,包括被测特性、测试所用的方法、测试准则等。ANSI/IEEE 829标准对测试设计说明的解释是:测试设计说明就是在测试计划中提炼测试方法,要明确指出设计包含的特性以及相关的测试方法,并指定判断特性通过/失败的规则。
测试设计说明的目的是组织和描述针对具体特性需要进行的测试,但是它并不给出具体的测试用例或者执行测试的步骤。
2.测试用例的编写标准
一个优秀的测试用例应该包含以下要素。
• 用例的编号(ID):由测试引用的唯一标识符。测试用例的编号有一定的规则,例如可以是“软件名称简写-功能块简写-NO.”。定义测试用例编号,便于查找测试用例,便于测试用例的管理和跟踪。
• 测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“测试用户登录过程中输入错误密码时,软件的响应情况”等。
• 测试项:测试用例应该准确、具体地描述所测试项及其详细特征,应该比测试设计说明中所列的特性更加具体。如测试设计说明提到“计算器程序的加法功能”,那么测试用例说明就会相应地提到“加法运算的上限溢出处理”。它还要指出引用的产品说明书或者测试用例所依据的其他设计文档。
• 测试环境要求:该测试用例执行所需的外部条件,包括软、硬件具体指标以及测试工具等。
• 特殊要求:对环境的特殊需求,如所需的特殊设备、特殊设置(例如对防火墙设置有特殊要求)等。
• 测试技术:对测试所采用的测试技术和方法的描述和说明。
• 测试输入说明:提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
• 操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
• 预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得到。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
• 测试用例之间的关联:用来标识该测试用例与其他测试用例之间的依赖关系。在实际测试过程中,很多测试用例并不是单独存在的,他们之间可能有某种依赖关系,如该测试用例与其他测试用例,有时间上、次序上的关联,应列出前一测试用例及后一测试用例的编号。
• 测试用例设计人员和测试人员。
• 测试日期。
3.测试用例设计应考虑的因素
-
编写测试用例所依据的文档和资料
编写测试用例所依据的文档和资料主要有以下内容:
• 软件需求说明及相关文档。
• 相关的设计说明(概要设计,详细设计等)。
• 与开发组交流对需求理解的记录。
• 已经基本成型的、成熟的测试用例等。 -
测试用例设计的基本原则
• 用成熟测试用例设计方法来指导设计
• 测试用例的正确性
• 测试用例的代表性
• 测试结果的可判定性
• 测试结果的可再现性
• 足够详细、准确和清晰的步骤 -
测试用例设计应注意的问题
(1)把测试用例设计等同于测试输入数据的设计
(2)强调测试用例设计得越详细越好
(3)追求测试用例设计“一步到位”
(4)将多个测试用例混在一个用例中
(5)让没有测试经验的人员设计测试用例
4.测试用例的分类
可以把测试用例归为以下5类。
• 白盒测试用例:白盒测试用例主要有逻辑覆盖法和基本路径测试法设计的测试用例,设计的基本思路是使用程序设计的控制结构导出测试用例。
• 软件各项功能的测试用例:例如,文字编辑器中的新建文档功能、打开文档功能、保存文档功能、打印功能、编辑功能等。功能测试用例的设计一般采用等价类划分法、边界值分析法、错误推测法、因果图法等设计测试用例,这些都属于黑盒测试用例设计技术。
• 用户界面测试用例:例如,用户界面窗口里的所有菜单、每个命令按钮、每个输入框、列表框、每个工具栏、状态栏的测试用例等。
• 软件的各项非功能测试用例:这里又可以分成许多类型,包括性能测试用例、强度测试用例、接口测试用例、兼容性测试用例、可靠性测试用例、安全测试用例、安装/反安装测试用例、容量测试用例、故障修复测试用例等。
• 对软件缺陷修正所确认的测试用例。
三、测试用例设计实例
四、测试用例的执行与跟踪
测试环境搭建之后,根据定义的测试用例执行顺序,可逐个执行测试用例。在实际测试工作中,执行与跟踪测试用例的过程一般都是紧张的,工作量很大,测试用例执行中应该注意以下几个问题。
(1)全方位地观察测试用例执行结果
(2)加强测试过程记录
(3)及时确认发现的问题
(4)与开发人员良好的沟通
(5)及时更新测试用例
(6)提交一份优秀的问题报告单
(7)测试结果分析
五、测试用例管理
• 编写用例:测试工程师根据需求规约、概要设计、详细设计等文档编写测试用例。
• 用例评审:用例的评审,原则上如同程序一样,要经过评审来发现编写测试用例的问题。
• 用例修改:评审结束后,需要根据评审意见进行修改,修改后通常不再进行评审。建议如果在时间和人力资源比较充裕的情况下,对用例的评审要与开发部门的产品一样,要经过反复的评审和修改,然后正式投入使用,因为每次评审可能都有新的发现。
• 使用用例:在执行任务时版本控制库取出用例,执行用例时,建议要记录测试的结果,方便以后对软件缺陷的分析。
• 用例升级/维护:随着软件产品不断修改、升级,对应的用例也需要升级维护。针对同一个项目,可以根据需求的变更不断进行维护;如果是产品,用例的维护更加重要,要达到用例和产品的版本一一对应。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了软件测试的基本概念,希望能够对正在阅读的你有所帮助。如果你也对软件测试感兴趣的话,就跟着我一起学下去吧。
如果您觉得我写的还不错,请多给我点赞鼓励一下,您的支持也是我不断前进的最大动力。同时也欢迎您将本篇文章分享给您的朋友,一起学习。最后,也欢迎大家在私信和评论里与我探讨学习过程中遇到的问题,大家共同进步。