史上最详细的测试用例设计方法说明
前言
大家好,我是洋子。今天给大家分享在做软件测试时,最容易忽略但却最重要的知识点,那就是测试用例设计。用例设计就是软件测试工程师的灵魂,体现了你的测试思维,以及对业务需求的熟悉程度。有时侯出现线上事故,可能就是测试用例没有覆盖全面
测试用例概述
考虑部分同学是转行做软件测试,我先说一下测试用例是什么
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求
看到测试用例的定义是不是有点晕,通俗的来讲,测试用例就是一个参照物,在测试过程中,会按照测试用例来逐条执行测试。测试用例最主要是有4部分组成:
- 用例标题
- 前置条件
- 操作步骤(输入)
- 预期结果(输出)
对于测试用例的第3部分,操作步骤可以理解成是输入
,比如我们在手机键盘上输入数字或者字母,除此之外,常见的输入还有点击按钮、长按、滑动屏幕等等,注意这里的输入需要满足前置条件
在完成输入以后会有一个预期的结果,可以理解成输出
,常见的输出有(1)弹窗 (2)跳转新页面 (3)tosat 提示 (4)展示文字、图片等
那测试用例到底怎么写呢,可以看看下面这个例子,现在我需要测试某个网站的登陆功能,我设计的1条测试用例如下:
这条用例是为了验证登陆功能当中成功登陆的情况,所以用例标题为01_登陆功能_成功登陆
,标题里面加入编号是为了方便管理。操作步骤是在符合前置条件下进行,即在用户已注册并且未登陆的情况下,输入指定位数的用户名和密码,预期结果就是有弹窗提示,跳转主页
常见用例设计方法
测试用例最核心的部分,大家可以想想是哪一部分,毫无疑问是操作步骤,咱们平常做测试也就是根据测试用例里面的操作步骤在点点点,怎么点才能更有效率,并且把测试覆盖得更全面呢
于是咱们需要学习测试用例的设计方法,本篇文章主要是介绍2种黑盒测试 用例设计方法,分别是等价类和边界值,这是实际工作当中最常用的2种
等价类
等价类,等价类从字面上来理解就是相同的种类,先看一下等价类的定义:
- 等价类是把用户所有可能输入的数据,即程序的输入域划分成若*分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例
- 使用等价类设计测试用例时,要同时考虑有效等价类和无效等价类
- 有效等价类:对于程序的规格说明(需求文档)来说,是合理的、有意义的输入数据所构成的集合;
- 无效等价类:对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合
举个例子便于理解有效等价类和无效等价类,现在我要测试两个1-100整数(包含1和100)相加,请你利用等价类设计测试用例
按照题目先划分出有效等价类和无效等价类
有效等价类:
- 【1】输入的都是1-100的整数
无效等价类:
- 【2】输入小于1的整数
- 【3】输入大于100的整数
- 【4】输入空
- 【5】输入字母和特殊字符
- 【6】输入空格
确定有效等价类和无效等价类后,我们就可以设计测试用例
用例编号 |
输入的两个数据 |
预期结果 |
覆盖的等价类 |
---|---|---|---|
1 |
99,18 |
正常展示整数相加结果 |
有效等价类【1】 |
2 |
-2, -3 |
相加失败 |
无效等价类【2】 |
3 |
300,400 |
相加失败 |
无效等价类【3】 |
4 |
空,空 |
相加失败 |
无效等价类【4】 |
5 |
abc,123 |
相加失败 |
无效等价类【5】 |
6 |
空格,123 |
相加失败 |
无效等价类【6】 |
边界值
另一种,用例设计方法叫边界值。边界值的定义如下:
边界值分析法就是对输入或者输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界
举一个例子来帮助理解边界值,一个输入的文件应包括1~255个记录, 那么可以分析出6个边界点,分别是略小于最小值0,最小值1,略大于最小值2,略小于最大值254,最大值255和略大于最大值256。这6个点即可作为测试用例的输入数据
等价类和边界值往往结合起来使用,边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例;
- 将软件的输入或者输出参数进行等价类划分;
- 在等价类的基础之上进行边界值分析。一般情况下,假如边界值已经由等价类划分覆盖,则可以不予考虑;
- 将边界值进行组合,作为测试用例的输入数据;
再回顾一下上述介绍等价类时的例子,测试两个1-100整数(包含1和100)相加,现在我们将等价类和边界值用例设计法结合起来,用例1 可以改成输入整数1,2,99,100,用例2改成 输入整数0,用例3改成输入101。经过这样的改造,我们的用例既经过了等价类划分覆盖有效和无效等价类,也进行了边界值分析,覆盖到边界值的测试
细心的小伙伴会问,为什么我们要用边界值去设计测试用例呢?这个是由大量的测试实践经验得出,大量的Bug往往发生在输入定义域
或者输出值域
的边界
上,而不是在内部。因此,我们针对边界情况设计测试用例,一般能发现更多的问题
再看看为什么要用等价类去设计测试用例,对于一个程序,往往可以输入的数据非常多,就拿一个可输入11位的密码框来说,我们不可能实现穷举测试
,可以从大量的可能数据中选取一部分具有代表性的数据作为测试用例,这样极大提高测试效率同时保证了测试的质量,因为经过等价类划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值
更多用例设计方法
- 功能图
- 场景法
- 因果图
- 错误推测
- 判定表
- 正交试验
- 状态迁移
除了等价类和边界值,还有很多测试用例的设计方法,在上面已经列出来了。我这里再讲讲错误推测法
,这个方法是基于经验
和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例。在企业里面,当你熟悉业务以后,就可以根据业务的特点去定制化的设计测试用例作为补充了
用例设计考虑层面
前面我们介绍了等价类和边界值的用例设计方法,这两种黑盒用例设计方法所产生的用例都是属于功能测试层面,除了功能方面,我们在设计测试用例时,还应该考虑到安全、性能、兼容性这三个层面
功能测试用例
还是登陆功能举一个例子,对于我们测试人员该怎么设计用例呢,先从功能层面考虑,我们比较容易能想到以下用例:
- 输入已注册的用户名和正确的密码,验证是否登陆成功
- 输入已注册的用户名和不正确的密码,验证是否登陆失败
- 输入未注册的用户名和任意密码,验证是否登陆失败
- 用户名和密码两者都为空,验证是否登陆失败
- 用户名和密码两者之一为空,验证是否登陆失败
- 如果登陆功能启动了验证码功能,在用户名和密码正确的前提下,输入正确的验证码,是否登陆成功
- 如果登陆功能启动了验证码功能,在用户名和密码正确的前提下,输入错误的验证码,验证是否登陆失败
列出这些测试用例后,你是不是感觉上面的测试用例已经涵盖了主要的功能测试场景,但是在高级测试工程师眼中,这些用例还不够,再看看下面这些测试用例你是否考虑到
- 用户名和密码是否大小写敏感
- 页面上的密码框是否加密显示
- 后台系统创建的用户第一次登录成功时,是否提示修改密码
- 忘记用户名和忘记密码的功能是否可用
- 前端页面是否根据设计要求限制用户名和密码长度(若有限制长度位数,则可以根据边界值设计测试用例)
- 如果登录功能需要验证码,点击验证码图片是否可以更换验证码,更换后的验证码是否可用
- 刷新页面是否会刷新验证码
- 如果验证码具有时效性,需要分别验证时效内和时效外验证码的有效性
- 用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面
- 不同级别的用户,比如管理员用户和普通用户,登录系统后的权限是否正确
- 页面默认焦点是否定位在用户名的输入框中
- 快捷键 Tab 和 Enter 等,是否可以正常使用
- 鼠标光标是否只在固定位置才显示可点击或编辑状态
看完以后你是不是觉得原来一个简单的登陆功能可以考虑这么多测试点,用户登录功能的测试用例设计还没结束。我们应该知道软件的需求包含显式功能性需求
(指的是软件本身需要实现的具体功能)和隐式功能性需求
(即非功能性需求),所以除了功能以外,我们还要考虑安全、性能、兼容性
层面的用例
安全性测试用例
- 用户密码及个人信息是否加密存储;
- 用户密码及个人信息在网络传输过程中是否加密;
- 密码是否具有有效期,密码有效期到期后,是否提示需要修改密码;
- 不登录的情况下,在浏览器中直接输入登录后的 URL 地址,验证是否会重新定向到用户登录界面;
- 密码输入框是否不支持复制和粘贴;
- 密码输入框内输入的密码是否都可以在页面源码模式下被查看;
- 用户名和密码的输入框中分别输入典型的“SQL 注入攻击”字符串,验证系统的返回页面;
- 用户名和密码的输入框中分别输入典型的“XSS 跨站脚本攻击”字符串,验证系统行为是否被篡改;
- 连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解;
- 同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期;
- 同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性。
- 登录接口返回的数据是否对用户信息进行加密显示
- 登录UA获取,确保是用户本人登录
性能测试用例
- 单用户登录的响应时间正常网络环境下是否小于 2 秒;
- 单用户登录时,后台请求数量是否过多;
- 高并发场景下用户登录的响应时间是否小于 5 秒;
- 高并发场景下服务端的监控指标是否符合预期;
- 高集合点并发场景下,是否存在资源死锁和不合理的资源等待;
- 长时间大量用户连续登录和登出,服务器端是否存在内存泄漏。
- 防止同一用户恶意并发
兼容性测试用例
- 不同浏览器下,验证登录页面的显示以及功能正确性;
- 相同浏览器的不同版本下,验证登录页面的显示以及功能正确性;
- 不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性;
- 不同分辨率的界面下,验证登录页面的显示以及功能正确性
复杂系统如何设计用例
对于复杂系统的用例设计,有着非常重要的一步,就是拆解功能点
。那应该怎么拆解功能点呢,就拿B站的播放页面来说,别看只有一个页面,但是上面包含了非常多的功能点,通过这张图片,我们至少能拆出如下功能点:
- 点赞
- 投币
- 收藏
- 分享
- 评论
- 弹幕
- 播放页面Tab、文案与信息展示
拆解完功能点以后,我们就可以依据各自的功能点利用等价类、边界值、错误推测等方法设计测试用例,单功能的用例设计完成以后,还需要使用场景法
设计场景化的测试用例,覆盖到用户的操作流程,比如
从主页点击视频,跳转到视频播放页面,在播放页面点击评论Tab跳转到评论页面,点击评论按钮,进行评论,评论完成后,查看评论列表
这就一个用户操作的基本流程,再举一个场景化的例子,我们都用过淘宝,从挑选商品->加入购物车->从购物车付款
,这就是购买商品的核心场景
场景法偏重于大的、复杂的业务流程,目的是用业务流把各个孤立的功能点串起来
,所以在用场景法设计用例时,测试人员必须非常熟悉整体业务流程,才能设计出完整的场景化测试用例,想要彻底弄懂业务流程我们可以细看需求文档、多和产品经理沟通交流还可以亲自体验功能
结尾
好了,能完整的看到这里,说明你已经是一个非常想学好设计测试用例设计的同学了,想要设计好测试用例,掌握了测试用例的设计方法,还需要勤加练习,你设计出的测试用例体现出你的测试思维,而测试思维的养成也不是一天两天就能形成,它需要不断的积累和大量的测试实践
上一篇: [用例设计]成对测试 测试用例设计 - 概念 (1)
下一篇: 测试用例设计技巧
推荐阅读
-
史上最详细的测试用例设计方法说明
-
41 个下载免费 3D 模型的最佳网站-使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 17. Clara.io Clara.io 是一个创建 3D 内容的全球平台,也是一个培养新 3D 艺术家的社区。Clara.io 提供+100,000个免费的3D模型,包括OBJ,Blend,STL,FBX,DAE,Babylon.JS,Three.JS格式,用于 Clara.io,Unity 3D,Blender,Sketchup,Cinema 4D,3DS Max和Maya。 使用说明:免费,标准和专业帐户仅供个人使用,如果您需要将 clara.io 用于商业用途,请与销售团队联系。 18. 3DExport 3DExport是一个市场,您可以在其中购买和销售用于CG项目的3D模型,3D打印模型和纹理。它提供15 +不同的3D格式供下载,如3DS MAX(.max),Cinema4D(.c4d),Maya(.mb,.ma),Lightwave(.lwo),Softimage(.xsi),Wavefront OBJ(.obj),Autodesk FBX(.fbx)等。它还提供15种不同的语言! 使用说明:免费下载仅供个人和非商业用途。 19. 3D Warehouse 3D Warehouse是一个开放的库,允许用户共享和下载SketchUp 3D模型,用于建筑,设计,施工和娱乐!任何人都可以免费制作,修改和重新上传内容到3D仓库,您可以找到任何您能想到的东西,如家具,电子产品,室内产品等。 使用说明:3D Warehouse中的所有模型都是免费的,因此任何人都可以下载文件以用于SketchUp甚至其他软件,如AutoCAD,Revit和ArchiCAD。 20. CadNav.com CadNav是CGI平面设计师和CAD / CAM / CAE工程师的在线3D模型库,我们提供超过50000 +免费3D模型和CAD模型下载。在CadNav网站上,您可以下载高质量的多边形网格3D模型,3D CAD实体对象,纹理,Vray材料,3D作品,CAD图纸等。 使用说明:免费下载仅供个人和非商业用途。 21. All3dfree.net 就像网站名称一样,它提供免费的3D模型,还包括Vray材料,CAD块,2d和3d纹理集合,无需注册即可免费下载。它是不断更新的,因此您可以查找或请求3DS,MAX,C4D,skp,OBJ,FBX,MTL等格式的模型。 使用说明:所有资源均不允许用于商业用途,否则您将承担责任。 22. Hum3D 自2005年以来,Hum3D帮助来自3多个国家的80D艺术家节省3D建模时间,并制作逼真的3D模型,用于电影,视频游戏,AR应用程序和可视化。所有模型均由首席3D艺术家进行验证,他们检查其是否符合专业要求和最新的3D建模标准。 使用说明:免费下载仅供个人和非商业用途。 23. Artist-3D.com 艺术家-3D 库存的免费 3D 模型下载按通用类别排序。它为人体解剖学、汽车、家具、火箭、卫星等模型提供 AutoDesk 3DS Max 格式。您还可以在浏览他们的网站时找到教程和类似类型的建模。 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 24. Free the models 就像本网站的标题一样,它为3d应用程序和3d游戏引擎提供免费的内容模型。您可以为您的任何项目找到许多有趣且有用的模型!它提供3ds,wavefront,bryce,poser,lightwave,md2和unity3d格式的模型。还有一个很棒的纹理集合,可以在您最喜欢的建模和渲染程序中使用。 使用说明:您从这里下载的所有内容都可以免费使用,除非它不能包含在另一个免费的网络或CD收藏中,也不能单独出售。否则,您可以在商业游戏,3D应用程序或渲染作品中使用它。您不必提供信用,但如果您这样做,那就太好了。 25. Resources.blogscopia 本网站由一家名为Scopia的公司创建。他们制作3D图像和视频,您可以找到许多为CGI工作的信息架构设计的模型,所有这些都可以在现实生活中使用。您可以免费下载它们,但是,如果您想一次下载它们,您可以支付 3 到 9 欧元。 使用说明:您可以免费下载模型部分的所有文件。每个压缩文件都包含您也可以在此处找到的许可证。基本上,您可以对文件执行任何操作。唯一的限制是不归属于Scopia的重新分发。 26.ambientCG 1000+公共领域PBR材料适合所有人!环境CG是使用许多不同的方法和资产类型创建的,例如照片纹理(PBR),贴花(PBR),图集(PBR),照片纹理(普通),物质存档(SBSAR),雕刻画笔,3D模型和地形。您可以在所有项目中*使用它们! 使用说明:在 ambientCG 上提供下载的所有 PBR 材料、画笔、照片和 3D 模型均根据知识共享 CC0 1.0 通用许可提供。您可以复制、修改、分发和执行作品,即使是出于商业目的,也无需征得许可。信用将不胜感激。 不要满足于平庸的大理石纹理 - 立即使用我们的免费PBR大理石纹理升级您的3D设计。 27.Pixar One Twenty Eight 这是一个提供官方动画行业经典纹理的网站:皮克斯,创建于 1993 年,该纹理库包括 128 个重复纹理,现在免费提供。 它包含您来到的纹理,包括砖块和动物毛皮。肯定会有一些你可以使用的东西。 使用说明:皮克斯动画工作室的《Pixar One Twenty Eight》根据知识共享署名4.0国际许可协议进行许可。即使出于商业目的,您也可以重新混合、调整和构建您的作品,只要您以相同的条款对新创作进行信用和许可。 访问数以千计的免费纹理并提升您的设计游戏 - 立即开始下载! 28. 3DXO 即使有近 620 个免费贴纸可供下载,3DXO 也不是最大的资源,但它的内容非常有用,不需要注册。无论是简单的墙壁或地板,还是一些奇怪的小东西,您都需要的纹理都可以在此网站上看到。 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 29. 3DModelsCC0 3DModelsCC0 与其他产品的不同之处在于它包含超过 250+ 个高质量 3D 模型,并且本网站上的所有内容都是免费的,完全是公共领域!使用我们的模型时无需信用或归属! 使用说明:为每个人提供完全免费的公共领域内容。 30.Sketch up texture club Sketchup Texture Club是一个非营利性的教育和信息门户网站,由3D社区的图像促进协会管理,特别强调面向学生和建筑和室内设计专业人士的可视化和渲染技术,以及所有正在学习3D可视化的人。 使用说明:您无需支付版税或使用费。纹理可以免费下载和使用。不允许将纹理作为竞争产品出售或重新分发,即使图像被修改也是如此。 31. FlippedNormals FlippedNormal 是一个提供计算机图形和 3D 资产的市场,您可以找到许多用于雕刻、建模、纹理、概念艺术、3D 模型、游戏资产或课程的高级资产! 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 32. NASA 3D NASA 3D网站是一个在线门户,提供与太空和各种NASA任务相关的大量三维模型和模拟。该网站是用户友好的,并提供有关每个型号的详细信息。该网站允许用户探索和下载几种不同格式的模型,包括 OBJ、STL 和 FBX,只需单击下载按钮即可。 使用说明: 要下载模型,只需单击模型页面上的下载按钮并选择所需的格式。 33. 3DAGOGO (Astroprint) 3DAGOGO 是一个提供广泛 3D 模型的网站,包括角色、车辆和建筑物。3DAGOGO 的独特功能之一是它专注于适合 3D 打印的模型,使其成为希望创建物理原型或模型的设计师的绝佳资源。要使用 3DAGOGO,设计师只需在网站上搜索他们正在寻找的模型类型,然后下载 STL 格式的文件。 使用说明: 要使用 3DAGOGO,只需搜索所需的 3D 模型类型并下载 STL 格式的文件。根据需要自定义模型,并确保在将其用于商业目的之前检查使用权限。 34. FreeCAD FreeCAD是一款了不起的3D建模软件,可让您在计算机上创建令人难以置信的3D设计。该软件可免费下载和使用,它提供了广泛的工具和功能,可用于创建用于各种目的的3D模型。 该网站易于浏览,您可以找到开始使用FreeCAD的所有必要信息。此外,该网站还提供一系列教程和指南,可帮助您了解 3D 建模的来龙去脉。 使用说明: 要下载模型,请访问网站并从库中选择所需的模型。该网站还提供了一系列使用该软件的教程和指南。 35. Pinshape Pinshape是一个提供一系列3D打印模型的网站。网站上提供的型号质量很高,因此您可以确保您的最终印刷产品看起来很棒。该网站提供了广泛的模型,包括从家居用品到小雕像和珠宝的所有物品。 但这还不是Pinshape所能提供的全部!该网站还允许用户上传和共享自己的3D模型。这意味着您不仅可以下载出色的模型,还可以通过分享自己的设计为社区做出贡献。此外,Pinshape 提供了一系列自定义选项,因此您可以调整和调整模型以满足您的特定需求。 使用说明: 要下载模型,请在网站上创建一个帐户,搜索所需的模型,然后单击下载按钮。该网站还为每种型号提供了一系列定制选项。 36.Yeggi Yeggi 提供了大量免费的 3D 模型,您可以下载各种格式的模型,例如 STL、OBJ 和 FBX。该网站易于使用,您可以按关键字、类别或特定网站搜索模型。 Yeggi 对于任何寻找 3D 模型的人来说都是一个很好的资源。它提供了大量的模型集合,从日常物品到复杂的机械,以及介于两者之间的一切。该网站的收藏量在不断增长,每天都有新的型号增加。 使用说明: 要下载模型,请在网站上搜索所需的模型,然后单击下载按钮。该网站还提供指向托管模型的原始网站的链接。 37. Open3DModel 来自开放3D模型的图像 Open3DModel具有各种类别的模型,包括建筑,车辆和角色。无论您需要建筑物,汽车还是人的3D模型,都可以在此网站上找到。 该网站易于浏览,您可以按类别或关键字搜索模型。每个模型都附带预览图像和详细信息,例如文件格式、大小和多边形数量。此信息可以帮助您选择适合您需求的模型。 使用说明: 要下载模型,请访问网站,从库中选择所需的模型,然后单击下载按钮。 使用最好的 3D 资产管理工具简化您的 3D 制作流程。立即试用它们,将您的 3D 项目提升到一个新的水平! 38. 3DExport 对于那些为其 3D 设计项目寻找 3D 模型、纹理和其他资源的人来说,该平台是一个很好的资源。该网站有大量模型可供选择,包括 3D 打印对象、游戏资产等。用户可以按类别、文件格式或价格范围浏览,以找到适合其项目的完美资源。此外,3DExport 还提供一系列教程和其他 3D 资源,以帮助用户提高技能并创建更令人印象深刻的设计。 使用说明: 要使用 3DExport,只需创建一个帐户并浏览可用型号。您可以按类别、格式和价格进行搜索,以找到所需的型号。找到喜欢的模型后,只需下载它并开始在您的项目中使用它。 39.Blend Swap Blend Swap是一个社区驱动的市场,提供与Blender软件兼容的各种免费3D模型。该平台允许用户共享和下载模型、纹理和其他资产,以便在他们的项目中使用。 使用说明: 创建免费帐户后,您可以浏览社区上传的大量3D模型。当您找到要使用的一个时,只需下载它并将其导入您选择的 3D 软件即可。 40. 3DShook 3DShook 是一个高级 3D 模型市场,提供一系列用于建筑、游戏等各个行业的高质量模型。该平台提供基于订阅的模型,具有不同的定价计划,允许用户访问一系列模型。 使用说明: 注册免费帐户后,只需浏览3D模型库,选择您喜欢的模型,然后以您需要的格式下载它们。 41. Smithsonian X 3D 史密森尼 X 3D 对于正在寻找历史文物和文物的高质量 3D 模型的设计师来说,这是一个独特的资源。该平台提供了大量3D模型,这些模型是根据史密森尼博物馆和研究中心中的真实物体扫描创建的。 使用说明: