IT项目管理之软件测试

article/2025/11/5 3:33:09

1. 定义

软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。

2. QC & QA & QM

对于软件质量而言,QC、QA、QM是三个常见且易混淆的概念。

名词概念备注
QCQuality Control(质量控制)测试人员负责,通过验证的方法保证质量达到要求
QAQuality Assurance(质量保证)过程保证人员负责,通过过程的方法保证质量达到要求
QMQuality Management(质量管理)质量管理人员负责,一般为负责质量的管理者,通过制定过程、协调资源等一系列的手段为QA、QC工作创造良好的环境和条件

下图可以更清晰的解释QC、QA和QM三者的区别:

从QC到QA再到QM是一个循序渐进的变革过程,体现了质量管理理论的发展脉络。

在日常工作当中,我们最需要厘清的是QA和软件测试的关系。QA是质量保证,而软件测试是质量保证的一种手段。QA不仅包括软件测试,还包括流程和产品方面的规范化管理措施等。大部分公司QA等价于软件测试,这种理念其实还停留在QC阶段,是针对编码结果的检验,忽略了需求分析和系统设计阶段的质量验证。

3. 测试模型

随着软件测试理论和技术的发展,测试人员通过大量实践,总结出了若干测试模型,如常见的V模型和W模型。这些模型对测试活动进行抽象处理,并与开发工作紧密结合,是测试过程管理的重要参考依据。

3.1 V模型

  • 单元测试,主要是由开发人员自己对编写的代码进行自测或相互进行交叉测试,用以检查代码是否符合编码规范,是否存在逻辑错误。
  • 集成测试,将经过单元测试的模块组装成完整的程序。工作任务包括制定集成测试策略,确定集成测试步骤,设计集成测试用例,然后逐一添加模块进行测试。集成测试由测试人员负责,应该在概要设计完成后进行设计工作,并在单元测试完成后执行。
  • 系统测试,是为了验证需求分析确定的功能是否齐全并被正确实现,同时还要对安装、部署、适应性、安全性、界面等非功能性需求进行测试。系统测试也由测试人员负责,应该在需求分析完成后进行设计,在集成测试完成后进行实施。
  • 性能测试,用来检查系统是否满足规定的性能要求。性能测试通常选择一些典型的功能,检查这些功能在大量用户同时使用时系统是否稳定。性能测试由测试人员负责,可以在系统测试完成后进行,也可以对重要模块先进行性能测试,可以贯穿整个测试周期,目的是尽早发现系统的性能瓶颈并提早解决。
  • 验收测试,(User Acceptance Test, UAT), 目的是验证系统与需求的匹配性,以及界面的友好性、时间响应速度等。验收测试由实际的使用者负责完成,测试人员配合进行。

每种测试都有自己的目的和针对性。单元测试针对程序的规范和逻辑,集成测试重点是模块之间的连接,系统测试侧重系统功能的实现,性能测试验证系统的稳定性和效率,验收测试检验系统是否实现业务需求,相互之间不可替代。

V模型的缺陷在于仅仅把测试过程作为编码后的一个阶段,忽略了测试对需求分析、系统设计的验证,因此需求阶段的缺陷很可能一直到后期的验收测试才被发现,那时进行弥补将耗费大量的人力物力。

3.2 W模型

相较于V模型,W模型在软件开发的各个阶段都同步进行质量验证活动,W模型由两个V模型组成,分别代表开发过程和测试过程。

W模型认为测试应伴随着整个软件的开发周期,而且测试的对象不仅仅是编码的程序,需求和设计阶段的交付物同样需要进行测试和验收。

4. 测试流程

通用的测试流程包括计划、设计、实现、执行和完成几个步骤:

  • 测试计划,开展测试工作首先就是要制定一个测试计划,需要确定这次测试的目标和策略,估计测试用例、测试实现的工作量,确定所需要的人力资源和测试环境资源。这些内容都写在测试计划中,测试计划需通过评审才可以执行。
  • 测试设计,制定测试计划之后第一步就是测试设计,需要确定测试需求,设计测试用例,对测试用例进行评审等。
  • 测试实现,设计完成以后就是测试实现的过程,任务包括搭建测试环境、编写测试脚本、编写驱动程序和准备测试数据。根据需要尝试测试部分程序,然后修改测试用例和驱动程序等。
  • 测试执行,根据计划将测试任务分配给测试的执行人员,测试执行人员根据测试用例输入测试数据、记录测试结果。发现问题后需要记录和跟踪缺陷,缺陷修改完成后要进行验证。执行中还要对测试环境进行管理和监控。
  • 测试完成,主要工作完成之后要对测试的情况进行分析、总结,确认是否达成了目标,给出测试结论和建议。具体的工作包括评估测试活动、分析测试结果、编写测试报告,最后对测试的整体情况进行评审并形成结论。

5. 测试的主要角色和职责

测试不是测试组一个团队的事情,需要整个项目的所有同事一起参与,测试工作所涉及的主要角色和职责大致如下:

角色职责
项目经理与测试团队共同制定测试的质量目标,并跟踪目标的达成情况;
总体管理测试的进度和缺陷修改工作的进展;
提供测试活动所需的文档;
参加测试计划、测试用例、测试报告的评审
测试组织者制定测试计划、组织和实施测试工作,包括组织、监控和管理测试活动,确保达成测试的质量目标,任务包括:
1. 组织搭建测试环境、准备测试数据、编写测试用例;
2. 组织测试人员编写测试脚本(如果能自动化测试);
3. 组织测试人员建立执行流程并进行联调;
4. 组织维护测试用例和测试脚本;
5. 对缺陷的提交和验证进行追踪。
负责编写测试报告,参加测试计划、测试用例、测试报告的评审
测试设计者分析测试需求、设计测试用例;
编写测试脚本,建立和联调测试的执行流;
参加测试计划、测试用例、测试报告的评审;
负责测试环境的搭建
测试执行者负责测试用例的执行、记录测试结果和缺陷;
参加测试计划、测试用例、测试报告的评审;
负责缺陷修改后的重新测试和验证
缺陷修改者负责修改测试发现的缺陷;
参加测试计划、测试用例、测试报告的评审
缺陷分配者负责审核和分配测试缺陷;
对测试中发现的问题进行定位并协助解决;
参加测试计划、测试用例、测试报告的评审
质量保证者组织评审测试相关的测试计划、测试用例、测试报告;
负责审计测试过程,确保测试按照规范和流程进行
配置管理员负责测试过程中版本的集成和发布;
负责测试中各类交付物的配置管理;
参加测试计划、测试用例、测试报告的评审


http://chatgpt.dhexx.cn/article/N7qL3h7Y.shtml

相关文章

软件项目测试的具体内容

功能测试: 对指定业务所有功能进行测试,撰写测试用例,执行测试用例,出具测试报告和BUG列表,专用BUG管理工具进行测试管理。 根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们…

Linux下轻量级数据库-SQLite3(嵌入式设备)

一、概念 数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table)。 二、常见的数据库 大型数据库(大型机) —————- Oracle(亿级) 中型数据库(分布式超大型) ———— mysql(百万级) 轻…

二、MySQL

MySQL是一个小型关系数据库管理系统。与其他大型数据库管理系统 (例如Oracle、DB2、SQL Server 等)相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低,并且提供的功能对稍微复杂的应用来说已经够用&#xff0c…

数据库——多种方法导入Excel数据

文章目录 一、SQL Server导入Excel数据二、小技巧导入Excel数据三、使用Microsoft.ACE.OLEDB导入Excel数据四、手动添加一行数据五、手动添加多行数据五、解决类型不匹配致导入失败 一、SQL Server导入Excel数据 接下来就一直点击NEXT,直到完成 此时EXCEL的数据就被…

MySQL数据库简介

MySQL数据库简介 MySQL数据库是一种关系型数据库管理系统,是一种开源软件由瑞典MySQL AB公司开发,08年1月16日被Sun公司收购,09年Sun公司又被Oracle公司收购。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点&a…

Linux中的小型数据库 SQLite3

数据库(SQLite) 数据库后缀 .db(data base) gcc时加 -lsqlite3 这些是小希归纳的SQLite的一些重要语句,与示例应用 如果想要进一步学习,大家可以去网上搜 SQLite3的书籍

在JSTL 中使用小型数据库 SQLite

文章目录 一、Sqlite 数据库命令行工具的下载下载地址: 二、Sqlite 数据库 shell 工具的使用方法1.创建数据库2.Sqlite 数据库中表的创建:3.表中数据的插入4.Sqlite 数据库命令行的退出 三、ER图转化为数据库3.1建表3.2 向表中插入数据3.3 输出数据库中相…

实现一个小型数据库--记一次中级软件设计实作浮沉历程

说在前头:本篇文章主要是记录这次项目的过程,不全是贴代码,具体的程序移步这里,不喜欢的同学请轻喷。 事件起因:大三狗一枚,专业是软件应用。这学期的中级软件设计实作题目是实现一个小型的数据库&#xf…

用xml充当小型数据库案例

利用dom4j工具&#xff0c;将user.xml作为一个小型的数据库&#xff0c;然后控制台输入进行用户名与密码的匹配 /*user.xml文件放在src下*/ <?xml version"1.0" encoding"utf-8"?> <users><user id"001" name"ecri" …

数据库上机3(小型数据库应用程序开发)

注&#xff1a; ①各上机报告均根据《数据库技术与应用》课程的上机任务所做。 ②课程教材为 《数据库系统概论&#xff08;第五版&#xff09;》/王珊, 萨师煊编著/北京:高等教育出版社,2014 上机要求&#xff1a; 1、自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、…

【SQL数据库设计】数据库设计【小型数据库】

数据库设计 需求 表结构字段类型、是否允许为null、是否有默认值索引设计数据库引擎的选择 根据产品原型分析&#xff0c;词性分析法&#xff0c;名词创建表或字段&#xff0c;动词表示关系。 数据存储&#xff1a;长期存储的数据&#xff0c; 1.主键&#xff1a;唯一、自增。 …

小型数据库系统开发作业

文章目录 题目数据库设计UI界面开发展示 原文链接&#xff1a;https://zhanghan.xyz/posts/60088/ 题目 自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、JDBC、MySQLi或者其它&#xff09;&#xff0c;根据您使用的上层语言&#xff08;不限语言&#xff08;但要求与自…

关于Freesurfer提取annotation分区结构特征的命令mri_segstats

Freesurfer提供了基于分区模板提取常规特征&#xff08;area, volume, thickness, thicknessstd, meancurv, gauscurv, foldind, curvind&#xff09;的指令mris_anatomical_statsaparcstats2table还有可以提取从fMRI或DWI产生的结果以及一些特殊的结构特征&#xff08;如LGI&a…

Linux下使用Freesurfer的两种方法

文章目录 1. 直接在终端使用准备工作开始运行 2. 通过调用python文件使用 1. 直接在终端使用 重点&#xff1a;Freesurfer安装完成后&#xff0c;需要在相同的用户名下运行&#xff0c;并且所有文件数据也要放在此用户下 放在其他地方可能会因为没有权限而运行失败 官网流程说…

freesurfer入门-试图理解freesurfer输出的数据

因为一些原因想要学习使用freesurfer,虽然照着tutorial跑了起来但是完全不知道跑出来的是个啥,所以准备弄一篇文章记录每个部分是干啥的,此文为记录 能记多少是多少吧… FreeSurfer内数据 labelmriorgtransforms scriptsstatssurf 首先要提一下比较常见的两个词:lh和rh 如果我没…

FreeSurfer入门(1) Output Data

目录 前言一、使用freeview查看卷二、使用freeview查看3D surfacePial surfacewhite surfaceInflated SurfaceThickness MapCortical Parcellation 前言 因一些原因需要学习FreeSurfer,然而教程比较少有些难懂,看了一段时间觉得可能要钻钻牛角尖才可以完成学习,所以开始记笔记…

IXI数据预处理 + Linux + freesurfer

目录 1. freesurfer下载安装测试1.1 下载受阻&#xff0c;安装axel-2.4,多线程下载1.2 安装1.3 安装时出现的问题1.4 测试1.5 使用前注意 2. freesurfer 处理IXI2.1 freesurfer 的使用2.2 从零开始处理IXI2.2.1 命令行skull_stripping 单个.nii文件2.2.2 分析处理完成后的文件2…

Freesurfer的简单使用和一些基础知识

Freesurfer Freesurfer是用于MRI图像处理和分析的一款开源软件&#xff0c;可进行多种模态数据的预处理&#xff0c;皮层重建&#xff0c;volume与surface的互相之间的配准等。 MRI成像 https://www.csdn.net/tags/Mtzagg1sNzM3MTMtYmxvZwO0O0OO0O0O.html MRI成像原理&…

FreeSurfer汉化教程

介绍FsFAST的预处理 根据官网的英文进行翻译&#xff0c;并在使用过程中所犯的错误进行解决的过程 介绍Tutorial Data 下载以及安装 安装 安装Tutorial Datasets 从教程数据&#xff0c;创建文件tutorial_data在自己的工作路径中。 curl https://surfer.nmr.mgh.harvard.e…

Freesurfer教程(ubuntu)

Freesurfer教程&#xff08;ubuntu&#xff09; 参考链接&#xff1a;http://www.wjhsh.net/zhhfan-p-13405572.html 1.安装 freesurfer的安装教程各个网站上都用详细的过程&#xff0c;这里不再叙述 这个命令是在处理tutorial_data中的dcm数据时使用的&#xff1a;recon-al…