软件测评师教程之软件测试基础<一>更新中...

news2024/11/19 20:38:51

目录

  • 一.软件测试分类
    • (1)按照开发阶段划分
    • (2)按照测试实施组织划分
    • (3)按照测试技术划分
  • 二.软件测试过程模型
    • (1)V模型
    • (2)W模型
    • (3)H模型
    • (4)X模型
    • (5)前置测试模型
    • (6)测试模型的使用
  • 三.软件测试策略
    • (1)测试信息流
    • (2)分析设计阶段
      • 1.需求说明书评测
      • 2.概要设计说明书评测
      • 3.详细设计说明书评测
      • 4.软件编码规范评测
    • (3)开发阶段
      • 1.单元测试
      • 2.集成测试
      • 3.确认测试
      • 4.系统测试
    • (4)软件验证与确认(V&V)过程
      • 1.V&V基本概念
      • 2.软件V&V过程
      • 3.软件V&V过程中的测试
      • 4.软件测试V&V活动

一.软件测试分类

(1)按照开发阶段划分

1.单元测试(模块测试)

单元测试需要从程序内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。

2.集成测试(组装测试)

软件集成的过程是一个持续的过程,会形成很多个临时版本,在不断的集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试也叫版本验证测试、提交测试。

3.确认测试

通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求说明书中规定的要求。

4.系统测试

在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户的需求。

5.验收测试

按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。

(2)按照测试实施组织划分

1.开发方测试
2.用户测试
3.第三方测试

(3)按照测试技术划分

1.白盒测试(结构测试)

对程序内部结构的分析、检测来寻找问题。将程序看成一个透明的白盒子,能清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的。

2.黑盒测试

通过程序的外部来发现缺陷和错误。将程序看成一个黑盒子,不考虑程序结构和处理过程,在程序的界面进行测试,检查是否按照需求规定来正常实现。

3.灰盒测试

介于白盒与黑盒之间的测试。灰盒关注输出对于输入的正确性以及内在表现,但这种关注不像白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。

二.软件测试过程模型

(1)V模型

V模型是最具有代表意义的测试模型,但存在着一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,容易使人理解为测试是软件开发的最后一个阶段,只针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才被发现。
在这里插入图片描述

(2)W模型

强调测试伴随着整个软件开发周期,测试的对象也不仅仅是程序,需求、功能和设计同样要测试。可以说,测试与开发是同步进行的,从而有利于尽早地发现问题。以需求为例,需求分析一完成,我们就可以对需求进行测试,而不是等到最后才进行针对需求的验收测试。
W模型和V模型都把软件开发视为需求、设计、编码等一系列串行的活动。将软件开发和测试看成了一种线性的前后关系,需要有严格的指令表示上一阶段完全结束,才可正式开始下一阶段,这样就无法支持迭代、自发性以及变更调整。
在这里插入图片描述

(3)H模型

H模型揭示了软件测试不仅仅指测试的执行,还包括很多其他的活动;软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行;软件测试要尽早准备,尽早执行;软件测试是根据被测物的不同而分层次进行的。不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。
在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。
在这里插入图片描述

(4)X模型

X模型是弥补V模型的一些缺陷。X模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序。【定位了探索性测试】
在这里插入图片描述

(5)前置测试模型

开发与测试相结合;对每一个交付内容进行测试;在设计阶段进行测试计划和测试设计;测试和开发结合在一起;让验收测试和技术测试保持相互独立。在这里插入图片描述

(6)测试模型的使用

在W模型的框架下,运用H模型的思想进行独立地测试,并同时将测试和开发紧密结合,寻找恰当的就绪点开始测试并反复迭代测试,最终保证按期完成预定目标。

三.软件测试策略

(1)测试信息流

在这里插入图片描述

(2)分析设计阶段

1.需求说明书评测

编制良好需求说明书的8条原则:
原则1:功能与如何实现相分离,描述需要“做什么”而不是“如何做”;
原则2:要求使用面向处理的规格说明语言,讨论来自环境的各种刺激可能导致系统做出什么样的功能性反应,来定义一个行为模型,从而得到“做什么”的规格说明;
原则3:描述该目标软件与系统的其他系统元素交互的方式;
原则4:规格说明必须包括系统运行的环境;
原则5:系统规格说明必须是一个认识的模型,而不是设计和实现的模型;
原则6:规格说明必须是可操作的;
原则7:规格说明必须容许不完备性并允许扩充;
原则8:规格说明必须局部化和松散的耦合。它所包括的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落。同时,规格说明应被松散的构造,以便容易加入和删去一些段落。

需求说明书的框架:
在这里插入图片描述

需求说明书评测规范:
在这里插入图片描述
在这里插入图片描述

2.概要设计说明书评测

评测内容:
①可追溯性:软件的每一成分是否可追溯到某一项需求;
②接口:确认内部接口与外部接口是否已经明确定义;
③风险:
④实用性;
⑤技术清晰度;
⑥可维护性;
⑦质量;
⑧各种选择方案;
⑨限制;
⑩其他具体问题:对于文档、可测试性、设计过程等进行评估。

3.详细设计说明书评测

与概要说明书基本相同,这里不再赘述。

4.软件编码规范评测

A.源程序文档化:①符号名的命名,这些名字应能反应它所代表的实际东西,应有一定的实际意义;②程序的注释;③标准的书写格式。
B.数据说明:①数据说明的次序应当规范化;②说明语句中变量安排有序化;③使用注释说明复杂数据结构。
C.语句结构:语句构造力求简单、直接,不能为了片面追求效率而使语句复杂化。
D.输入和输出:输入和输出的方式和格式应尽可能方便用户的使用。

(3)开发阶段

1.单元测试

①模块接口测试。
②局部数据结构测试。
③路径测试。
④错误处理测试。
⑤边界测试。

2.集成测试

3.确认测试

4.系统测试

(4)软件验证与确认(V&V)过程

1.V&V基本概念

2.软件V&V过程

3.软件V&V过程中的测试

4.软件测试V&V活动

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

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

相关文章

手绘图说电子元器件-控制与保护器件

控制与保护器件主要包括继电器、开关、接插件和保险器件等,是电子电路中经常使用的器件。 继电器 继电器是一种常用的控制器件,它可以用较小的电流来控制较大的电流,用低电压来控制高电压,用直流电来控制交流电等,并且可实现控制电路与被控电路之间的完全隔离。 继电…

IPV6探测

目录本机是否支持IPv6如何确认一个网站是否开启 IPv6在线工具:IP查询在线工具:IPv6连接测试在线工具:国家IPv6发展监测平台本地工具局域网设备探测pingMSFThc-Ipv6Ipv6-Toolkit端口探测MSFNmap【存在问题】参考领导提了个问题,怎么…

Mybatis 解析mapper过程

Mapper配置的四种方式 配置方法一共有四种, 分别对应四种解析方式,从解析源码可以看出来 private void mapperElement(XNode parent) throws Exception { //添加接口映射器if (parent ! null) {for (XNode child : parent.getChildren()) { //获取所有…

4.7W防削顶单声道D类音频功率放大器HT6872介绍

HT6872简介 HT6872是一款低EMI,防削顶失真,单声道免滤波D类音频功率放大器。在6.5V电源,10%THDN,4Ω负载条件下,输出4.71W功率,在各类音频终端应用中维持高效率并提供AB类放大器的性能。 HT6872的最大特点是…

C++:设计一个保留字(或关键字)的统计程序,从源数据文件(C或C++语言程序)中,读取字符或字符串,与保留字文件中的保留字进行匹配比较,并统计计数。

2.1题目: 设计一个保留字(或关键字)的统计程序 l建立保留字文件; l从源数据文件(C或C语言程序)中,读取字符或字符串,与保留字文件中的保留字进行匹配比较,并统计计数。…

python数据分析(1)numpy基础

iamseancheney/python_for_data_analysis_2nd_chinese_version: 《利用Python进行数据分析第2版》 (github.com) NumPy的ndarray:一种多维数组对象 1.性质 NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速…

73.qt quick-通用可拖拽表盘示例

截图如下所示: 效果如下所示: 源码已上传至专栏群(第一章底部获取)中,感兴趣的自行下载 demo使用介绍 控件自定义属性已经封装出来了,如下图所示: main.qml如下所示: import QtQuick 2.14 import QtQuick.Window 2.14 import QtQuick.Extras 1.4 import QtQuick.Layouts 1.1…

微信小程序-会议OA项目03

目录 1.Flex布局简介 1.1 什么是flex布局 1.2 flex属性 2.轮播图--组件的使用 3.会议OA项目-首页 1.Flex布局简介 布局的传统解决方案,基于盒状模型,依赖 display属性 position属性 float属性 1.1 什么是flex布局 1) Flex是Flexible Box的缩写&…

攻防世界-fileclude

题目 访问题目场景 阅读php代码 <?php include("flag.php"); highlight_file(__FILE__); if(isset($_GET["file1"]) && isset($_GET["file2"])) {$file1 $_GET["file1"];$file2 $_GET["file2"];if(!empty($f…

法国半导体制造企业RIBER部署MBE技术以支持量子计算

图片来源&#xff1a;网络 法国半导体制造企业RIBER在2022年进一步提升了其在量子处理器耗材市场的发展水平。 早在2021年6月&#xff0c;RIBER已开始部署系统&#xff0c;它在法国图卢兹与 法国国家科学研究中心系统分析与架构实验室&#xff08;LAAS-CNRS&#xff09;创办联合…

Google Guice 1:如何实现依赖注入?

1. 待完善的邮箱程序 1.1 手动注入依赖 前一篇博文《谈谈自己对依赖注入的理解》&#xff0c;笔者只是基于依赖注入的思想&#xff0c;为EmailClient预留了依赖注入的入口 到目前为止&#xff0c;我们只是让dependent class预留了依赖注入的入口&#xff0c;要想实现依赖的自动…

TOPLAS‘07: Effective Field-Sensitive Pointer Analysis for C 字段敏感C程序指针分析

文章目录1. 集合约束式的指针分析1.1 基本介绍1.2 求解约束1.2.1 图传播1.2.2 迭代顺序1.2.3 节点替换 (Variable Subsititution)1.2.4 传递化简 (Transitive Reduction)1.2.5 集合的表示1.2.6 差分传播1.2.7 相同解的集合2. 扩展约束模型2.1 简介2.2 处理函数指针2.3 处理字段…

NNOM第一个模型实例

目录 一、keras开发环境搭建 二、安装visual studio 2019 1. 下载安装 2. 配置使用MSVC编译器 三、编译第一个NNOM的demo 1. 下载源码 2. 安装依赖库 3. 编译auto_test 四、移植 1. 新建新的VS项目 2. 拷贝相关源码 3. 配置工程 4. 编译并运行 一、keras开发环境搭…

Java并发——线程池

线程池 一、线程池的作用 线程的创建和销毁需要占用CPU资源&#xff0c;若频繁的进行创建和销毁会产生很大的开销&#xff0c;影响性能和系统稳定性。 线程池的优点&#xff1a; 线程池可以保存创建好的线程随用随取&#xff0c;降低资源消耗&#xff08;重复利用线程池中的…

一文读懂堡垒机对企业信息安全起到的重要作用

堡垒机的发展历程大致可分为以下三个阶段&#xff1a;      第一代堡垒机&#xff1a;堡垒机最初的理念起源于跳板机&#xff0c;但跳板机无法实现对运维人员操作行为进行控制和审计&#xff0c;一旦出现违规操作导致操作事故&#xff0c;很难快速定位原因和责任人。    …

Java分析-对象头

前言 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding) HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据, 如哈希码(HashCode)、GC分代年龄、锁…

移动是否是商业bi的前景?

一 前言 五年前就有人预言商业智能BI移动化会成为必然趋势&#xff0c;如今5年时间已过&#xff0c;移动BI的普及程度并不如预期。原因主要是数据分析的交互性一直是很高的要求&#xff0c;手机屏幕的限制一直抑制了商业智能BI在移动端得到更好发挥的障碍。 比如数据看板或可…

[笔记] - springboot-jpa 使用sqlite 踩坑

前言&#xff08;可略过&#xff09; 最近准备写一些小项目来验证一下脑袋中的项目 因为是“小项目”&#xff0c;所以对于数据持久化的实现&#xff0c;就不想用mysql等很重的db了 而且不用考虑安全性&#xff0c;故首先想到的就是使用 sqlite 本地数据库即可 然后因为是使用…

Android进阶 之 SPI机制及实现原理

什么是SPI SPI &#xff0c;全称为 Service Provider Interface&#xff0c;是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件&#xff0c;自动加载文件里所定义的类。是Java提供的一套用来被第三方实现或者扩展的API&#xff0c;它可以用来启用…

BCryptPasswordEncoder加密与MD5加密的区别

MD5 加密说明 MD5&#xff08;Message Digest Algorithm 5&#xff09;中文名为消息摘要算法第五版&#xff0c;是计算机安全领域广泛使用的一种散列函数&#xff0c;用以提供消息的完整性保护。 MD5作为一种常用的摘要算法&#xff08;或指纹算法&#xff09;&#xff0c;其…