测试进阶篇

news2024/12/26 0:05:49

✏️作者:银河罐头
📋系列专栏:JavaEE

🌲“种一棵树最好的时间是十年前,其次是现在”

目录

  • 按照对象划分
    • 界面测试
    • 可靠性测试
    • 容错性测试
    • 文档测试
    • 兼容性测试
    • 易用性测试
    • 安装卸载测试
    • 安全测试
    • 性能测试
    • 内存泄漏测试
  • 按是否查看代码划分
    • 黑盒测试
    • 白盒测试
    • 灰盒测试
  • 按开发阶段划分
    • 单元测试
    • 集成测试
    • 系统测试
    • 回归测试
    • 冒烟测试
    • 验收测试
  • 按测试实施组织
    • α测试和β测试区别
    • 第三方测试
  • 按是否运行划分
    • 静态测试
    • 动态测试
  • 按是否手工划分
    • 手工测试
    • 自动化测试
  • 按测试地域划分
    • 国际化测试
    • 本地化测试

image-20230528111011794

按照对象划分

界面测试

什么是界面?

用户肉眼看到的都是界面。

举例:web 站(通过浏览器打开的网站),APP,小程序,公众号。

用户和软件进行交互,都是通过界面和软件进行沟通的。

业界测试页面的时候,参考软件规格说明书,UI 视觉稿。

  • 验证界面内容显示的完整性,一致性,准确性,友好性。比如界面内容对屏幕大小的自适应
  • 验证整个界面布局和排版是否合理
  • 对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用
  • 界面的布局和色调符合当下时事的发展。(比如清明节灰色界面)

可靠性测试

可靠性(Availability)即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务 的时间占总时间的百分比表示。

可靠性 = 正常运行时间/(正常运行时间+非正常运行时间)*100%

系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的。

容错性测试

容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性。

  • 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内 部消化掉,而不会导致系统出错甚至崩溃。

  • 灾难恢复性测试。 通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据 是否能尽快恢复。

文档测试

测试文件,开发文件,产品文件。

兼容性测试

  • 系统自身版本的兼容,用户已有数据的兼容

  • 测试与应用环境的兼容性,比如操作系统

  • 测试与第三方系统以及第三方数据的兼容性(比如假设手机上不能同时运行美团和饿了么)

易用性测试

1,标准性和规范性

2,直观性

3,灵活性

4,舒适性

安装卸载测试

软件不同的安装和卸载方式;

应用是否可以在不同的环系统,版本下安装(安装兼容性)

安装或者卸载过程中是否可以手动暂停,或者取消

安装空间不足的时候系统是否有提示

是否可以正常的卸载,以及应用软件的各种卸载方式

卸载和安装过程中出现环境问题,软件是否可以正常并且合理的应对,比如死机,断电,断网等

安全测试

输入域,如输入恶性或者带有病毒的脚本或长字符串;

代码中的安全性问题,如SQL/XML注入

不安全的数据存储或者传递

有问题的访问控制,权限分配等

性能测试

常见的性能问题如下: 资源泄露,资源瓶颈,线程死锁,线程阻塞,查询速度慢或效率低,受外部系统影响越来越大。

衡量一个系统性能好坏的关键性指标有,用户响应时间,事务平均响应时间(TPS),吞吐率,每秒点击次数,内存和CPU使用率等。

内存泄漏测试

造成内存泄露的原因有很多,最常见的有以下几种:

分配完内存之后忘了回收。

程序写法有问题,造成没办法回收(如死循环造成无法执行到回收步骤)。

某些API函数的使用不正确,造成内存泄露。

内存泄漏的检测方法:

人工静态法:代码走读,人工查找未被回收的内存。

自动工具法:借助相应测试内存泄漏的工具,如Visual Leak Detector,记录每次内存分配,清楚 告诉用户内存是如何泄漏的。

按是否查看代码划分

黑盒测试

黑盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当的接收输入数据而输出正确的结果,满足规范需求。 所以,黑盒测试又称之为数据驱动测试,只注重软件的功能。

优点

不需要了解程序内部的代码以及实现,不关注软件内部的实现。

从用户角度出发设计测试用例,很容易的知道用户会用到哪些功能,会遇到哪些问题,锻炼测试人员的产品思维。

测试用例是基于软件需求开发文档,不容易遗漏软件需求文档中需要测试的功能。

黑盒测试的缺点是不可能覆盖所有代码。

黑盒测试用到的测试方法有,等价类,边界值,因果图,场景法,错误猜测法等。

白盒测试

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

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

优点:代码覆盖率较高。

缺点:业务功能覆盖较低。

灰盒测试

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

按开发阶段划分

测试金字塔

image-20230528152404591

单元测试

单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设 计的最小单位:模块。又称为模块测试

这里的模块指的是 Java 里的一个类。

测试阶段:编码后或者编码前(TDD)

测试对象:最小模块

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

测试依据:代码和注释+详细设计文档

测试方法:白盒测试

Java 中如何进行 单元测试?

Junit, TestNG

集成测试

集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口 及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。

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

测试对象:模块间的接口

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

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

系统测试

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。

测试对象:整个系统(软、硬件)

测试人员:黑盒测试工程师

测试方法:黑盒测试

测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

冒烟测试

image-20230528161613113

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行。冒烟测试一般在开发人员开发完毕后由测试人员和开发人员进行冒烟测试,保证基本功能正常,不阻碍后续的测试。

如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重 新修复代码直到冒烟测试通过,再开始进行系统测试.

冒烟测试是在系统测试之前完成。

验收测试

验收测试是部署软件之前的最后一个测试操作。这是产品上线之前最后一个测试流程。

测试阶段:系统测试通过之后

测试对象:整个系统(包括软硬件)。

测试人员:主要是最终用户或者需求方。

测试依据:用户需求(软件规格说明书)、验收标准(测试人员写的)

测试方法:黑盒测试

按测试实施组织

α测试和β测试区别

环境:α测试是在公司内部进行测试,β测试环境不确定。

测试人员类型:α测试是公司内部人员,β测试测试人员是用户。

测试人员数量:α测试测试人员较少,β测试测试人员较多。

阶段:α测试是在β测试之前测试的。

测试周期:α测试测试周期较短,β测试测试周期较长。

第三方测试

介于开发方和用户方间的组织的测试。

按是否运行划分

静态测试

所谓静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中 可能存在的错误的过程。

动态测试

动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果 和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序

大多数软件测试工作都属于动态测试。

按是否手工划分

手工测试

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

自动化测试

自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。

接口测试的ROI(产出投入比)要比UI测试高。

按测试地域划分

什么是软件国际化?

是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时, 不需要重新设计源程序代码的软件工程方法。

国际化测试

本地化和国际化测试与其他类型的测试存在很多不同之处。

举例:日期、数字格式、货币等是否能适应不同国家的文化习俗。例如,中文是年月日,而英文是月日 年。

本地化测试

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

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

相关文章

老板让你Excel统计数据无从下手?没事,ChatGPT来帮你!

系列文章目录 老板让你写个PPT没有头绪?没事,ChatGPT来帮你!传送门 文章目录 系列文章目录前言一、不会公式?帮你生成二、不会处理数据?帮你处理写在最后 前言 自从人工智能横空而出,它在人们的生活中产生…

如何在华为OD机试中获得满分?Java实现【 第一个错误的版本】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

【P36】JMeter 交替控制器(Interleave Controller)

文章目录 一、交替控制器(Interleave Controller)参数说明二、测试计划设计 一、交替控制器(Interleave Controller)参数说明 可以将内部的组件在线程迭代时交替执行;交替控制器内部一般会有多个取样器 选择线程组右…

6.6.4 PCS创建Oracle 资源及资源组

在RHCS体系中,Oracle的启动是按以下顺序进行的: VIP。监听器。逻辑卷(ISCSI共享出来的)。文件系统(在逻辑卷上创建)。数据库实例。 上边这些资源,在PCS里创建好以后,将其组合成一个…

接口自动化一键集成,Jenkins持续集成Allure报告!

目录 前言: 一、接口测试框架选型 二、接口自动化框架封装的设计 2.1 创建测试用例 2.2 执行测试用例 2.3 生成测试报告 三、 实现Jenkins持续集成 3.1 安装Jenkins 3.2 配置Jenkins 3.3 创建Jenkins任务 四、总结 前言: 接口测试作为软件测试中的…

chatgpt赋能python:Python程序中断

Python 程序中断 Python 是一种高级编程语言,被广泛应用于数据科学和机器学习等领域。但是,有时候我们需要中断 Python 程序的执行,以便处理意外事件或者出现错误时进行调试。在这篇文章中,我们将探讨 Python 程序中断的各种方法…

Rocky9-Linux上安装KVM虚拟机

一、案例环境 使用一台物理机器,安装Rocky9-Linux的64位系统,test01是在宿主机kvm中安装的虚拟机 主机 操作系统 IP地址 主要软件 kvm Centos 7 192.168.100.46 KVM test01 Centos 7 192.168.100.32 虚拟机

梅须逊雪三分白,雪却输梅一段香——CSS动画与JavaScript动画

CSS动画并不是绝对比JavaScript动画性能更优越,开源动画库Velocity.js等就展现了强劲的性能。 一、两者的主要区别 先开门见山的说说两者之间的区别。 1)CSS动画: 基于CSS的动画一般由浏览器“主线程”之外的独立线程处理,在其…

SpringBoot2-核心技术(一)

SpringBoot2-核心技术(一) 了解SpringBoot配置文件的使用 文章目录 SpringBoot2-核心技术(一)了解SpringBoot配置文件的使用一、文件类型1. properties2. yaml 二、yaml的基本使用1. 基本语法2. 数据类型2.1 字面量 2.2 对象2.3 …

Ubuntu系统磁盘分区与挂载

0x00、一些查看信息的命令 sudo fdisk -l 该命令可以列出当前设备上的所有分区表信息。 df -hl 该命令可以查看文件系统磁盘空间的使用情况。 0x01、对磁盘分区 使用命令 sudo fdisk 设备文件名(/dev/sda) 此处设备路径可以通过上面的fdisk -l命令查看…

测试老鸟总结,性能测试三大核心指标详解,并发/TPS/响应时间...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 抛出问题&#xf…

恒容容器放气的瞬时流量的计算

有时候,你会遇到一个问题,该问题的描述如下: 你有一个已知体积的容器,设容器体积为V,里面装有一定压力(初始压力)的气体,如空气或氢气等,设初始压力为1MPa,容器出口连接着一个阀门开…

服务(第三十一篇)mysql-mmm高可用

MMM是一套支持双主故障切换和双主日常管理的脚本程序。 用来监控和管理 MySQL Master-Master (双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加…

Makefile基础教程(自动生成依赖关系)

文章目录 前言一、makefile不包含.h依赖的后果二、gcc -M 和 gcc -MM命令三、sed命令四、makefile中命令的执行机制四、生成依赖文件并单独放入文件夹中总结前言 在前面的文章中我们都只使用到了.c文件作为依赖但是在实际的工程中肯定是不可能只有.c文件的还存在.h文件,那么在…

CSAPP Lab5- MallocLab

实验目标 本实验需要用c语言实现一个动态的存储分配器,也就是你自己版本的malloc,free,realloc函数。 实验步骤 tar xvf malloclab-handout.tar解压文件 我们需要修改的唯一文件是mm.c,包含如下几个需要实现的函数 int mm_ini…

ChatGPT通用人工智能:初心与未来

至少从 20 世纪 50 年代起,人们就开始大肆宣传可能很快就会创造出一种能够与人类智能的全部范围和水平相匹配的机器。现在,我们已经成功地创造出了能够解决特定问题的机器,其准确度达到甚至超过了人类,但我们仍然无法获得通用智能…

基于STM32F103的HAL库手动配置FreeRTOS

基于STM32F103的HAL库手动配置FreeRTOS 源码下载 FreeRTOS源码下载包括示例工程与内核工程。 示例工程:获取与开发环境相关的架构文件 内核工程:移植FreeRTOS的内核文件 示例工程Gitee地址 内核工程GirHub地址 STM32工程创建 使用STM32CubeMX创建新工…

电动汽车变频器

目录 1、电动汽车与汽油动力车的区别 2、变频器 3、变频器内元件 3.1、汽车变频器的组成和功能 3.1.1、电容器 3.1.2、变频器控制单元 3.1.3、逆变桥驱动单元 3.1.4、逆变桥单元 3.2、汽车上变频器的组成和功能 3.2.1、DC/DC升压转换器。 3.2.2、DC/DC降压转换器。 …

Java语言----二叉树

目录 一、二叉树 1.1 二叉树概念 1.2 两种特殊的二叉树 1.3二叉树的性质 二 、二叉树的实现 2.1第一种 使用数组 2.2第二种 使用链表实现 2.2.1二叉树代码构建 2.2.2二叉树的基本操作 三、二叉树的三种遍历 3.1递归方法实现 前、中、后遍历 3.2非递归方法实现 前、中…

Spark入门介绍

目录 一、Spark框架概述 1、Spark简介 2、发展 二、Spark功能及特点 1、定义