IT项目管理之软件测试

news2024/11/23 15:25:41

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://www.coloradmin.cn/o/462505.html

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

相关文章

会声会影导入视频是黑色的 会声会影导入视频只有声音

会声会影是一款功能很成熟的视频编辑软件,其友好的界面设计能照顾到初学者的需求,同时配置的强大功能可满足进阶者的需要。不过由于或硬件或软件的原因,可能会出现会声会影导入视频是黑色的,会声会影导入视频只有声音的问题。本文…

Docker的实际应用

一、 数据持久化 我们什么情况下要做数据持久化呢? 一定是在做容器之前先预判好哪些文件是要永久存储的, 而不会跟着它容器的一个生命周期而消失。 比如说配置文件、 日志文件、 缓存文件或者应用数据等等。 数据初始化有三种类型。 第一种 volumes&…

浏览器缓存策略:强缓存和协商缓存

浏览器缓存:其实就是在本地使用的计算机中开辟一个内存区,同时也开辟一个硬盘区,作为数据传输的缓冲区,然后利用这个缓冲区来暂时保护用户以前访问的信息通常浏览器的缓存策略分为两种:强缓存和协商缓存,强…

Vmware 搭建 Bitnami GitLab CE

Vmware 搭建 Bitnami GitLab CE 下载 Bitnami GitLab CE导入到 Vmwaressh 登录到虚拟机获取 root 用户密码访问 GitLab CE关机命令扩展磁盘配置 tls 证书安装 GitLab Runner注册 GitLab Runner其他,配置 docker 信任自签名证书 下载 Bitnami GitLab CE 下载地址&am…

Photoshop如何使用基础功能?

文章目录 0.引言1.菜单栏2.工具箱 0.引言 笔者从开始科研时就接触过Photoshop(PS),这么多年一直用着感觉有些陌生,在每次使用PS时总感觉有些抵触,这状态说明还未入门。为了入门PS,笔者从头熟悉PS的菜单和工…

一文弄懂Jupyter的配置与使用(呕心沥血版)

Jupyter 是一个基于 Web 的交互式计算平台,使用户能够创建和共享文档,这些文档包含实时代码、方程式、可视化图表和解释文字。Jupyter 在数据分析领域被广泛应用,它提供了一个直观、交互式的操作界面,使得用户能够更容易地探索数据…

MybatisPlus入门和分页和条件查询里面的条件和null值的处理方式和查询投影和查询条件设置

MybatisPlus 简化了mybatis之前的在springboot整合MyBatis时需要自己写sql语句在接口中&#xff0c;现在只需要让接口继承BaseMapper<实体类>&#xff0c;然后在测试类中接口.增删改查方法&#xff08;&#xff09;即可 不用像springboot整合mybatis一样勾选spring web…

【Python】【进阶篇】9、Django路由系统精讲

目录 Django路由系统精讲1. Django 路由系统应用1&#xff09;配置第一个URL实现页面访问2&#xff09;正则与正则分组使用3&#xff09;正则捕获组使用 2. path()与re_path() Django路由系统精讲 在《URL是什么》一节中&#xff0c;我们对 URL 有了基本的认识&#xff0c;在本…

易基因:禾本科植物群落的病毒组丰度/组成与人为管理/植物多样性变化的相关性 | 宏病毒组

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 现代农业通过简化生态系统、引入新宿主物种和减少作物遗传多样性来影响植物病毒的出现。因此&#xff0c;更好理解农业生态中种植和未种植群落中的病毒分布&#xff0c;以及它们之间的病…

解析Mybaits核心配置文件属性

目录 1.environment 2.transactionManager 3.dataSource 4.peoperties 5.mapper 先来看看mybatis核心配置文件代码 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN&qu…

02- stable diffusion的基本使用

stable diffusion的基本使用 对应视频 https://www.bilibili.com/video/BV1Q14y1f7XJ/https://www.bilibili.com/video/BV1av4y1E74C/ 一、下载 1.1 官方github&#xff1a; 官方github&#xff1a; GitHub - Stability-AI/stablediffusion: High-Resolution Image Synth…

Linux进程命令

目录 前言 基本命令 PS命令 语法 字段解释 栗子 top命令 语法 参数解释 栗子 kill命令 语法 参数解释 栗子 前言 进程是正在执行的一个程序或命令&#xff0c;每一个进程都是一个运行的实体&#xff0c;都有自己的地 址空间&#xff0c;并占用一定的系统资源。 基本命…

滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

线程池四种拒绝机制 实现 及执行日志

目录 目录 目录 创建线程池 测试代码 运行线程 全量代码 日志 AbortPolicy 报出异常模式 DiscardPolicy 放弃机制啥也不处理 DiscardOldestPolicy 放弃机制&#xff0c;放弃列队最早进入的 CallerRunsPolicy 交给主线程执行 创建线程池 public static ExecutorServi…

这篇文带你从入门级开始学习网络安全—认识网络安全

随着网络安全被列为国家安全战略的一部分&#xff0c;这个曾经细分的领域发展提速了不少&#xff0c;除了一些传统安全厂商以外&#xff0c;一些互联网大厂也都纷纷加码了在这一块的投入&#xff0c;随之而来的吸引了越来越多的新鲜血液不断涌入。不同于Java、C/C等后端开发岗位…

【Vue】Vue 前端设计模式梳理

文章目录 一、什么是设计模式&#xff1f;二、设计几个原则三、常见的设计模式及实际案例【1】单例模式1. 什么是单例模式&#xff1f;2.Vue中的单例模式 【2】工厂模式1. 什么是工厂模式&#xff1f;2.Vue中的工厂模式 【3】策略模式1. 什么是策略模式&#xff1f;2.策略模式的…

2023年6月CDGP数据治理专家认证报名及费用

目前6月DAMA-CDGP数据治理认证考试开放报名地区有&#xff1a;北京、上海、广州、深圳、长沙、呼和浩特。 目前南京、济南、西安、杭州等地区还在接近开考人数中&#xff0c;打算参加6月考试的朋友们可以抓紧时间报名啦&#xff01;&#xff01;&#xff01; DAMA认证为数据管…

密码基础知识(3)---对称密码体制

目录 一、对称密码概念 二、别名 三、对称密码体制的优缺点&#xff1a; 1、对称密码体制的缺点&#xff1a; 2、对称密码体制的优点&#xff1a; 四、对称密码的分类 1、序列密码 2、分组密码 五、分组密码的分组模式 1、ECB模式:Electronic CodeBook mode(电子密码…

Node【Node.js 20】新特性

文章目录 &#x1f31f;前言&#x1f31f;Node.js 20: 一次重要的升级和改进&#x1f31f;Internationalization API Update&#x1f31f;端口管理器&#x1f31f;字符串处理&#x1f31f; 更好的调试工具&#x1f31f; Crypto模块的更新&#x1f31f;总结&#x1f31f;写在最后…

【unity项目实战】3DRPG游戏开发05——动画、画质优化和shader的使用

摄像机跟随 摄像机跟随人物的方法有很多,其他方法可以看完另一篇文章 unity控制摄像机跟随玩家三种办法 添加虚拟相机 设置宽容度,相机跟随就会有一个缓慢的跟随效果 设置相机高度,也可以ctrl+shift+f修改相机位置 希望看的是人物的中心,可以在人物内新建一个空子节点…