CMMI流程规范—实现与测试

news2024/9/24 11:29:52

一、概述

实现与测试(Implementation and Test, IT)的目的是依据系统设计文档,编写并测试整个系统的代码。在本规范中,实现与测试是“编程、代码审查、单元测试、集成测试、缺陷管理与改错”的综合表述。

实现与测试过程域是SPP模型的重要组成部分。本规范阐述了实现与测试过程域的两个主要规程:

  • 准备 [SPP-PROC-IT-PREPARE]

  • 实现与测试 [SPP-PROC-IT-EXECUTE]

上述每个规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。

本规范适用于国内IT企业的软件研发项目。建议用户根据自身情况(如商业目标、研发实力等)适当地修改本规范,然后推广使用。

二、介绍

实现与测试的流程如图12-1所示。一般地,编程、代码审查、单元测试、集成测试大致存在先后顺序关系,也可以并行、迭代地开展。上述任何活动中发现的缺陷必须用统一的缺陷管理工具来管理,开发人员应当及时消除缺陷(改错)。

由于实现与测试是工作量最大、时间最长、产生工作成果(代码与文档)最多的一个项目研发过程域,所以需要作充分的准备工作。

实现与测试工作基本上在开发小组内部开展。一个项目可能有一个或者多个开发小组。对于小型项目,项目经理可以兼任开发组长。

特别要注意的是,开发人员应当对自己的代码进行审查和测试(这是份内的工作),但是不能作为该代码已经通过审查和测试的依据。所以开发人员还要互相审查和测试同伴的代码。

实现与测试过程域产生的主要文档有:

  • 《实现与测试计划》,模板见[SPP-TEMP-IT-PLAN]

  • 《编程文档》,模板见[SPP-TEMP-IT-CODING]

  • 《代码审查报告》,参考技术评审报告的模板[SPP-TEMP-TR-REPORT]

  • 《测试用例》,模板见[SPP-TEMP-TEST-CASE]

  • 《测试报告》,模板见[SPP-TEMP-TEST-REPORT]

  • 《缺陷管理报告》,由缺陷管理工具自动生成。

三、准备

1、目的

为编程、代码审查、单元测试、集成测试、缺陷管理与改错等活动作准备,产生《实现与测试计划》。

2、角色与职责

一个项目可能有多个开发小组,视项目规模而定。开发组长由项目经理指定。

开发组长管理编程、代码审查、单元测试、集成测试、缺陷管理与改错等活动。

3、 启动准则

系统设计文档已经完成。

4、输入

系统设计文档

5、 主要步骤

[Step1] 制定计划

  • 开发小组共同协商实现与测试计划。开发组长按照指定的模板起草《实现与测试计划》。该计划主要内容包括:

  • 编程计划

  • 代码审查计划

  • 单元测试计划

  • 集成测试计划

  • 缺陷管理与改错计划

[Step2] 审批计划

  • 项目经理审批《实现与测试计划》。如果批准,则转向[Step3]。如果不批准,则退回[Step1]

[Step3] 确定相关的规范

  • 开发小组确定编程、代码审查、单元测试、集成测试、缺陷管理与改错等规范。如果机构已经存在相应的编程规范,则采用之。如果机构不存在相应的编程规范,则由开发小组共同制定。

[Step4] 准备相关的软件工具

  • 开发小组确定并安装相关的软件开发工具(包括可复用库)、软件测试工具和缺陷管理工具等等。

[Step5] 开发小组技能培训

  • 如果开发组长认为开发小组需要接受编程、单元测试、代码审查、集成测试、缺陷管理与改错等方面的培训,那么由开发组长安排相应的培训。

6、 输出

  • 本开发阶段所需的规范如编程规范、测试规范等等。

  • 《实现与测试计划》

7、 结束准则

  • 本规程所有的主要步骤都已经完成。

8、 度量

  • 开发组长统计工作量以及文档的规模,汇报给项目经理。

四、实现与测试

1、 目的

  • 依据计划执行编程、单元测试、代码审查、集成测试、缺陷管理与改错等活动。

2、 角色与职责

  • 开发组长管理编程、代码审查、单元测试、集成测试、缺陷管理与改错等活动。

  • 开发人员依据计划编写代码,并对自己的代码进行必要的审查和测试。

  • 开发人员依据计划审查、测试同伴的代码。

3、 启动准则

  • 系统设计文档已经完成。

  • 实现与测试计划已经制定。

4、 输入

  • 系统设计文档

  • 实现与测试计划

5、 主要步骤

[Step1] 编程

  • 开发人员根据“编程计划”编写软件的代码,并随时记录编程技术、问题与对策、心得体会等等,产生《编程文档》(类似于编程日记)。

  • 开发人员在编写完成每个模块时,必须对自己的代码进行必要的审查和测试。

[Step2] 代码审查

  • 开发人员根据“代码审查计划”对同伴的代码进行审查,产生《代码审查报告》。代码审查通常采用非正式技术评审规程,请参考 [SPP-PROC-TR-ITR]。

[Step3] 单元测试

  • 开发人员首先撰写单元测试用例。

  • 开发人员根据“单元测试计划”和相应的“测试用例”来测试同伴的代码,产生“测试报告”。

[Step4] 集成测试

  • 开发人员首先撰写集成测试用例。

  • 开发人员根据“集成测试计划”和相应的“测试用例”来测试同伴的代码,产生“测试报告”。

[Step5] 缺陷管理与改错

  • [Step1][Step4],任何人发现软件中的缺陷时都必须使用开发小组指定的缺陷管理工具。该工具将记录所有缺陷的状态信息,并可以自动产生《缺陷管理报告》。

  • 开发人员及时消除已经发现的缺陷。

开发人员消除缺陷之后应当马上进行回归测试,以确保不会引入新的缺陷。

6、 输出

  • 软件的源代码、库文件、可执行程序等等

  • 编程文档

  • 代码审查报告

  • 测试用例

  • 测试报告

  • 缺陷管理报告

7、 结束准则

  • 软件的代码已经完成,软件可以运行。

  • 本规程所有文档已经完成

8、度量

  • 开发组长统计编程、代码审查、测试、改错等的工作量,以及程序和文档的规模,将此度量数据汇报给项目经理。

五、实施建议

  • 对开发人员进行“高质量程序设计”培训,让他们掌握编写高质量程序的技能。

  • 对开发人员进行“代码审查、测试、改错”等方面的培训,提高他们的工作效率。

  • 开发小组根据项目的资源、时间等限制因素,可以适当地减少测试的工作量。

  • 开发小组根据产品的特征,可以适当地修改本规范的各种文档模板。

  • 对实现与测试过程中产生的所有代码和有价值的文档进行配置管理。

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

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

相关文章

从 AI 绘画到 ChatGPT,聊聊生成式 AI

我们小时候经常有幻想,未来不用再去上班了,在工厂工作的都是机器人。在家也不用打扫卫生,机器人可以包揽一切。不知不觉间,我们小时候的幻想已经慢慢变成现实,工厂里有了多种型号的机械臂,代替了部分流水线…

Vue3中watch的value问题

目录前言一,ref和reactive的简单复习1.ref函数1.2 reactive函数1.3 用ref定义对象类型数据不用reactive二,watch的value问题2.1 ref2.1.1 普通类型数据2.1.2 对象类型数据2.1.3 另一种方式2.2 reactive三,总结后记前言 在Vue3中,…

论文投稿指南——中文核心期刊推荐(中国文学作品)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

微信小程序通过 node 连接 mysql——方法,简要原理,及一些常见问题

前言 博主自己在22年夏天根据课程要求做了一个小程序连接阿里云服务器的案例,在最近又碰到了相应的需求。 原参考文章:微信小程序 Node连接本地MYSQL_微信小程序nodejs连接数据库_JJJenny0607的博客-CSDN博客 ,还请多多支持原作者! 第二次…

vue2 @hook 的解析与妙用

目录前言几种用法用法一 将放在多个生命周期的逻辑,统一到一个生命周期中用法二 监听子组件生命周期运行的情况运用场景场景一 许多时候,我们不得不在不同的生命周期中执行某些逻辑,并且这些逻辑会用到一些通用的变量,这些通用变量…

nginx日志服务之敏感信息脱敏

1. 创建实验资源 开始实验之前,您需要先创建实验相关资源。 日志服务之敏感信息脱敏与审计 2. 创建原始数据 本步骤将指导您如何创建NGINX模拟数据。 双击打开虚拟桌面的Firefox ESR浏览器。 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子…

使用groovy代码方式解开gradle配置文件神秘面纱

来到这里的是不是都有以下疑问: 1.build.gradle配置文件结构好复杂啊,怎么记? 2.内部是怎么进行分析和执行的? 3.为什么可以在配置文件里面写groovy代码,怎么识别的? 4.怎么才能很方便的记住和快速上手…

空口协议Eapol、802.11 Action、802.11 BAR 和 802.11BA、802.11 Encrypted Data讲解

如下报文 可以看到,除了有之前开放认证的报文之外,还多了 EAPOL 次握手的报文。另外,还有其他几种类型的报文:802.11 Action、802.11 BAR 和 802.11BA、802.11 Encrypted Data ​ 密匙认证协议EAPOL: EAP是Extensible Authentication Protocol的缩写,EAPOL就是(EAP…

Python搭建一个steam钓鱼网站,只要免费领游戏,一钓一个准

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 我们日常上网的时候,总是会碰到一些盗号的网站,或者是别人发一些链接给你, 里面的内容是一些可以免费购物网站的优惠券、游戏官网上可以免费领取皮肤、打折的游戏。 这些盗号网站统一的目…

go版本分布式锁redsync使用教程

redsync使用教程前言redsync结构Pool结构Mutex结构acquire加锁操作release解锁操作redsync包的使用前言 在编程语言中锁可以理解为一个变量,该变量在同一时刻只能有一个线程拥有,以便保护共享数据在同一时刻只有一个线程去操作。对于高可用的分布式锁应…

6招优化WordPress打开速度-让你的网站飞起来

为什么我们的WordPress网站比你的快? 我们的官网是使用WordPress框架搭建的,有没有发现我们的网站非常快,而你的WordPress网站比较慢呢?那是因为我们的网站经过了优化。 WordPress 很慢? 为什么很多人都会觉得 Word…

【C语言进阶:指针的进阶】函数指针

本章重点内容: 字符指针指针数组数组指针数组传参和指针传参函数指针函数指针数组指向函数指针数组的指针回调函数指针和数组面试题的解析⚡函数指针 函数指针:指向函数的指针。 通过之前的学习我们知道数组指针中存放的是数组的地址,那么函…

如何在网络安全中使用人工智能并避免受困于此

人工智能在网络安全中的应用正在迅速增长,并对威胁检测、事件响应、欺诈检测和漏洞管理产生了重大影响。根据Juniper Research的一份报告,预计到2023年,使用人工智能进行欺诈检测和预防将为企业每年节省110亿美元。但是,如何将人工…

Sqoop 使用详解

Sqoop 概述Sqoop 是Apache 旗下的一款开源工具,用于Hadoop与关系型数据库之间传送数据,其核心功能有两个:导入数据和导出数据。导入数据是指将MySQL、Oracle等关系型数据库导入Hadoop的HDFS、Hive、HBase等数据存储系统;导出数据是…

web学习-Node.js入门学习

web学习-Node.js入门学习1.回顾与思考2. 初识Node.js2.1 Node.js的简介2.2Node.js的环境安装2.3. fs文件系统模块2.3.1 fs.readFile()2.3.2 fs.writeFile()2.3.3 练习-整理考试成绩2.3.4 fs模块-路径动态拼接的问题2.4 path路径模块2.5 http模块2.5.1 服务器相关的概念2.5.2 创…

移动app安全测试工具好物分享

移动互联网时代,我们的生活和工作深受移动app的影响。随着移动app的广泛应用,安全问题成为人们最关注的话题之一。移动app安全除了和软件开发密不可分之外,软件测试的作用也是不容忽视的。移动app安全测试是指测试人员利用各种测试手段验证Ap…

Java之注解

注解1.1 注解的概念1.2 内置注解1.3 元注解1.4 自定义注解1.1 注解的概念 Annotation 是从JDK5.0 开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序做出解释(这一点和注释comment没什么区别)可以被其他程序&#xff…

解读场景化视频制作工具的实现过程

内容视频化正当其时,企业级智创工具创造新价值。全领域的内容视频化已是显性之势,其不仅覆盖传媒行业,更多泛行业正在以视频化内容的多元姿态创造新的商业价值。于是,不仅新闻传媒行业在超前体验智能化视频创造的效能红利&#xf…

ClickHouse进阶篇-多表连接物化视图

简介 在写这篇文章的时候doris 1.2 的物化视图只是支持单表建立物化视图,现在说下ClickHouse多表的物化视图。 前言 本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机分析处理(OLAP)的开源分析引擎 ClickHouse,因…

蓝库云|ERP系统在企业数字化转型中最常用的八大功能

ERP系统和与企业数字化转型 随着数字化发展的兴起,规划和管理已成为企业产生富有成效的成果的关键。许多企业采用了企业资源规划 (ERP) 等先进工具,使企业所有者能够以高效的方式规划和管理其资源和运营。 ERP系统负责整合业务的不同流程并向决策者提供…