什么是测试用例

测试用例分类

功能(Function)、界面(UI)、性能(Performance)、安全(Security)、接口(Interface)

测试用例的定义

简单的说,测试用例就是:

设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果

如果程序在这种情况下不能正常运行,并且这种情况会重复发生,那就表示软件程序人员已经测试出软件有缺陷,这个时候就必须将这个问题标识出来,并且通知软件开发人员。软件开发人员接获通知后,将这个问题修改完成与下个测试版本内

软件测试工程师取得新的测试版本后,必须利用同一个测试用例来测试这个问题,确保该问题已经修改完成。

常遇到的面试问题:

  1. 什么是测试用例?
  2. 如果软件按照测试用例执行,达不到预期结果怎么办?
  3. 开发人员说缺陷修复了,你会怎么做?(回归测试)
  4. 测试用例真的有必要耗费时间进行设计和编写吗?有用吗?
  5. 时间不够用了,还要进行详细的测试用例设计吗?
  6. 测试用例需要经常更新吗?(必须的,尤其是发现过缺陷的测试用例。“杀虫剂效应”,一个已经发现过缺陷的测试用例,就相当于杀虫剂。必须使用更强的杀虫剂--新的测试用例(与之前的用例中数据类型保持一致)进行重新测试)
  7. 现在有一个文本框,有一个规则,请对这个规则,进行输入内容的等价类划分

(尽可能详细的划分)

测试用例模板和包含的内容

用例设计模板中的说明

  • 标识符:由测试设计郭恒说明和测试程序说明引用的唯一标识符
  • 测试项:描述被测试的详细特性、代码模块等,应该比测试设计说明中所列的特性更加具体。还要指出引用的产品说明书或者测试用例的其他设计文档。
  • 输入说明:该说明列举执行测试用例的所有输入内容或者条件。
  • 输出说明:描述进行测试用例预期的结果。
  • 环境说明:是指执行测试用例必须的硬件、软件、测试工具、人员等。
  • 特殊要求:描述执行测试必须的特殊要求。
  • 用例之间的依赖:如果一个测试用例依赖于其他用例,或者受其他用例的影响,就应该在此注明。

说明:

测试编号:

(一般编号规则:TestCase_项目名称_模块名称_功能名称_0001)

测试项:

测试用例的测试目的,一般情况下,用一句话或者短语,表明测试目的。

例如:使用谷歌浏览器打开百度首页;在QQ登录界面输入正确的用户名和密码能登陆上;

(表明测试模块、测试对象、方式方法、目的或者事件)

测试依赖:

依赖用例:

一般功能流程上,下游的功能测试依赖于上游的功能测试的用例。

例如:增加一个数据的测试用例,将会被测试该数据的测试用例依赖。

测试步骤:

用最朴实的语言,写出来软件的操作步骤。尽量详细。

例如,在用户名文本框输入:XXX;在省份下拉列表选择浙江;城市下拉列表选择杭州;

输入数据:

单独整合测试数据,必须和测试步骤中的数据保持一致。

预期结果:

准确、对象的准确性,内容的准确性。原则上每一个操作,都要有一个结果。在重要的步骤之后,设定预期结果。

例如:页面跳转到XXX;程序弹出对话框,提示用户名或者密码错误,请重新输入。

一般和测试目的密切相关。测试目的决定了测试步骤和预期结果。

测试结果:

要求在测试执行完成后添加,没有执行,保持为空。

测试结果只有两个,通过和失败;Pass/failed

和预期结果一致,即为通过;不一致即为失败。

测试人:

测试的执行人可以和设计者相同,也可以不相同

备注:

为了测试用例正常执行,而做的特殊准备。

例如:专门制造网络不畅情况下,软件错误提示。

测试用例的作用

  • 有效性:测试用例是测试人员测试过程中重要参考依据;
  • 可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率;
  • 易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
  • 可评估性:从测试的项目管理角度来说,测试用例的通过率是检测代码质量的保证。
  • 可管理型:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的标准。

测试用例编写注意事项

  • 不要设计“穷举测试用例”
  • 在详细测试用例与有效测试时间中找到平衡点
  • 好的测试用例应该多关注“反向测试问题”
  • 测试用例应该不断更新和维护
  • 测试用例可以复用,但要注意数据有效性和环境变化
  • 测试用例是设计出来的,不是写出来的
  • 多去学习经验丰富的测试工程师所设计的测试用例
  • 针对不同的需求类型和测试对象,灵活采用不同的测试用例设计方法

黑盒测试用例设计方法

做加法器功能测试时,测试了1+1,1+2,1+3,1+4之后,还有必要测试1+5,1+6吗?能否放心的认为他们都是正确的?

黑盒测试用例设计方法概述

黑盒测试不深入代码

测试数据选择:等价类划分法、边界值分析法;

测试步骤设计:因果图法、判定表法、场景法、正交实验法、功能图法、其他测试方法


等价类划分法

把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例

每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现错误,这一等价类中的其他雷子也能发现同样的错误。

反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。

设计步骤:

确定等价类的原则:

  • 在输入条件规定了取值范围或者值个数的情况下,可以确定一个有效等价类和两个无效等价类;
  • 在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类
  • 在输入条件是一个布尔值的情况下,可以确定一个有效等价类和一个无效等价类
  • 在规定了输入数据是一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确定n个有效等价类和一个无效等价类
  • 在规定了输入数据必须遵守的规则情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
  • 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再讲该等价类进一步地划分为更小的等价类

划分等价类和列出等价类表:

有效等价类、无效等价类

确定测试用例:

为每个等价类规定一个唯一的编号

设计一个新的测试用例,使其尽可能地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖

设计一个新的测试用例,使其只覆盖一个有效等价类。重复这一步使所有无效等价类均被覆盖

测试项需要标明自己的目的,测试项中可以不写目的产生的结果。

用例依赖。下游的用例依赖上游的用例(已经存在的测试用例),用例依赖可以跨越模块(A测试员可能依赖B测试员的测试用例)。

测试步骤。能够表明操作的对象和方式。

测试数据。没有数据就空着不写;例如要求不为空,不输入又不行。(需要在测试项中标注某一个内容为空)如果要对空格进行测试,建议不要讲空格放在数据的最前面或者最后面。

测试结果。不执行,就不填

用例中要不要显示 正向还是反向?    不需要

等价类划分。不要出现重复的情况。也不要出现缺失的输入。


边界值分析法

核心:常在河边走、哪有不湿鞋?

边界值只是一个特定的数据。例如文本框输入6到18个字符:

对应的边界值有:6个字符;18个字符;

次边界:边界附近的值,按照系统规定的单位或者计算方式,一个数据的差异。

字符就是个,一个字符,没有半个字符的书法;

人民币的最小单位是0.01元(1分)。ATM存取款,最小单位是100元,只能是100的整数倍。

如果输入条件规定了值的范围,则应该取达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入的数据

如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一位,比最大个数多一位的数作为测试数据

分析规则说明,找出其他可能的边界条件


案例:

6≤x≤12    5、6、7、11、12、13

6<x<12    6、7、8、10、11、12

文本框输入字符的要求是不大于150字。    null、1、149、150、151

三边形判断中,输入数值的顺序是否影响判断的结果?    否

边长作为特殊的数据,所有的边长遵循的规则是完全一致的。

四边形:任意三条边之和大于第四条边

软件测试--测试用例以及黑盒测试数据的选择方法相关推荐

  1. 软件测试常见概念(软件生命周期、软件开发模型、软件质量模型、软件缺陷管理、软件测试概述、软件测试分类、软件测试与软件开发、软件测试原则、黑盒测试方法、白盒测试方法、性能测试)

    文章目录 1. 软件概述 1.1 软件生命周期 1.2 软件开发模型 1.2.1 瀑布模型 1.2.2 快速原型模型 1.2.3 迭代模型(增量模型或演化模型) 1.2.4 螺旋模型 1.2.5 敏捷 ...

  2. 测试数据管理:测试数据和设计方法是什么?如何管理

    测试数据设计与管理指南 在目前信息与技术革命性增长史上,测试者通常在软件测试生命周期中经历大量的测试数据消耗. 测试人员不仅收集/维护现有来源的数据,而且还生成大量测试数据,以确保其在实际使用中提供产 ...

  3. 《精通自动化测试框架设计》—第2章 2.3节测试数据交互基本方法

    本节书摘来自异步社区<精通自动化测试框架设计>一书中的第2章,第2.3节测试数据交互基本方法,作者陈冬严 , 邵杰明 , 王东刚 , 蒋涛,更多章节内容可以访问云栖社区"异步社区 ...

  4. 软件测试测试用例编写_不要先编写所有软件测试-只需编写一个

    软件测试测试用例编写 Test Driven Development (TDD) is sometimes described as "writing tests first". ...

  5. 软件测试--测试用例

    软件测试--测试用例 1. 测试用例的基本要素 2. 设计测试用例的方法 2.1 测试用例总体设计方法 2.1.1 基于需求去设计测试用例 2.2 具体的设计测试用例的方法 2.2.1 等价类 2.2 ...

  6. 软件测试流程及主要用例设计方法

    软件测试流程及主要用例设计方法 测试新手人门,首先要掌握测试的流程和实际运作项目流程和基础的用例设计方法. 掌握测试和项目流程是了解研发过程中测试的主要工作:掌握最主要的用例设计方法就是掌握测试岗位最 ...

  7. 十、模型自变量选择方法

    在本系列的最后一篇文章中,我们讨论了多元线性回归模型.费尔南多创建了一个模型,根据五个输入参数估算汽车价格. 费尔南多的确获得了一个比较好的模型,然而,费尔南多想要获得最好的输入变量集 本文将详细介绍 ...

  8. 软件测试培训完就业方向怎么选择

    软件测试技术在近几年的发展前景是非常好的,越来越多的人都想要学习软件测试技术,报班是大多数人的选择,但是大家对于"软件测试培训完就业方向怎么选择"这个问题比较迷茫,我们来看看下面的 ...

  9. 独家 | SVP:一种用于深度学习的高效数据选择方法

    作者:Cody Coleman, Peter Bailis, and Matei Zaharia 翻译:杨毅远 校对:王琦 本文长度为1800字,建议阅读7分钟 本文为你介绍SVP方法如何在保证识别准 ...

最新文章

  1. 【ES6】字符串的拓展
  2. Vue 踩坑日志 - 有关路由传参的坑
  3. spring整合mongodb集群
  4. 从零实现一个3D目标检测算法(3):PointPillars主干网实现(持续更新中)
  5. omv检查硬盘坏道_坏道检测与修复
  6. Xdebug部分配置选项说明
  7. 历经十年,Windows 7 生命周期将结束,微软:快换 Windows 10
  8. word的使用(三)
  9. python 成员运算符_Python的“ in”和“ not in”成员资格运算符
  10. 英文论文评审意见_sci英文论文审稿意见怎么写(7)
  11. mysql secure_file_priv 属性相关的文件读写权限问题
  12. go java gc_Golang GC算法
  13. MicroStation里CASS地形数据生成三维地形模型
  14. Kaggle与机器学习流程
  15. Vue生命周期,Vue中在哪个生命周期阶段调用异步请求最佳
  16. 春节后面试别人的经历总结之二,好岗位分享给还在找工作中的软件开发爱好者们【转】...
  17. 什么是BS结构,什么是CS结构?
  18. sas9.2智能平台连接oracle数据库操作说明文档,SAS9.2 SID更新
  19. openssl 漏洞
  20. POJ3208:Apocalypse Someday

热门文章

  1. vue代码可以反编译吗_微信小程序源码提取反编译
  2. 【论文精读】Geometric Structure Preserving Warp for Natural Image Stitching
  3. 精灵之光-来一场奇幻的冒险吧~
  4. Oracle 获取月初、月末时间,获取上一月月初、月末时间
  5. div 在页面上漂浮
  6. 听计算机课评语与建议,听课评语与建议
  7. MySQL数据库与数据仓库有什么区别
  8. (1.2.3.4····)
  9. iOS 使用CoreAudio生成白噪音频数据
  10. discuz3.X不改源码,不用插件,帖内mp3 mp4视频音乐播放