当前位置:网站首页>想要写出好的测试用例,先要学会测试设计
想要写出好的测试用例,先要学会测试设计
2022-07-30 17:24:00 【TEST_二 黑】
正确认识测试设计
测试设计是从特定的测试依据中得到测试用例,是为了实现特定测试覆盖的标准化的方法。
测试依据指的是有关测试的信息,比如项目背景、业务需求、领域知识、团队、进度、预算、风险等等,这些因素在经过测试分析后就是特定的测试依据,它们影响着测试设计与执行。
测试设计是测试整个过程的总纲,通常是测试人员的测试思路的体现。在测试界中,有着测试设计是测试的灵魂,也是测试人员的必修课之说。
测试设计的原则及要考虑的因素
在测试过程中,测试人员不可能穷举所有的测试场景或组合,因此在设计测试用例时,要学会抓住测试的要点或关键点,做合理的取舍,这些要点或关键点需要进行充分分析与设计,以达到理想的覆盖率。
测试设计主要考虑的因素如下:
1、需求分析书、产品设计文档等
2、用户实际使用的场景
3、测试需求的目标
4、被测试的对象
5、测试的方法。
测试设计的基本思路
设定测试项包含哪些测试类型,比如功能测试、性能测试、安全性测试、可靠性测试、其他测试等,清楚了解此次的测试类型是否有遗漏。
设定测试项的优先级,先设计高优先级测试项的测试用例,再设计低优先级测试项的测试用例。如果缺少风险分析意识或是风险分析能力不足,就先把所有测试项的测试用例写出来,然后再组织挑选测试用例的优先级。
测试用例在设计时,需要将具有相类似功能的测试项进行抽象并归类,不是简单的编写,更不是简单地复制文档的内容,设计测试用例是需要思考和优化的。
先设计主流程的、正向的测试用例,再设计逆向的、负面的(异常的、非法操作的)、扩展性的流程或功能的测试用例。
试图找出系统或组件的薄弱环节、边界点等,因为这些特殊区域存在更多的缺陷,需要得到更多的测试来降低测试的风险,达到所设定的测试目标。
如何运用测试设计
测试设计方法有很多,主要有以下几种:
不同阶段运用的测试设计方法
在项目或是产品的测试过程中,在不同的测试阶段,存在不同的测试方法。以开发阶段划分,测试过程可以分为单元测试、集成测试、系统测试和验收测试。
单元测试
单元测试是对程序模块进行正确性的检验。如果单元测试目标是达到100%判定覆盖率,那测试设计方法就要采用判定逻辑的逻辑覆盖方法,通过分析和设计,达到测试目标。
集成测试
集成测试是在单元测试的基础上,将所有的程序进行整合的验证。程序的整合由接口完成。集成测试的目标是覆盖所有的接口功能及接口性能的验证,那测试方法就会存在功能性的、非性能的验证。
系统测试
系统测试是验证系统所有的功能、模拟所有软件用户的操作。如果系统功能测试目标是覆盖其各种应用场景,这时测试就要基于场景的设计方法,以求达到测试计划中定义的测试目标。
从上面可以看到,逻辑覆盖、基本路径覆盖属于白盒方法、结构化方法,一般应用于单元测试或代码层次上,但逻辑覆盖不局限于代码层同学可以应用于业务层,这时就需求我们画出业务流程图,通过对业务流程图的分析,设计测试用例覆盖其判定或分支 、基本路径 ,达到业务流程的良好覆盖,比较彻底地支持业务的正常远行。
因此,无论是单元测试、集成测试还是系统测试,都是有一定的应用场景和测试目标,或者说,在特定的场景下选择合适的方法。在软件测试各个阶段中,没有最好的测试设计方法,只有最适合的设计方法。
没有任何单一的测试手段就能满足测试设计的需求,而是运用多种方法,才能满足测试需求。例如,等价类划分和边界值分析就是经常结合起来使用。
另外 ,在单元测试中,我们主要采用逻辑覆盖访求(包括语句覆盖、判定覆盖、MC/DC等)来进行测试。但基于输入域的方法(如等价类划分、边界值分析等)也需求被运用在变量引用、函数参数或接口参数的测试上,这就是基于需求的测试方法(黑盒测试方法)和结构化的测试方法(白盒测试方法)相互结合、形成灰盒测试方法。
自动化测试学习资源

这些资料,以及上方的自动化测试进阶线路详细讲解,对于想进阶测试的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
边栏推荐
猜你喜欢

Insert data into MySQL in C language

JMeter Notes 3 | JMeter Installation and Environment Instructions

微信小程序picker滚动选择器使用详解

Error EPERM operation not permitted, mkdir 'Dsoftwarenodejsnode_cache_cacach Two solutions

Error occurred while trying to proxy request The project suddenly can't get up

论文阅读之《Underwater scene prior inspired deep underwater image and video Enhancement (UWCNN)》

查询表中开始日期与结束日期

Weka 3.8.6安装与Weka 3.8.6功能介绍

字符串复制、拼接、比较以及分割函数总结(一)

swagger使用教程——快速使用swagger
随机推荐
强烈推荐APP破解常用工具集合!
FP6606ACAW4 TQFN-20L (3mmx3mm) USB双端口充电控制器 百盛电子代理
DLCM - 基于列表上下文信息的重排序模型
习题:变量、常量和基本数据类型
How Google earth engine realizes the arrangement and selection of our time list
bean的生命周期
升级Win11后不喜欢怎么退回Win10系统?
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
代码越写越乱?那是因为你没用责任链
weiit新零售小程序如何探索数字化门店的破局之路
Servo System of Hydraulic Steering Gear Based on Fuzzy PID
Excel导入和导出
主流的深度学习推理架构有哪些呢?
论文阅读之《DeepIlluminance: Contextual IlluminanceEstimation via Deep Neural Networks》
FastJson反序列化漏洞(复现)
Moralis去中心化Web3应用开发教程
Navisworks切换语言
Promise入门到精通(1.5w字详解)
592. Fraction Addition and Subtraction
全球架构师峰会