【软件测试专栏】软件测试 — 用例篇

2024-09-02 22:28
文章标签 软件测试 用例 专栏

本文主要是介绍【软件测试专栏】软件测试 — 用例篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:软件测试专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

软件测试 — 用例篇

关键词:测试用例概念、测试用例的万能公式、设计测试用例的方法

目录

  • 软件测试 — 用例篇
    • 一、测试用例
      • 1. 什么是测试用例
      • 2. 为什么需要写测试用例
    • 二、设计测试用例
      • 1. 常规思考+逆向思维+发散性思维
      • 2. 万能公式
    • 三、设计测试用例的方法
      • 1. 基于需求设计
      • 2. 具体的设计
        • 2.1 等价类
        • 2.2 边界类
        • 2.3 正交法
        • 2.4 判定表法
        • 2.5 场景法
        • 2.6 错误猜测法


一、测试用例

1. 什么是测试用例

测试用例是一种具体的测试任务,它描述了一系列的输入、操作以及预期结果,用于验证系统或软件的功能是否符合预期。

测试用例通常包括以下几个部分:

  • 测试目的:描述测试的目标和所要验证的功能。
  • 输入数据:提供给系统或软件的输入数据,包括各种边界情况和异常情况。
  • 操作步骤:详细描述测试人员需要执行的操作步骤。
  • 预期结果:定义每个测试步骤执行后期望得到的结果。
  • 实际结果:记录测试执行过程中的实际结果,与预期结果进行对比。

2. 为什么需要写测试用例

测试中可能会遇到很多问题,诸如:

  • 不知道是否较全⾯的测试了所有功能
  • 测试的覆盖率无法衡量
  • 对新版本的重复测试很难实施(即回归测试无法仅通过⼈⼯测试的方式进行历史功能的回归)
  • 存在⼤量冗余测试影响测试效率
    测试用例的出现就是解决这些问题!

测试用例的作用还可以避免测试⼈员被迫背锅


二、设计测试用例

1. 常规思考+逆向思维+发散性思维

  • 测试用例的编写不仅应当根据有效和预料到的输⼊情况,而且也应该根据无效和未预料到的输⼊情况。
  • 检查程序是否“未做其应该做的”仅是成功的⼀半,测试的另⼀半是检查程序是否“做了其不应该做的”。(是上⼀条原则的必然结果)
  • 计划测试⼯作时不应默许假定不会发现错误

2. 万能公式

设计测试用例的万能公式:功能测试+界⾯测试+性能测试+兼容性测试+易用性测试+安全测试

功能测试
功能测试是⼀个试图发现程序与其外部规格说明之间存在不⼀致的过程。外部规格说明是⼀份从最终用户的⻆度对程序行为的精确描述。功能测试通常是⼀项⿊盒操作。在进行功能测试时,需要对规格说明进行分析以提炼测试用例,本课程中讨论的具体设计测试用例的方法尤其适用于功能测试

界⾯测试
对软件界⾯上所有的内容都需要进行测试

性能测试
性能测试和功能测试的区别是:功能测试检查软件是否做了,而性能测试测试软件做的好不好。

兼容性测试
软件是部署在硬件系统之上,并依赖所需要的软件环境。
如QQ可以在PC端打开,也可以在移动端打开;移动端⼜分为IOS系统和Android系统,且市⾯上⼿机⼜有不同的品牌、不同的机型、不同的版本。软件是否能够在不同的环境下正确运行需要测试⼈员进行验证。

易用性测试
易用性测试的标准是检查产品是否具备简单易上⼿的属性。假如测试⼈员从来没有安装或使用过该产品,作为⼀个新用户,对当前产品是否能够快速适用产品的使用流程。

安全测试
安全测试和性能测试⼀样都是比较⼤的领域。
常⻅的安全问题如:

  • 隐私数据明⽂显⽰。
  • 参数未强校验导致SQL注⼊。
  • 越权:普通用户也可以执行管理员权限的操作。

除了万能公式之外,还有⼀个比较常用的测试类型:弱⽹测试、安装卸载测试

弱⽹测试
弱⽹测试的目的就是尽可能保证用户体验,关注的关键点包括:

  • ⻚⾯响应时间是否可以接受,关注包括热启动、冷启动时间、⻚⾯切换、前后台切换、⾸字时间,
    ⾸屏时间等。
  • ⻚⾯呈现是否完成⼀致。
  • 超时⽂案是否符合定义,异常信息是否显⽰正常。
  • 是否有超时重连。
  • 安全⻆度:是否会发⽣dns劫持、登陆ip更换频繁、单点登陆异常等。
  • ⼤流量事件⻛险:是否会在弱⽹下进行更新apk包、下载⽂件等⼤流量动作。

在这里插入图片描述

安装卸载测试
针对需要进行部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载


三、设计测试用例的方法

1. 基于需求设计

测试⼈员接到需求之后,要对需求进行分析和验证,从合理的需求中进⼀步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试用例。

举例:以该注册邮箱账号需求为例,我们来设计测试用例

在这里插入图片描述
设计测试用例步骤如下

  1. 明确需求中的功能点
    账号注册,账号登陆
  2. 结合万能公式设计测试点
    在这里插入图片描述

2. 具体的设计

2.1 等价类

依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试用例,如
果 这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量
多的 功能覆盖,解决了不能穷举测试的问题。

等价类分类:

  • 有效等价类:对于程序的规格说明书是合理的、有意义的输⼊数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满⾜需求的集合。

步骤
根据等价类设计测试用例的方式:
1.确定有效等价类和无效等价类
2.编写测试用例,设计具体测试数据

缺点

等价类只考虑输⼊域的分类,没有考虑输⼊域的组合,需要其他的设计方法和补充。

2.2 边界类

边界值分析法就是对输⼊或输出的边界值进行测试的⼀种⿊盒测试方法。通常边界值分析法是作为对
等 价类划分法的补充,这种情况下,其测试用例来⾃等价类的边界。

边界值包含:边界值+次边界值

  1. 输⼊框⻓度为1-11,取边界值为:1、11、12、0
  2. 运动员的参赛项目为1-3项,取边界值为:0项、1项、3项、4项
  3. 查询⾯⻚⾯有999行,每50行为⼀⻚,取边界值为:输出0行、1行、50行、51行、999行
2.3 正交法

正交试验设计(Orthogonal experimentaldesign)是研究多因素多⽔平的⼀种设计方法,它是根据正交
性,由试验因素的全部⽔平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析
了 解全⾯试验的情况,找出最优的⽔平组合。正交试验设计是⼀种基于正交表的、高效率、快速、经
济的试验。

正交表的构成:因素数、⽔平数、行数。
因素:对指标的影响条件,通常是正交表中的⼀列。
⽔平:因素对应的可选项。

正交表的性质:
每⼀列中,不同的数字出现的次数相等。
任意两列中数字的排列方式⻬全而且均衡

正交法设计测试用例的步骤:

  1. 找到因素和⽔平
  2. 用allparis⼯具⽣成正交表
    a. 将因素和⽔平写⼊Excel表格中
    b. allparis目录下创建新的⽂本⽂件new.txt,复制Excel中的因素和⽔平,直接粘贴到⽂本中保存
    并退出
    c. 使用allparis命令⽣成正交表:allparis.exe new.txt>zhengjiao.txt
  3. 根据正交表编写测试用例
  4. 补充遗漏的重要测试用例

在后续的文章中进行详细介绍 》》》》软件测试专栏

2.4 判定表法

判定表是⼀种表达逻辑判断的⼯具,形如:
在这里插入图片描述

根据判定表法设计测试用例的步骤:

  1. 确认需求中输⼊条件和输出条件
  2. 找出输⼊条件和输出条件之间的关系
  3. 画判定表
  4. 根据判定表编写测试用例
2.5 场景法

现在的软件⼏乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同⼀事件不同的
触发顺序和处理结果就形成事件流。

通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的⼀种方法。用例场景来测试
需求是指模拟特定场景边界发⽣的事情,通过事件来触发某个动作的发⽣,观察事件的最终结果,从
而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着⼿其他的场景分析。
场景法⼀般包含基本流和备用流,从⼀个流程开始,通过描述经过的路径来确定的过程,经过遍历所
有的基本流和备用流来完成整个场景。

场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景

该方法可以比较⽣动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容
易理解和执行。

典型的应用是是用业务流把各个孤立的功能点串起来,为测试⼈员建立整体业务感觉,从而避免陷⼊
功能细节忽视业务流程要点的错误倾向
在这里插入图片描述
根据场景法设计测试用例的步骤

  1. 确定基本流
  2. 确定备选流
  3. 根据备选流补充测试用例
  4. 编写测试用例
2.6 错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个⼈直觉,推测出软件可能存在的缺陷,从而
针对性地设计测试用例的方法。

这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个⼈的经验和直觉。

错误推测法和目前流行的“探索式测试方法”的基本思想⼀致,这类方法在敏捷开发模式下的投⼊产
出比很高,被⼴泛应用于测试。


在这里插入图片描述

这篇关于【软件测试专栏】软件测试 — 用例篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131239

相关文章

十四、我们应当怎样做需求分析:子用例与扩展用例

用例模型作为UML中4+1视图中非常重要的一员,非常集中地体现了面向对象的分析与设计思想。用例模型将现实世界中连续的一个一个业务流程,按照场景划分到了一个一个的用例中。由于场景的出现,使得用例中的业务流程存在着高度的内聚性,从而成为了日后各种对象的雏形。同时,在用例分析中,又将那些存在于各个用例中的,相同或相近的业务操作提取出来,形成一个一个的子用例或扩展用例,又体现了面向对象设计中的复用性。现在

【轻松上手postman】入门篇:如果根据接口文档写postman接口用例

在我们平时的测试工作中除了最基本的网页测试外,也会遇到没有页面但需要验证内部逻辑正确性的接口测试任务,在遇到没有网页的测试任务时,我们就要使用到接口测试工具来模拟对程序代码触发。 在接到接口测试任务时,一般都会拿到接口需求文档,没接触过接口测试的人看到接口文档正常反应一脸闷🤣不知如何下手怎么开始测试😓,下面我就来讲讲如何将接口文档上的一个个接口转换成postman用例 首先需要安装

欢迎大家关注我的【白话算法和数据结构】专栏

学习ACM也有一年半了,曾经对什么算法都不懂,现在对很多算法都有一定的了解,我们acm集训队都是学长学姐带学弟学妹,其实我们将的学弟学妹大部分都不能理解,当初我听杨大神讲课也是一样,听和没听一样,但是有学长告诉你有这个算法也是好的,只是你知道哦,原来这道题要用这道算法,我以前傻逼的暴力解决~~~然后他告诉你有这个算法,你自己去学,去网上搜资料学,所有人都是这么走过来的,但是网上能把算法将的跟白话一

Java专栏介绍

专栏导读 在当今这个技术飞速发展的时代,Java作为一门成熟且广泛应用的编程语言,一直是软件开发领域的中坚力量。本“Java技术”专栏旨在帮助读者深入理解Java编程语言的精髓,掌握其核心概念与高级特性,并通过实战案例提升编程技能。 专栏目录 一、Java入门知识与基本使用二、Java变量三、运算符四、控制结构五、数组、排序和查找六、面向对象编程(基础)七、面向对象编程(中级)八、面向对

DoIP-ISO 13400-1 道路车辆-基于互联网协议的诊断通信(DoIP)-第 1 部分:一般信息和用例定义 (1/2)

如下内容基于2011版本的 ISO 13400开展,内容较多,拆分为2篇,此篇为 1/2。 前言 ISO(国际标准化组织)是一个全球范围内的国际标准机构联合体(ISO 成员机构)。国际标准的制备工作通常通过 ISO 技术委员会进行。每个相关成员机构都有权在已建立的技术委员会中代表其利益。与 ISO 保持联系的国际组织、政府和非政府组织也参与这项工作。ISO 与国际电工委员会(IEC)在所有电气

软件测试之压力测试知识总结

软件测试之压力测试知识总结 一、压力测试概述 压力测试(Stress Testing)是软件测试中的一种重要手段,用于验证软件应用程序在极端负载条件下的稳定性和可靠性。其主要目的是在软件承受极高负载时,测量其健壮性、错误处理能力和恢复能力,确保软件在危急情况下不会崩溃或表现异常。压力测试也被称为耐力测试,在软件工程中占有举足轻重的地位。 1.1 压力测试的目的 压力测试的主要目的包括:

软件测试中常用的linux命令总结

1、修改ssh登陆密码命令:passwd 2、新建一个名字为dbuser的Linux新用户:(sudo adduser dbuser) 4、./frps -c ./frps.ini(FRP启动命令) 5、lsof -i:7500(监听端口) 6、sh reload.sh master(文件后缀为sh时,nginx启动命令);( 文件为执行文件启动命令:./nginx -s reload) 7、sh

软件测试永远的家——银行测试,YYDS

为什么做金融类软件测试举个栗子,银行里的软件测试工程师。横向跟互联网公司里的测试来说,薪资相对稳定,加班少甚至基本没有,业务稳定。实在是测试类岗位中的香饽饽! 一、什么是金融行业 金融业是指经营金融商品的特殊行业,它包括银行业、保险业、信托业、证券业和租赁业 往往涉及证券、银行、基金、信托、保险、投行、期货等领域 二、金融行业的业务特点 随着金融行业的业务不断增加,金融交易模式的不断变化,

软件测试学习笔记丨Pytest的使用

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22158 1. 简介 pytest是一个成熟的全功能python测试框架测试用例的skip和xfail,自动失败重试等处理能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试,接口自动化测试pytest有很多第三方插件,并且可以自定义扩展,如pytest-

【软件测试】设计测试用例

📕引言 本文章重点目标: 测试用例的概念 设计测试用例的万能思路 设计测试用例的方法 ◦ 基于需求的设计方法◦ 具体的设计方法 ▪ 等价类 ▪ 边界值 ▪ 判定表法 ▪ 正交法 ▪ 场景法 ▪ 错误猜测法 🍀测试用例 🚩概念 什么是测试用例? 测试用例(TestCase)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要