信息系统综合测试与管理

news2025/2/25 18:09:16

本文包括软件测试模型、测试技术和测试管理。

一、测试基础

1、软件测试模型

所谓测试模型(Test Model),是测试和测试对象的基本特征、基本关系的抽象。

1)V模型

V模型实际是软件开发瀑布模型的变种,它反映了测试活动与分析、设计的关系。V模型中的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它非常明确地标明了测试过程中存在的不同级别。
在这里插入图片描述

如图所示,左边为开发过程各阶段,右边为对应的测试阶段。V模型,优点是在开发阶段,测试工程师就可以介入,准备相应的测试工作,比如审查需求分析、编写测试计划等;缺点是仍然要在开发完成后才进入测试阶段,导致问题一直拖到后期才被发现。

V模型失败的原因是把系统开发过程划分为具有固定边界的不同阶段,导致测试人员很难及时采集测试所需信息,以及综合不同阶段信息加以总体考虑。

2)W模型

W模型是为了解决V模型的缺陷而演化出来的模型。解决V模型在软件开发编码完成后才介入测试工作,导致一些在需求和设计中的问题在后期验收测试中才被发现,不能体现“尽早地和不断地进行软件测试”的基本原则的问题。

W模型认为,测试工作应对应软件各开发阶段同步进行,由两个V字型模型组成,分别代表测试与开发过程,即一个测试V,一个开发V。
在这里插入图片描述
W模型强调测试阶段和开发阶段是同步进行的,而且测试的对象不仅仅是程序,还包括需求分析、概要设计和详细设计,测试伴随着整个软件开发周期。W模型有利于尽早地全面发现问题,减少总体测试时间,加快项目进度。

W模型的局限性,是与V模型一样,将软件的开发视为需求、设计、编码等一系列串行的活动,测试和开发仍然保持一种线性的前后关系,严格遵守先后顺序,无法支持迭代的开发模型,未能应付复杂多变的情况。对于开发过程中,需要事后补充文档,或者根本没有文档的情况,W模型中的开发和测试人员面临同样的困扰。

3)H模型

V模型和W模型都存在一定的局限性,它们都把软件的开发过程视为需求、设计、编码等一系列串行的活动,但实际上这些活动之间存在相互牵制的关系,并且大部分时间内都可以交叉进行。严格的阶段划分只是一种理想的状态。事实上,软件项目不可能等需求非常明确才开始进行,一般最初需求评审通过后,开发工作随即进行,边做边改。相应地,测试也不存在严格的次序关系,还会有反复触发、迭代和增量的关系。这一点,V模型和W模型都没有很好地体现出来。

倚天不出,谁与争锋?有专家提出了H模型。H模型将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。
在这里插入图片描述
H模型揭示了软件测试模型是一个独立的流程,贯穿于整个软件产品的周期,与其他流程并发地进行。优点是将测试从开发中独立出来,有利于研究更新的测试技术,可同时对多个项目进行测试,与项目的耦合程度较低,独立性强;但也因此对系统认识不够深入,影响测试质量和效率。

4)X模型

X模型诟病V模型无法引导项目的全部过程,认为一个模型不应该与实际脱节,是对V模型的纠正和改进。X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接和集成最终合成可执行的程序。
在这里插入图片描述
左边:针对单独程序片段进行相互分离的编码和测试,然后频繁交接,最终集成为可执行程序,之后又是一轮测试(系统测试?),通过后封装,提交给用户,或者作为更大规模和范围内集成的一部分。多根曲线表示变更可以在各个部分发生。

优点,强调单元测试及集成测试,测试更贴近实际,修复缺陷不受项目组人员限制(就是有一定的独立性?);
缺点,测试不够全面,没有需求测试、验收测试。

5)前置测试模型

将测试和开发紧密结合,提供一种轻松的方式,可以使项目加快速度。
在这里插入图片描述
前置测试将测试执行和开发结合在一起,并在开发阶段以”编码-测试-编码-测试“的方式来体现。当程序片段一旦编写完成,就会立即进行测试。一般是单元测试,也有可能是集成测试或其他测试。这是发现错误最经济的方式。

前置测试将测试分为技术测试和验收测试两个独立的进程。技术测试针对代码的正确性,验收测试验证需求的满足性,另外还可能包括负载测试、安全性测试、可用性测试等。

6)各测试模型比较

这是我根据个人理解的总结,可能有误。

V模型、W模型、H模型、X模型、前置模型,都以V模型作为参照,作出各自的改进。V模型在测试种的地位,就相当于开发模型中的瀑布模型,绕不过去,是基础。

V模型的特点,是开发在先,测试在后,阶段分明,缺点显而易见,开发与测试脱节;
W模型,是开发一段,测试一段,如影随形。但仍然是阶段分明。
H模型,将测试完全独立出来,按照自己的节奏,想测就测,但测试跟系统关系不够密切,有点貌合神离的味道。
X模型,针对开发阶段进一步划分,划分成一个个片段,加大测试的频率,最后再集成测试、封装成完整系统进行交付。貌似太琐碎了,并且只侧重测试开发,对需求分析、系统验收的测试不够,缺乏总体性。真是明察秋毫,不见舆薪。
前置模型,将测试分为技术测试和验收测试,各自独立,完美。

2、软件测试类型

1)分类

1、按开发阶段:单元测试、集成测试、系统测试、验收测试
2、按测试实施组织:α测试(开发方)、β测试(用户方)、第三方测试
3、按测试执行方式:静态测试、动态测试
4、按是否查看代码(或测试技术):黑盒测试、白盒测试、灰盒测试
5、按是否手工执行划分:手工测试、自动化测试
6、按测试对象划分:性能测试、安全测试、兼容性测试、文档测试、易用性测试(用户体验测试)、业务测试、界面测试、安装测试
或进一步细分,其中质量属性测试有:容错性测试、兼容性测试、安全性测试、可靠性测试、维护性测试、可移植性测试、易用性测试。
7、按测试地域划分:本地化测试、国际化测试

负载测试压力测试强度测试稳定性测试

2)名词解释

(1)集成测试
又称为组装测试、联合测试、子系统测试或部件测试。

分为
非增值式:先分别测试每个模块,然后结合在一起测试;
增值式:又称为渐增式组装,首先一个个模块测试,然后逐步组装,边组装边测试

非增值式简单,资源利用率高,缺点是成本高,难以定位错误;增值式能较早发现和定位问题,缺点是测试周期长,资源利用不够充分。

(2)系统测试
对已集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要素。

(3)验收测试
完成了功能测试和系统测试之后,产品发布之前所进行的软件测试活动,是技术测试的最后一个阶段,也称为交付测试、发布测试或确认测试。

【验收测试标准】
完全执行了验收测试计划中的每个测试用例
在验收测试中发现的错误已经得到修改并且通过了测试
完成软件验收测试报告

【注意事项】
必须编写正式的、单独的验收测试计划
验收测试必须在实际的用户运行环境中运行
由用户和测试部门共同执行比较好。如果是公司自我开发产品,由测试部门联合多个部门共同进行。

(4)灰盒测试
介乎于白盒测试和黑盒测试之间。既关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征、事件、标志来判断内部的运行状态。灰盒测试是基于程序运行时的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序,并采集程序路径执行信息,和外部用户接口结果的测试技术。

黑盒测试只需关心整个软件系统的边界,灰盒测试需要关心模块之间的交互,白盒测试需要了解模块内部的实现细节。

二、软件测试技术

1、黑盒测试法

黑盒测试也称为功能测试,通过测试来检测每个功能是否都能正常使用。测试时,把被测试程序视为一个不能打开的黑盒子,在完全不考虑内部结构和内部特性的情况下进行测试。旨在检查程序功能是否能按照需求规格说明书的规定正常使用,输入输出是否正确等。

黑盒测试有两种基本方法:通过测试和失败测试。通过测试确认软件能做什么;失败测试则是通过搞垮软件来观察软件的缺陷(比如压力测试?)

黑盒测试的优点是简单、方便,缺点是覆盖率低,自动化测试复用率不够。

黑盒测试不可能采用穷举法输入测试,测试用例是将测试行为具体量化的方法之一。
在这里插入图片描述

黑盒测试的测试用例设计方法主要有:
1)测试区域确定法
2)数据覆盖法
3)逻辑推断法
4)业务路径覆盖法

2、白盒测试法

白盒测试又称为结构测试或逻辑驱动测试。

白盒测试将测试对象看作一个透明的盒子,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按照预定要求正确工作,而不顾它的功能。

1)静态白盒测试
在不执行的情况下,有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。优点是尽早发现缺陷,为黑盒测试提供思路。

2)动态白盒测试
又称为结构测试。查看并使用代码的内部结构,从而设计和执行测试。

三、信息系统测试管理

测试管理是为了实现 测试工作预期目标,以 测试人员 为中心,对 测试生命周期 及其所涉及的资源进行有效的 计划、组织、领导和控制 的协调活动。

1、测试管理概述

随着软件开发规模增大,复杂程度增加,软件测试更加困难,加强对测试工作的组织和管理就显得尤为重要。

软件测试不能只针对程序进行测试,因为如果是系统设计上的错误,返回来修改代价非常高。较理想的做法是对软件的开发过程,按照软件工程各阶段结果进行严格的审查。测试的准备工作,在系统分析和设计阶段就要开始。

测试管理是以测试人员为中心,对测试生命周期及相关资源进行计划、组织、领导和控制的协调活动。管理的要素包括测试策略的制定、测试项目进度跟进、项目风险评估、测试文档评审、测试内部和外部的协调沟通、测试人员的培养等。

注:测试周期,传统上划分为测试计划、测试设计和测试执行。

2、测试管理内容

按照管理范围和对象,测试管理可以分为部门管理和测试项目管理。部门管理就是管人,管资源等;测试项目管理就是管项目测试人员,测试计划、策略,各项测试工作等。

3、测试监控管理

为测试活动提供反馈信息和可视性。记录,评估,分析。重点是分析缺陷,比如存活时间,分布密度,趋势分析等。

4、配置管理

包括搭建满足要求的测试环境,还包括获取正确的测试、发布版本。

5、测试风险管理

对需求的理解、测试用例设计、测试技术、回归测试不完全、沟通协调等,很多,不一一细说。

6、测试人员绩效考核

测试周期,传统上划分为测试计划、测试设计和测试执行。测试计划面向测试经理,测试设计和执行面向测试人员。

考核内容包括:
1)工作内容考核

2)工作效率与工作质量考核

3)自动化测试人员效率的度量
自动化测试引入和使用是否合理,测试结果如何等

4)对测试项目负责人效率的度量
比如测试介入时机,测试计划的合理性,测试跟进情况,等等

5)测试管理的度量

注意事项:
考核每月进行,应根据项目进度选择不同的考核指标;
测试时间长短也要纳入测试系数;测试指标良好,但时间短,考核分数不会太高;
测试经理设计和执行部分和测试人员一起考核,但管理工作单独考核;
考核要考虑项目实际情况,不可轻言激励措施或淘汰机制。

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

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

相关文章

CSDN第十期竞赛

比赛详情: 通过这次的周赛让我受益颇多,这次的题目都是平常练习题目的变形,这次的竞赛是十分有意义的,加强对练习题的强化。 两道模拟题: 目录 1.熊孩子拜访 2.走楼梯 1.熊孩子拜访 题目描述 已知存在一个长度为n的…

FB显示学习期数据不足怎么办?

组合投放广告组和广告系列。组合投放广告组和广告系列有助于加快获得所需成效的速度,这意味着广告投放后很快便可看到稳定的成效。 扩大受众群。受众越多,用户完成您的优化事件的机会越多。 提高预算。如果您的预算过低,无法获得约 50 个​…

47、泛型

一、引入 1、传统方法: package generic_;import java.util.ArrayList; SuppressWarnings({"all"}) public class Generic01 {public static void main(String[] args) {ArrayList arrayListnew ArrayList();arrayList.add(new Dog("旺财",10)…

Spring项目结合Maven【实现读取不同的资源环境】

📃目录跳转📚简介:🍑修改pom.xml🥞修改application.yml🚀 演示:📚简介: 由于我们写功能的不能影响到线上环境的配置,所以每一次增加功能我们都要吧项目部署到…

STM32HAL库单ADC+DMA学习及测试记录

一、打开STM32CubeMX选择对应的芯片型号,后进入开发界面 1、双击“STM32CubeMX”软件打开,打开后如下图所示,选择红色框; 选择后可能会更新,等待更新完成即可,如下图: 2、选择开发芯片&#x…

【剧前爆米花--爪哇岛寻宝】面向对象的三大特性——封装、继承以及多态的详细剖析(上——继承)。

作者:困了电视剧 专栏:《JavaSE语法与底层详解》 文章分布:这是一篇关于Java面向对象三大特性——继承的文章,在本篇文章中我会分享继承的一些基础语法以及类在继承时代码的底层逻辑和执行顺序。 目录 继承 需求 继承的定义及语…

nginx(六十八)proxy模块(八)nginx与上游的ssl握手

一 nginx作为客户端与上游的SSL/TLS握手 理解上: nginx作为客户端,此时类似浏览器的角色,发请求建立连接 nginx作为server端与下游进行SSL/TLS握手 ① nginx与后端选择什么样的协议 1)如果nginx与上游是局域网内,一般通过http建立请求,不需要进行…

详解__int128,最大可用整数类型

前言:有些题目需要的数值刚好比 long long 的最大值大那么一点点,那么我们就可以用__int128 来搏一搏(并不是所有OJ都支持这个数据类型,受编译标准影响) 最大值是多少 int 最大值:2^(32-1)-1【受电脑字长影…

碳中和专题:碳足迹核算、碳中和顶刊论文、碳排放交易2022

(1)碳中和顶刊论文 1、数据来源:自身 2、具体内容: 01周宏春:碳循环经济内涵、实践及其碳中和的深远影响.pdf 02谢和平:碳中和目标下煤炭行业发展机遇.pdf 03秦阿宁:碳中和背景下的国际绿色技…

【FPGA】基于状态机实现自动售货机模拟

文章目录一、售货机功能二、售货机状态分析及模块划分三、代码实现四、上板验证一、售货机功能 此自动售货机模拟基于EP4CE6F17C8开发板实现,用按键,led灯,数码管表示各个输入输出 功能: 此自动售货机可以选择A(三元…

[激光原理与应用-21]:《激光原理与技术》-7- 激光技术大汇总与总体概述

目录 前言: 第1章 什么是激光技术 1.1 什么是激光技术 1.2 激光技术的分类方法 第2章 激光的应用技术 2.1 激光加工技术 2.2 激光快速成型 2.3 激光切割 2.4 激光焊接 2.5 激光雕刻 2.6 激光打孔 2.7 激光蚀刻 2.8 激光手术 2.9 激光武器 2.10 激光能…

详解诊断数据库ODX-D

文章目录 前言一、ODX-D具体内容是什么?二、ODX企标中关于ODX-D定义内容三、ODX-D在CANdelaStudio以及ODXStudio中定义内容总结前言 ​又是一周末,静下心码下字,将ODX这个Topic补充完整。 ODX含义是开放式诊断数据交互,是欧洲那边提出诊断数据架构,详情可如下图: 核心…

区间信息维护与查询【树状数组 】 - 原理2 多维树状数组

区间信息维护与查询【树状数组 】 - 原理2 多维树状数组 我们已经知道一维树状数组修改和查询的时间复杂度均为O (logn),可以扩展为m 维树状数组,其时间复杂度为O (log ^m n ),对该算法只需加上一层循环即可。二维数组a [n ][n ]、树状数组c…

创建TCP通信与粘包问题解决

创建TCP通信 nodeJS的Net模块实现了底层通信接口 通信过程 创建服务端:接收和回写客户端数据创建客户端:发送和接收服务端数据数据传输: 内置服务事件和方法读写数据 通信事件 listing事件:调用server.listen方法之后触发con…

介绍 10 个有用的 Flutter 软件包

介绍 10 个有用的 Flutter 软件包 原文 https://genotechies.medium.com/introducing-10-useful-flutter-packages-1252c4b75fa7 前言 FLutter 软件包使您的开发简单快速。然而,有利有弊。有时候,如果从头开始开发这个特性将是有益的,因为可定…

Hive日分区表如何快速导入到StarRocks

1、背景 业务现状:集团使用FineBI做数据呈现及报表分析工具,经过近两年的BI建设,供应链域及营销域的BI建设已初具规模并体系化。数仓规模60TB,FineBI数据集约8000个,BI挂出报表数约1600个,报表月增幅在40左…

非凡社群管理之社群管理有什么内容

社群作为一个非常重要的私域流量池,它本身就是一个提升用户价值的利器。但如果管理不好社群,那么也是无济于事的。 社群小助手提示:高效管理社群,以下这五个方面要做好。 一,社群为用户解决问题,让群成员都…

iwebsec靶场 SQL注入漏洞通关笔记6- 宽字节注入

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注&#…

【ML特征工程】第 7 章 :通过K-Means 模型堆叠进行非线性特征化

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

计算机视觉之目标检测(object detection)《1》

在计算机视觉领域,除了识别图像并分类之外,我们很多时候想关注图像里面一些感兴趣的目标,比如视频监控中寻找一个或多个嫌疑犯;无人驾驶需要识别车辆、行人、红绿灯、路障等等,都是需要去及时掌握画面中的不同目标。我…