第12章 软件测试基础(第三部分)测试类型、测试工具

七、测试类型(按工程阶段划分)

单集系确收

(一)单元测试

1、单元测试/模块测试

  • 单元就是软件中最小单位(或模块)。可以是一个函数、一个过程、一个类。
  • 主要依据是模块的详细设计文档
  • 价值在于尽早发现程序的一些问题,降低后期缺陷修复代价。
  • 采用白盒、黑盒测试技术等进行,主要看测试需求。
  • 单元测试可由开发和测试工程师共同完成。
  • 针对软件程序模块进行正确性检验的测试工作

2、测试内容

测试内容

  • 单元测试主要是关注单元是否实现规定的功能,单元的逻辑是否正确,输入输出是否正确
  • 局部数据:测试在单元内的数据结构是否保持完整
  • 模块接口:模块接口既要调用其它接口,也要接受其它接口。
  • 独立路径信息无关的路径。是指在程序中至少引用了一个新的处理语句的集合,或者一个新条件的任意一条路径。
  • 出错处理:单元在运行过程中发生差错时单元是否能有效处理差错,避免程序崩溃。
  • 边界条件:对单元边界进行测试,确定单元边界是否正常。

(二)集成测试/组装测试/联合测试

1、概念

  • 在单元测试基础上,将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。主要是发现单元接口之间可能存在的问题。
  • 概要设计阶段考虑如何进行集成测试
  • 单元测试考虑各个单元内部有无问题,集成测试验证将各个单元之间合起来之后能否达到上一级设计的功能要求。
  • 集成测试需要提交文档:集成测试计划、集成测试规格说明、集成测试分析报告
  • 检验程序单元或部件的接口关系,即针对软件体系结构的构造进行的测试

2、方式

  • 一次性组装
    非增值式组装方式/整体拼装
    首先对每个模块分别进行模块测试,把所有模块组装在一起进行测试,最终得到所求的软件系统。
    优点:节省工时、人力
    缺点:当发现问题时很难定位发生问题的地方

  • 增值性组装
    渐增式组装
    首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大系统,组装中边连接边测试,最后通过增值逐步组成软件系统。
    包括自顶向下的增值方式(主干模块先暴露问题)自底向下的增值方式(最常出错的底层模块先暴露问题)、混合增值式方式(前两种的结合)

3、内容

  • 各模块连接时,穿越模块接口的数据是否丢失
  • 一个模块的功能是否会对另一个模块的功能产生不利影响
  • 各个子功能组合,能否达到预期要求的父功能
  • 全局数据结构是否有问题
  • 单个模块的误差累积是否会放大

4、完成标志

  • 成功执行测试计划中所规范的所有集成测试
  • 修正所有错误
  • 测试结果通过专门小组评审

5、桩模块/驱动模块

  • 桩模块:底层的模块。模拟调用模块功能的模块。也叫存根模块。用以代替所测模块调用的子模块。模块可以做少量的数据操作,不需要把子模块的所有功能都带进来,但不允许什么事情也不做。
  • 驱动模块:模拟上一级模块调用测试模块的模块。相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实测结果。

(三)系统测试

1、概念

  • 发现软件与系统定义不符合或与之矛盾的地方
  • 集成整个系统元素(包括硬件、外设、网络和系统软件、支持平台等)
  • 目的是验证最终软件系统是否满足用户规定的需求
  • 为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试

2、内容

  • 按照需求规格说明书逐一验证系统的质量特性
    功能测试
    健壮性测试:容错能力;恢复能力

3、典型测试

  • 恢复测试:主要检查系统的容错能力
  • 安全测试:验证系统内部的保护机制
  • 压力测试:通常用于测试应用程序或系统在高负载、高压力情况下的性能和稳定性。(异常访问量、频率或数据量)

(四)确认测试/有效性测试

  • 验证软件的功能和性能以及其他特性是否与用户要求一致,由开发方组织
  • 主要内容:以规格说明书为主来开展、确认软件有效性;做软件配置的复查工作
  • 进行有效性测试 <— 黑盒测试
  • 软件配置复查
  • 检验与证实软件是否满足软件需求说明书中规定的要求

(五)验收测试

  • 用户为主
  • 一般使用生产中的实际数据进行测试
  • 决定是否接收或拒收系统
  • 按照项目任务书或合同、约定的验收依据文档等进行的整个系统的测试与评审,决定是否接收或拒收系统。

八、测试类型(按执行代码划分)

(一)动态测试

需要运行代码去发现错误。

1、黑盒测试法

2、白盒测试法

3、灰盒测试法

  • 介于黑白盒之间
  • 既考虑程序内部结构和逻辑,又考虑功能

(二)静态测试

不需要运行程序,通过人为审查程序发现错误。

1、代码审查

2、代码走查

九、测试类型(按实施主体划分)

(一)开发方测试

  • 开发方 开发环境下
  • Alpha测试
  • 指在软件开发完后,开发方要对提交的软件进行全面的自我检查与验证,它可以队软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

(二)用户测试

  • 用户 用户应用环境下
  • Beta测试
  • 用户通过运行和使用软件,检测与验证软件是否符合自己预期的要求

(三)第三方测试

  • 第三方
  • 技术、财务、管理等独立于开发方、用户方的第三方组织
  • 独立测试

十、测试类型(按关联代码划分)

集成测试阶段采用黑盒和白盒测试相结合的方法

(一)白盒测试

  • 逻辑和结构
    白盒测试
  • 结构测试/逻辑驱动测试/基于代码的测试
  • 白盒测试把软件视为一个透明的盒子,盒子中程序的每一步如何进行分支、如何进行控制、数据如何流动……
  • 基于程序内部的结构、逻辑来设计测试用例

(二)黑盒测试

  • 功能
    黑盒测试
  • 功能测试/基于规格说明书的测试/基于数据驱动的测试
  • 不透明的黑色盒子,不清楚内部程序的结构和逻辑
  • 从用户角度去考虑产品的功能、特性并验证
  • 主要用于集成测试和确认测试阶段

十一、测试类型(按质量特性划分)

质量特性

十二、测试类型(按符合性情况划分)

(一)符合性测试

测试软件有没有符合相关的要求。

1、先决条件

  • 符合性准则文件(标准、合同等)
  • 就绪的软件(软件所有项均为可用状态、文档)
  • 软件的系统元素

十三、测试类型(回归测试)

(一)软件有变动的情况

软件发生变动时需要进行回归测试。

1、对缺陷修复
  • 首先验证缺陷是否正确修复
  • 然后测试缺陷修复可能影响到的功能是否正确
2、对新增功能
  • 验证新功能的正确性
  • 测试可能受到影响的其他功能
3、对删减功能
  • 检测是否影响到保留的功能

十四、软件测试工具

JMeter

  • JMeter:是一个性能测试工具,同loadrunner类似,他功能较多,我们常用的功能是用imeter模拟多浏览器对网站做压力测试。

LoadRunner

  • LoadRunner:是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并评估系统性能。

JTest

  • JTest:是一个综合的发展广泛的实践证明,以提高开发团队的工作效率和软件质量的自动化测试解决方案。侧重于实践验证的Java代码和应用程序,无缝集成Parasoft的SOAtest以使最终结束今天的复杂的,分布式的应用和交易的功能和负载测试。

  • JBuilder:是一个可视化JAVA开发工具。它是在Java2平台上开发商业应用程序、数据库、发布程序的优秀工具。

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

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

相关文章

spring模块(六)spring监听器(1)ApplicationListener

一、介绍 1、简介 当某个事件触发的时候&#xff0c;就会执行的方法块。 当然&#xff0c;springboot很贴心地提供了一个 EventListener 注解来实现监听。 2、源码&#xff1a; package org.springframework.context;import java.util.EventListener; import java.util.fu…

游戏理解入门:Rust+Bracket开发一个小游戏

1. Game loop 使用game loop可以使得游戏运行更加流畅和顺滑&#xff0c;它可以&#xff1a; 初始化窗口、图形和其他资源&#xff1b;每当屏幕刷新他都会运行(通常是每秒30,60 )&#xff1b;每次通过循环&#xff0c;他都会调用游戏的tick()函数。 大致的原理流程如下&…

如何查看公网IP开放端口?

在计算机网络中&#xff0c;公网IP是指能够直接访问互联网的IP地址&#xff0c;而开放端口则是指外部网络可以访问的服务端口。查看公网IP开放端口可以帮助我们了解当前网络环境中哪些服务可以被外部网络访问&#xff0c;对于网络安全和远程连接非常重要。 天联组网 天联组网是…

2024蓝桥杯网络安全部分赛题wp

爬虫协议 题目给了提示访问robots.txt 会出三个目录 访问最后一个 点进去就flag{22560c15-577c-4c8b-9944-815473758bad} packet 下载附件&#xff0c;这个是流量包 放wireshark流量分析 搜http协议 发现有cat flag命令&#xff0c;直接看他返回的流量 最后base64解码即可…

Linux-笔记 i2c-tools

1、i2c-tools介绍 1、在日常linux开发中&#xff0c;有时候需要确认i2c硬件是否正常连接&#xff0c;设备是否正常工作&#xff0c;设备的地址是多少等等&#xff0c;这里我们就需要使用一个用于测试I2C总线的工具——i2c-tools&#xff0c;i2c-tools原理是通过操作/dev 路径 …

存储大作战:探索Local Storage与Session Storage的奥秘

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 存储大作战&#xff1a;探索Local Storage与Session Storage的奥秘 前言Local Storage与Session Storage简介数据存储生命周期容量限制安全性 前言 在Web的世界里&#xff0c;数据就像是一群流浪者&a…

TypeScript学习日志-第二十三天(装饰器Decorator)

装饰器Decorator 一、类装饰器 ClassDecorator 其中返回的 target 是 Http 的构造函数&#xff0c;有了构造函数就不会去破坏其自身原有的结构&#xff0c;当我们 Http 里面有多个属性或者方法的&#xff0c;当是我们不想看或者改变它&#xff0c;这时候可以在构造函数中增加即…

Ubuntu18.04 安装 anconda

anaconda官网 bash Anaconda3-2021.11-Linux-x86_64.sh一直回车&#xff0c;输入yes 选择安装目录 是否希望更新shell配置文件以自动初始化conda

组合数学汇总

阶乘、排列、组合 阶乘 x ! Π i : 1 x i x! \Pi_{i:1}^xi x!Πi:1x​i 。特殊情况0的阶乘是1。 排列 排列 P n m P_n^m Pnm​&#xff0c;从n个不同元素中取出m&#xff08;m≤n&#xff09;个元素&#xff0c;按照一定的顺序排成一列。第一个元素有n种选择&#xff0c;第…

AR人脸美妆SDK解决方案,让妆容更加贴合个人风格

美妆行业正迎来前所未有的变革&#xff0c;为满足企业对高效、精准、创新的美妆技术需求&#xff0c;美摄科技倾力打造了一款企业级AR人脸美妆SDK解决方案&#xff0c;为企业打开美妆领域的新世界大门。 革命性的人脸美妆技术 美摄科技的AR人脸美妆SDK解决方案&#xff0c;不…

IDEA设置 | 个性化设置

文章目录 IDEA设置总结IDEA自动生成序列化ID IDEA设置总结 本篇博客将专注于整理IDEA新UI界面的相关设置 IDEA自动生成序列化ID CtrlAltS快捷键打开设置界面 选择Editor→Inspections→JVM languages→Test frameworks&#xff0c;勾选上Serializable class without serialVe…

SpringCloud微服务之Eureka、Ribbon、Nacos详解

SpringCloud微服务之Eureka、Ribbon、Nacos详解 1、认识微服务1.1、单体架构1.2、分布式架构1.3、微服务1.4、SpringCloud 2、服务拆分与远程调用2.1、服务拆分的原则2.2、服务拆分示例2.2、提供者与消费者 3、Eureka注册中心3.1、Eureka的结构和作用3.2、搭建eureka-server3.2…

《构建高效审批系统:架构设计与实践》

在现代企业管理中&#xff0c;审批系统扮演着至关重要的角色&#xff0c;它不仅能够规范业务流程&#xff0c;提高工作效率&#xff0c;还能够增强企业的管理控制力和信息化水平。本文将探讨如何设计和构建一套高效的审批系统架构&#xff0c;以满足企业日常审批需求&#xff0…

docker-compose部署gitlab

需要提前安装docker和docker-compose环境 参考&#xff1a;部署docker-ce_安装部署docker-ce-CSDN博客 参考&#xff1a;docker-compose部署_docker compose部署本地tar-CSDN博客 创建gitlab的数据存放目录 mkdir /opt/gitlab && cd mkdir /opt/gitlab mkdir {conf…

纹理映射技术在AI去衣应用中的关键作用

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;其在图像处理领域中的应用也日益广泛。AI去衣&#xff0c;作为一种颇具争议的技术应用&#xff0c;指的是利用深度学习算法自动移除或替换图片中的衣物。在这一过程中&#xff0c;纹理映射技术扮演了不可或缺的角色。本…

初识指针(3)<C语言>

前言 前面两篇文章已经介绍了一些关于指针的基础知识&#xff0c;下面我们可以涉及一些指针较容易混淆的概念&#xff0c;本篇文章将介绍数组名的理解、指针输入打印数组的不同格式、一维数组传参的本质&#xff0c;冒泡排序&#xff0c;二级指针&#xff0c;指针数组等。 数组…

学SQL啦

3 SQL 3.1 SQL查询语言 新手学习网址&#xff1a;https://sqlzoo.net/wiki/SQL_Tutorial SQL查询语句语法结构和运行顺序 语法结构&#xff1a;select--from--where--group by--having--order by--limit运行顺序&#xff1a;from--where--group by--having--order by--limit-…

十二届蓝桥杯Python组1月中/高级试题 第一题

** 十二届蓝桥杯Python组1月中/高级试题 第一题 第一题&#xff08;难度系数2&#xff0c;18 个计分点&#xff09; 编程实现&#xff1a; 输入一个字符串&#xff0c;输出这个字符串的最后一个字符。 输入描述&#xff1a;输入一个字符串 输出描述&#xff1a;输出这个字符串…

短视频批量下载解决方案分享

对于作短视频运营的行业人员&#xff0c;获取对应的视频资源和素材是必不可少的。 所以需要一个批量搜索视频并且下载的工具非常重要 一&#xff1a;行业痛点&#xff1a; 1&#xff1a;只能通过单链接进行下载 2&#xff1a;不能通过关键词批量下载 3&#xff1a;无法获取…

【Ubuntu20.04安装java-8-openjdk】

1 下载 官网下载链接&#xff1a; https://www.oracle.com/java/technologies/downloads/#java8 下载 最后一行 jdk-8u411-linux-x64.tar.gz&#xff0c;并解压&#xff1a; tar -zxvf jdk-8u411-linux-x64.tar.gz2 环境配置 1、打开~/.bashrc文件 sudo gedit ~/.bashrc2、…