六、测试分类

news2025/4/22 15:03:37

设计测试用例

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

弱网测试:fiddler上行速率和下行速率

安装卸载测试

在工作中:

1.基于需求文档来设计测试用例(粗粒度)

输入字段长度为6~15位

功能测试

设计功能测试用例,参考产品规格说明书进行用例的编写,具体的测试用例需要使用黑盒设计测试用例的方法,如等价类、边界值、判定表法、正交法、场景法、错误猜测法等。

前面讲到的设计测试用例的方法,并不会关注到程序内部代码逻辑,因此前面的设计测试的方法也称为黑盒测试设计测试用例的方法

性能测试

我们使用软件的时候有时会碰到软件页面打开时越来越慢,查询数据时很长时间才显示列表,软件运行越来越慢等问题,这些问题都是系统的性能问题引起的

可靠性测试

安全性测试

易用性测试

产品使用起来更加灵活,舒适。软件产品始终关注用户体验,让用户获得舒适,易用的体验,针对软件这方面的测试称之为易用性测试。

1.标准性 2.直观性 3.灵活性 4.舒适性

按照执行方式分类

按照测试方法

白盒测试

白盒测试又称为结构测试或逻辑测试,他一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试。

白盒测试主要分为静态测试和动态测试两种。静态测试常见于桌面检查、代码审查、代码走查、代码扫描工具

动态测试方法主要包含六种测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖

if A and B

then action1

if C or D

then action2

1.语句覆盖

语句覆盖:每个语句至少执行一次

A:T真 B:T真

C:T真 D:T真 ; C:T真 D:F假 ; C:F假 D:T真

输出用例: A:T B:T C:T D:F

2.判定覆盖

在该案例中if语句就是判定语句

if语句:既要测试为T也要测试为F

A and B T(真) F(假)

(1)A:T B:T (1)A:T B:F

  				    (2)A:F		B:F

      			    (3)A:F	  	B:T

C or D T(真) F(假)

(1)C:T D:T (1)C:F D:F

(2)C:T D:F

(3)C:F D:T

得出用例:

用例1:A=T B=T (T) C=T D=F(T) 满足条件都为真的情况

用例2:A=T B=F (F) C=F D=F(F) 满足条件都为假的情况

3.条件覆盖

A: T F

B: T F

C: T F

D: T F

得出用例:

用例1:A=T B=T C=T D=T

用例2:A=F B=F C=F D=F

4.判定条件覆盖

结合判定覆盖和条件覆盖来设计测试用例,用例既可以覆盖到条件,也可以覆盖到判定

5.条件组合覆盖

6.路径覆盖

判定条件定义如下:

(1) if(x>0&&y>0) 判定:记为P1

(2) if(z<0)判定:记为P2

(3) x>0:记为C1

(4) y>0:记为C2

(5) z<0:记为C3

测试用例设计:

                          if(x>0&&y>0)         if(z<0)
数据C1C2C3P1P2路径
{x=3,y=3,z=-2}TTTTTa-b-d-f
{x=-3,y=3,z=-2}FTTFTa-c-d-f
{x=3,y=3,z=2}TTFTFa-b-e-f
{x=-3,y=15,z=2}FTFFFa-c-e-f

根据条件判断进行P1和P2的真假覆盖,从而进行设计测试用例

黑盒测试

登录功能

账号密码 -------> 登陆结果

(输入数据) (输出数据)

灰盒测试

结合了白盒测试和黑盒测试,但是又不完全复制

但是,灰盒测试没有白盒测试详细和完整,黑盒测试是覆盖产品范围最广的测试,因此灰盒测试基本是不能够替代黑盒测试,否则需要很大的代价,设计非常多的用例。

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

常见面试题:你知道的测试方法有哪些?哪种用的比较多?

常见的测试方法有黑盒测试,白盒测试和灰盒测试。开发人员主要用白盒测试和灰盒测试,测试人员主要用白盒测试和黑盒测试。对于测试人员来说,相较于白盒测试,黑盒测试用的更多一些。

测试面试的时候一定要留心眼子~~~ 话不要说得太死,存在即合理

按照测试阶段分类

单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。

单元测试通常和白盒测试联系到一起,如果单从概念上来讲两者是有区别的,不过我们通常所说的“单元测试”和“白盒测试”都认为是和代码有关系的,所以在某些语境下也通常认为这两者是同一个东西。还有一种理解方式,单元测试和白盒测试就是对开发人员所编写的代码进行测试。

最小单元,"最小单元"是人为规定的

单元测试框架 java 中junit测试框架

import java.util.Arrays;

public class BubbleSort {

    public static void bubbleSort(int[] array) {
        int n = array.length;
        // 外层循环控制排序轮数
        for (int i = 0; i < n - 1; i++) {
            // 内层循环控制每轮比较次数
            for (int j = 0; j < n - i - 1; j++) {
                // 如果前一个元素比后一个元素大,则交换它们
                if (array[j] > array[j + 1]) {
                    // 交换元素
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        // 排序无序数组
        Test01();
        // 排序有序数组
        Test02();
        // 排序空数组
        Test03();
        // 排序有重复数组数组
        Test04();

    }

    private static void Test01() {
        int[] act_array1 = {64,34,25,12,22,11,90};
        int[] expect_array1 = {11,12,22,25,34,64,90};
        // 排序无序数组
        bubbleSort(act_array1);
        boolean isSame = Arrays.equals(act_array1, expect_array1);// 判断两个数组是否相等
        if(isSame == false){
            System.out.println("测试不通过");
        }else {
            System.out.println("测试通过");
        }
    }

    private static void Test02() {
        int[] act_array2 = {1,2,3,4,5,6,7,8,9,10};
        int[] expect_array2 = {1,2,3,4,5,6,7,8,9,10};
        // 排序有序数组
        bubbleSort(act_array2);
        boolean isSame = Arrays.equals(act_array2, expect_array2);
        if(isSame == false){
            System.out.println("测试不通过");
        }else {
            System.out.println("测试通过");
        }
    }

    private static void Test03() {
        int[] act_array3 = {};
        int[] expect_array3 = {};
        // 排序空数组
        bubbleSort(act_array3);
        boolean isSame = Arrays.equals(act_array3, expect_array3);
        if(isSame == false){
            System.out.println("测试不通过");
        }else {
            System.out.println("测试通过");
        }
    }

    private static void Test04() {
        int[] act_array4 = {1,1,2,3,4,4,5,6,7,8,9,10};
        int[] expect_array4 = {1,1,2,3,4,4,5,6,7,8,9,10};
        // 排序有重复数组数组
        bubbleSort(act_array4);
        boolean isSame = Arrays.equals(act_array4, expect_array4);
        if(isSame == false){
            System.out.println("测试不通过");
        }else {
            System.out.println("测试通过");
        }
    }
}

集成测试

测试阶段:一般单元测试之后进行

测试对象:模块间的接口

测试人员:白盒测试工程师或者开发工程师

测试依据:单元测试的模块+概要设计文档

测试方法:黑盒测试与白盒测试相结合

测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

系统测试

冒烟测试就是完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。

回归测试(Regression Test)是指在软件项目中,开发人员在修改了软件的代码以修复已经发现的bug后,测试人员在需要重新测试前面已经测试过的内容,以确认此次修改没有引入新的错误。 也就是说,回归测试的目的就是检查开发人员在修复已有bug时是否又导致了新的bug。

验收测试

验收测试标准实现软件确认要通过一系列黑盒测试。测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。无论是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。验收测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。

按照是否手工测试

手工测试

手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。

自动化测试

是一个统称

就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高。(这里了解一下,等到将自动化的时候再详细展开)

自动化测试和手工测试优缺点

自动化测试手工测试
优点节省成本
提高测试人员执行工作效率
保障软件的质量
对测试人员技术要求没有自动化技术要求高
可以进行发散性测试
缺点对测试人员技术要求较高
不能发散性测试
效率低
人员、时间成本比起自动化测试都比较高

按照实施组织划分

大型通用软件,在正式发布前,通常需要执行**Alpha和Beta测试**

α测试(Alpha 测试 )

内测,通常是公司内部的用户在模拟实际操作环境下进行的测试。目的是评价软件产品的FLURPS(即功能、可使用性、可靠性、性能和支持)。α测试不能由程序员或测试员完成。

β测试(beta测试)

β测试又叫公测或者b测

β测试由软件的最终用户们在一个或多个场所进行,这里就可以理解为,β测试是正式用户中的一部分,他们在任意的场合来使用软件,目的是为了发现软件是否在一系列的问题

通常会发送一些邀请码,来邀请用户参与项目测试

第三方测试

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

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

相关文章

AI编程案例拆解|基于机器学习XX评分系统-前端篇

文章目录 1. 定价使用DeepSeek估价小红书调研 2. 确定工作事项利用DeepSeek生成具体工作事项 3. 和客户沟通约会议沟通确定内容样式 4. 前端部分设计使用DeepSeek生成UI设计在Cursor中生成并提问前置条件开始编程 关注不迷路&#xff0c;励志拆解100个AI编程、AI智能体的落地应…

java数组06:Arrays类

Arrays类 数组的工具类java.util. Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中是了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。 查看JDK帮助文档 Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用…

TQTT_KU5P开发板教程---实现流水灯

文档实现功能介绍 本文档是学习本开发板的基础&#xff0c;通过设置计数器使led0到led7依次闪烁&#xff0c;让用户初步认识vivado基本的开发流程以及熟悉项目的创建。本开发板的所有教程所使用的软件都是vivado2024.1版本的。可以根据网上的教程下载与安装。 硬件资源 此次教程…

Model Context Protocol(MCP)模型上下文协议

Model Context Protocol&#xff08;MCP&#xff09;模型上下文协议 前言一、什么是MCP二、MCP的作用三、MCP与Function call对比四、构建一个简单的MCP DEMO环境准备实现MCP Server运行 ServerMCP Client端配置验证 总结 前言 在Agent时代&#xff0c;将Agent确立为大模型未来…

第十二章:FreeRTOS多任务创建与删除

FreeRTOS多任务创建与删除教程 概述 本教程介绍FreeRTOS多任务的创建与删除方法&#xff0c;主要涉及两个核心函数&#xff1a; 任务创建&#xff1a;xTaskCreate()任务删除&#xff1a;vTaskDelete() 实践步骤 1. 准备工程文件 复制005工程并重命名为006 2. 创建多个任务…

Seed-Thinking-v1.5:字节豆包新推理模型发布,200B参数战胜Deepseek

摘要 本文引入了Seed-Thinking-v1.5&#xff0c;能够在响应之前通过思考进行推理&#xff0c;从而提高了各种基准测试的性能。Seed-Thinking-v1.5在AIME 2024上获得86.7分&#xff0c;在Codeforces上获得55.0分&#xff0c;在GPQA上获得77.3分&#xff0c;展示了优秀的STEM和编…

AIDD-人工智能药物设计-提升分子预测反事实解释可靠性

UQ 过滤:提升分子预测反事实解释可靠性 目录 I-INF 指标结合 F1 评分,为评估大分子复合物(包括 RNA-蛋白质)的界面相互作用网络提供了可靠且全面的新方法。通过使用生成的人工 CAR 序列微调蛋白质语言模型(PLM),显著提高了 CAR-T 细胞活性的预测准确性,有效克服了合成蛋…

【前端】webpack一本通

今日更新完毕&#xff0c;不定期补充&#xff0c;建议关注收藏点赞。 目录 简介使用webpack默认只能处理js文件 ->引入加载器对JS语法降级&#xff0c;兼容低版本语法合并文件再次打包进阶 工作原理html-webpack-plugin插件webpack开发服务器引入使用webpack-dev-server模块…

代码学习总结(一)

代码学习总结&#xff08;一&#xff09; 这个系列的博客是记录下自己学习代码的历程&#xff0c;有来自平台上的&#xff0c;有来自笔试题回忆的&#xff0c;主要基于 C 语言&#xff0c;包括题目内容&#xff0c;代码实现&#xff0c;思路&#xff0c;并会注明题目难度&…

第十五届蓝桥杯C/C++B组省赛真题讲解(分享去年比赛的一些真实感受)

试题A——握手问题 一、解题思路 直接用高中学的排列组合思路 二、代码示例 #include<bits/stdc.h> using namespace std; int fun(int n) {int sum0;for(int i0;i<n;i){for(int ji1;j<n;j)sum; } return sum; } int main() {cout<<fun(50)-fun(7); }三、…

【Qt】qDebug() << “中文测试“; 乱码问题

环境 Qt Creator版本&#xff1a;4.7.1 编译器&#xff1a;MSVC2015_32bit 解法一 在.pro文件中添加 msvc:QMAKE_CXXFLAGS -execution-charset:utf-8注意&#xff1a; 1、需要清理项目&#xff0c;并重新qmake&#xff0c;然后构建。 测试项目下载&#xff1a;https://do…

Vue接口平台学习六——接口列表及部分调试页面

一、实现效果图及界面布局简单梳理 整体布局分左右&#xff0c;左边调试&#xff0c;右边显示接口列表 左侧&#xff1a; 一个输入框按钮&#xff1b;下面展示信息&#xff0c;大部分使用代码编辑器就好了&#xff0c;除了请求体传文件类型需要额外处理。然后再下方显示响应信…

【C语言】预处理(下)(C语言完结篇)

一、#和## 1、#运算符 这里的#是一个运算符&#xff0c;整个运算符会将宏的参数转换为字符串字面量&#xff0c;它仅可以出现在带参数的宏的替换列表中&#xff0c;我们可以将其理解为字符串化。 我们先看下面的一段代码&#xff1a; 第二个printf中是由两个字符串组成的&am…

低频rfid手持机,助力动物耳标智能化管理

低频RFID手持机&#xff0c;助力动物耳标智能化管理&#xff0c;正逐步成为现代畜牧业不可或缺的工具。它不仅能够高效读取动物耳标中的信息&#xff0c;如唯一识别码、疫苗接种记录、健康状态等&#xff0c;还极大地提升了数据录入的准确性和时效性。 1.精准识别与追踪‌ 通过…

【从零开始学习JVM | 第三篇】虚拟机的垃圾回收学习(一)

堆空间的基本结构 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时&#xff0c;Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。 Java 堆是垃圾收集器管理的主要区域&#xff0c;因此也被称作 GC 堆&#xff08;Garbage Collected Heap&am…

Jieba分词的原理及应用(三)

前言 “结巴”中文分词&#xff1a;做最好的 Python 中文分词组件 上一篇文章讲了使用TF-IDF分类器范式进行企业级文本分类的案例。其中提到了中文场景不比英文场景&#xff0c;在喂给模型之前需要进行分词操作。 分词的手段有很多&#xff0c;其中最常用的手段还是Jieba库进行…

Openlayers:flat样式介绍

在前段时间我在使用WebGL矢量图层时接触到了flat样式&#xff0c;我对其十分的感兴趣&#xff0c;于是我花了几天的时间对其进行了了解&#xff0c;在这篇文章中我将简单的介绍一下flat样式的使用方式以及我对其的一些理解。 一、了解flat样式 1.什么是flat样式&#xff1f; …

149页研读——华为基于IPD全过程研发质量管理【附全文阅读】

本文介绍了IPD(集成产品开发)的全过程研发质量管理,强调了以客户需求为导向,通过跨部门协同、资源整合、快速响应等方式提高研发效率和成功率。文章详细阐述了IPD研发管理体系的精要,包括其核心思想、优势、框架以及核心理念。 其中,跨领域平台与技术研发、端到端流程与项…

Oracle 23ai Vector Search 系列之5 向量索引(Vector Indexes)

文章目录 Oracle 23ai Vector Search 系列之5 向量索引Oracle 23ai支持的向量索引类型内存中的邻居图向量索引 (In-Memory Neighbor Graph Vector Index)磁盘上的邻居分区矢量索引 (Neighbor Partition Vector Index) 创建向量索引HNSW索引IVF索引 向量索引示例参考 Windows 环…

vue模拟扑克效果

vue模拟扑克效果 效果图&#xff1a; step1:C:\Users\wangrusheng\PycharmProjects\untitled18\src\views\Home.vue <template><div class"poker-container"><!-- 使用复合数据对象实现双行显示 --><divv-for"(card, index) in POKER_…