软件测试-测试用例

软件测试-测试用例

1.什么是测试用例

为了实施测试而向被测系统提供的一组集合。这组集合包括测试环境、操作步骤、测试数据、预期结果等要素。

举例:对一个垃圾桶设计测试用例

在这里插入图片描述

2.设计测试用例的万能公式

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

功能测试:对产品的功能设计测试用例(根据需求文档、经验)

性能测试:对各种参数进行校验等等,涉及比较广。

界面测试:对每个元素的大小、颜色、形状、跳转等都需要进行测试。

兼容性测试:软件是否否兼容不同浏览器、不同系统版本、数据兼容性等。

易用性测试:产品或软件是否具备简单易上手的特性。

安全测试:用户的隐私数据是否加密(接口返回值,请求参数),越权问题(垂直越权、水平越权)。

使用万能公式对垃圾桶设计测试用例:

在这里插入图片描述

对登录功能设计测试用例:

在这里插入图片描述

兼容性测试的注意事项:

  1. 测试后台用户使用大多数使用的浏览器和系统。

3.设计测试用例的具体方法

3.1基于需求的测试方法

首先要分析需求是否正确、完整、不矛盾,并且逻辑恰当。确认无误后,在对需求进行进一步的细化,提炼出测试点或者测试项。对每一个测试点/测试项进行测试样例的设计。

3.2等价类

根据需求将输入数据划分为若干个等价类,从等价类中选出一个测试用例,如果一个用例通过,则认为该等价类类测试通过。等价类又分为有效等价类和无效等价类。这样可以达到用较少测试用例尽量多的功能覆盖。

例如注册时密码的长度要求为6-16位,如何根据等价类来设计测试用例呢?

1.明确等价有效类和无效等价类

  1. 有效等价类:密码长度位6-16位
  2. 无效等价类:密码长度小于6位,密码长度大于16位

2.编写测试用例

  1. 输入长度位6-16的密码,具体为10位。
  2. 输入长度位小于6位的密码,具体为3位。
  3. 输入长度大于16位的密码,具体为18位。

3.3边界值

对输入/输出数据的边界值进行测试的一种黑盒测试方法,最长、最短或者最小、最大,边界值右分为有效边界和无效边界。

有效边界:有效等价类中的边界。

无效边界:无效等价类中的边界。

例如注册时密码长度位6-16位,如何对边界值测试用例呢?

1.明确有效边界和无效边界

  1. 有效边界:密码长度为6、16位时。
  2. 无效边界:密码长度为5、17位时。

3.设计测试用例

  1. 当密码长度位6、16位时是否能注册成功。
  2. 当密码长度位5、17位时是否能注册成功。

3.4因果图

因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况

需求:是否是优惠订单,订单金额超过200、无门槛红包,当订单金额超过200或使用无门槛红包为优惠订单,否则为非优惠订单。

1.确认输入条件和输出条件

  1. 输入条件: 订单支付>200 使用红包 支付订单。
  2. 输出条件:优惠订单、非优惠订单。

2.找出输入条件和输出条件的关系

对输入条件进行组合:A B C AB AC BC ABC 非ABC

3.绘制判定表

在这里插入图片描述

4.根据测判定表编写测试样例

  1. 当订单金额>200元,无红包,不提交订单,则该订单为无优惠订单。

3.5场景设计法

思路引导作用,场景测试通常用于测试一个应用程序的主要功能或业务流程。它们可以帮助测试人员理解用户如何与软件进行交互,以及当出现错误或异常情况时的用户体验。

在这里插入图片描述

3.6正交法

主要解决判定表如果输入条件过多,穷举的情况太多,测试用例会很多。正交法是从大量的实验中挑选出有代表性的的点,合理的设计测试用例。是一种基于正交表的、高效率、快速、经济的试验。

正交表:L=行数(水平数^因素数)

正交表特性:

在这里插入图片描述

  1. 在每一列中,每种水平出现的次数相同。
  2. 任意两列中的水平组合排列方式是齐全且均衡。

因素:表示我们的输入条件(预考察的的变量)

水平:表示输入的可能选项(因素的取值)

实验:表示总实验次数。

举例:对订单是否是优惠订单设计测试用例

1.找出因素数和水平数。

因素数:支付、支付>200元、使用红包

水平数:是、不是

2.生成正交表

使用allpairs工具生成正交表。

在这里插入图片描述

3.根据正交表编写测试用例

  1. 支付、订单金额大于200元,使用红包。
  2. 支付、订单金额小于200,不使用红包。
  3. 不支付、订单金额大于200、不使用红包。
  4. 不支付、订单金额小于200,使用红包。

4.补充可能存在遗漏和非常重要的测试用例。

  1. 支付、金额大于200,不使用红包。
  2. 支付、金额小于200,使用红包。

3.7错误猜测法

根据需求中给出的范围,凭借个人的经验和直觉设计测试用例

4.测试的分类

4.1可靠性测试

可靠性=(正常运行时间)/(正常运行时间+异常运行时间)* 100%,基本至少要达到4个9要求,也就是99.99%。

4.2容错性测试

程序中某个功能出现错误,但是它不会影响整个系统的整体运行。

4.3内存泄漏测试

  1. 人工检查,查看代码查找未被回收的内存。
  2. 自动工具法:借助相应的测试内存泄漏工具,如Visual Leak Detector,记录每一次的内存分配,便以观察内存泄漏情况。

4.4弱网测试

设定在特定的网络下、程序功能是否正常。使用一些工具将网络调整到2G或3G的状态。

调整原理:如果调整到2G,2G的上行速率是2.7Kb/s,通过控制发送1KB的时间,将网络速率调整的2G的速率。

设发送1KB的时间为Xms

(2.7Kb/8)*X = 1KB

X = 1KB*1000/(2.7Kb/8)

4.5按照是否关系代码的具体实现进行测试

1.黑盒测试

黑盒测试指的是不关心程序的内部逻辑和结构,也就是不关心代码,检查系统的功能是否正常。只注重软件的功能。

优点:

  1. 从用户的角度出发设计测试用例,更好地满足用户的需求。
  2. 基于软件需求文档,不容易遗漏软件需求文件中需要测试的功能。
2.白盒测试

又称为结构测试或逻辑测试,它一般用例分析程序的内部结构,针对程序的逻辑结构设计测试用例。

主要包含:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

3.灰盒测试

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输

出、输入的正确性,同时也关注程序内部的情况。

4.6按照开发阶段进行划分

  1. 单元测试:此单元是程序员自己定义的,可以是一个方法、也可以是多个方法。
  2. 集成测试:对多个单元同时进行测试。
  3. 回归测试:对历史的版本、历史功能进行测试,保证更新后的功能不影响原来版本功能的使用。
  4. 系统测试:对完整的系统进行全方面测试
  5. 冒烟测试:开发任意完成任务之后,交给测试人员进行测试的第一步,评估软件系统是否具备可测试的条件。
  6. 验收测试:部署软件前的最后一次测试操作,也称为交付测试。

4.7安装卸载测试

软件能够正常安装,卸载之后也能正常安装。

5.面试题

  1. 为何不能用灰盒测试替代白盒和黑盒测试。
    测试:对历史的版本、历史功能进行测试,保证更新后的功能不影响原来版本功能的使用。
  2. 系统测试:对完整的系统进行全方面测试
  3. 冒烟测试:开发任意完成任务之后,交给测试人员进行测试的第一步,评估软件系统是否具备可测试的条件。
  4. 验收测试:部署软件前的最后一次测试操作,也称为交付测试。

4.7安装卸载测试

软件能够正常安装,卸载之后也能正常安装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142489.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

卤制品配送经营商城小程序的用处是什么

卤制品也是食品领域重要的分支,尤其对年轻人来说,只要干净卫生好吃价格合理,那复购率宣传性自是不用说,而随着互联网发展,传统线下门店也须要通过线上破解难题或进一步扩大生意。 而商城小程序无疑是商家通过线上私域…

【漏洞复现】企望制造 ERP命令执行

漏洞描述 由于企望制造 ERP comboxstore.action接口权限设置不当,默认的配置可执行任意SQL语句,利用xp_cmdshell函数可远程执行命令,未经认证的攻击者可通过该漏洞获取服务器权限。 免责声明 技术文章仅供参考,任何个人和组织…

Maven项目package为jar包后在window运行报A JNI error has occurred

原因:本地java版本与项目结构中使用的java版本不一致(之前因为别的需求把idea的java版本改为了18) 解决方法 打开项目结构,将idea的java版本改为与本地一致 再修改项目中的pom.xml 重新编译,package即可

Spark集成ClickHouse(笔记)

目录 前言: 一.配置环境 1.安装clickhouse驱动 2.配置clickhouse环境 二.spark 集成clickhouse 直接上代码,里面有一些注释哦! 前言: 在大数据处理和分析领域,Spark 是一个非常强大且广泛使用的开源分布式计算框架…

uni-app:实现页面效果1

效果 代码 <template><view><view class"add"><image :src"add_icon" mode""></image></view><view class"container_position"><view class"container_info"><view c…

【SQL server】数据库入门基本操作教学

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️初识JAVA】 前言 数据库是计算机系统中用于存储和管理数据的一种软件系统。它通常由一个或多个数据集合、管理系统和应用程序组成&#xff0c;被广泛应用于企业、政府和个人等各种领域。目前常用的数…

服务器搭建(TCP套接字)-epoll版(服务端)

epoll 是一种在 Linux 系统上用于高效事件驱动编程的 I/O 多路复用机制。它相比于传统的 select 和 poll 函数具有更好的性能和扩展性。 epoll 的主要特点和原理&#xff1a; 1、事件驱动&#xff1a;epoll 是基于事件驱动的模型&#xff0c;它通过监听事件来触发相应的回调函…

爬楼梯Java(斐波那契数列)

题目:有n阶楼梯,一次只能爬一层或者两层,请问有多少种方法? 这类题目其实都可以用斐波那契数列来解决,比如: 一阶楼梯只有一种方法 二阶楼梯有(11,2)两种方法 三阶楼梯有(111,12,21)三种方法 四阶楼梯有(1111,121,112,22,211)五种方式 五阶楼梯有(11111,1112,122,1211,1…

Servlet执行流程生命周期方法介绍体系结构、Request和Response的功能详解

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Servlet 一、 Servlet执行流程二、Servlet生…

【ONE·Linux || 进程间通信】

总言 进程间通信&#xff1a;简述进程间通信&#xff0c;介绍一些通信方式&#xff0c;管道通信&#xff08;匿名、名命&#xff09;、共享内存等。 文章目录 总言1、进程间通信简述2、管道2.1、简介2.2、匿名管道2.2.1、匿名管道的原理2.2.2、编码理解&#xff1a;用fork来共…

Linux 系统移植(二)--系统调试

文章目录 一、 编译文件系统1.1 下载资源安装包1.2 配置模板ARM64目标平台1.3 配置交叉编译器1.4 配置登录用户名和密码1.5 配置Linux 控制台1.6 配置文件系统格式1.7 编译buildroot文件系统 二、编译ARM64 Linux三、启动 Qemu Linux系统参考链接&#xff1a; 一、 编译文件系统…

9.基于粤嵌gec6818开发板小游戏2048的算法实现

2048源码&#xff1a; 感兴趣的可以去了解一下2048优化算法&#xff1a; 基于蒙特卡罗树搜索的_2048_游戏优化算法_刘子正 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/mman.h> #incl…

机器学习笔记:adaBoost

1 介绍 AdaBoost&#xff08;Adaptive Boosting&#xff09;是一种集成学习方法&#xff0c;它的目标是将多个弱分类器组合成一个强分类器 通过反复修改训练数据的权重&#xff0c;使得之前分类错误的样本在后续的分类器中得到更多的关注每一轮中&#xff0c;都会增加一个新的…

大模型时代,如何找准AI发展新方向?TVP读书会与你共探

引言 随着 ChatGPT 掀起人工智能的发展狂潮&#xff0c;大模型时代悄然来临。大模型的出现让人们看到了人工智能在某些方面几乎接近人类智能的“威力”&#xff0c;也由此使人们产生了关于 AGI 的期盼与隐忧。其中&#xff0c;关于大模型是否是人工智能发展的拐点、科技从业者又…

数据结构--堆排序

目录 堆的定义 建立初始化堆的步骤 建立大根堆的代码 大根堆排序的代码 算法效率分析 稳定性 堆的定义 回忆 基于选择排序的特性&#xff1a;选取关键字最小&#xff08;或者最大&#xff09;的元素放入到序列里面&#xff0c;知道了大堆和小堆概念&#xff0c;所以将…

尚硅谷大数据项目《在线教育之实时数仓》笔记002

视频地址&#xff1a;尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第06章 数据仓库环境准备 P006 P007 P008 P009 P010 P011 P012 P013 P014 第06章 数据仓库环境准备 P006 P007 P008 http://node001:16010/master-status [atguigunode001 ~]$ …

Qt --- Day03

<?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Widget</class><widget class"QWidget" name"Widget"><property name"geometry"><rect><x>0…

Java 调用 GitLabAPI 获取仓库里的文件件 提交记录

1. 需求 项目组 需要做统计&#xff0c;获取每个开发人员的代码提交次数&#xff0c;提交时间&#xff0c;提交人等等&#xff0c;因代码在GitLab上管理&#xff0c;所以需要调用GitLabAPI来获取。 2. 开发 API官网&#xff1a;https://docs.gitlab.com/ee/api/ 2.1 创建自…

3D科研绘图与学术图表绘制:从入门到精通

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 3D科研绘图和学术图表绘…

interview6-jvm篇

JVM(Java Virtual Machine)Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 在JVM中共有四大部分&#xff0c;分别是ClassLoader&#xff08;类加载器&#xff09;、Runtime DataArea&#xff08;运行时数据区&#xff0c;内存分区&#xff09;、Execu…