(读书笔记)基于CMMI的软件工程及实训指导(13-16章)
软件测试
1.定义:
使用人工或自动的手段来运行或测试某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
简单来说,软件测试是为了发现程序中的错误而执行的过程。
2.软件缺陷:
- 软件未达到产品说明书(简称,SPEC)表名的功能。
- 软件出现了产品说明书指明不会出现的错误。
- 软件功能超出了产品说明书指明范围。
- 软件未达到产品说明书虽然未指出但应达到的目标,此条的目的是抓住产品说明书上遗漏之处。
- 软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。
3.软件测试的原则:
- 完全测试程序是不可能的,不可能找出软件的所有缺陷。
- 软件测试是有风险的行为。
- 测试无法显示潜伏的软件缺陷。
- 软件缺陷就像是生活中的寄生虫一样,两者都是成群出现的。
- 软件对测试方法及技术也有免疫力,只有发明新的测试技术或方法。
- 并非所有的软件缺陷都能修复。
- 难以说清的软件缺陷,对其理解不一致。
- 产品说明书的不断变化。
4.软件的版本:
- Alpha版--公司内部测试的版本
- Beta版--对外发布公测
- 发布版--正式发布版本,一般在Beta3之后软件正式发布
5.软件测试分类:
5.1特性分类
- 白盒测试(语句测试、分支测试、路径测试、条件测试,目测)
- 灰盒测试(介于白盒与黑盒之间)
- 黑盒测试(功能测试)
5.2要求分类
- 基本功能测试
- 全面测试
- 基准测试
5.3软件特性
- 功能测试
- 非功能测试
5.4开发过程分类
- 单元测试
- 集成测试
- 系统测试
- 用户验收测试
- 用户验收测试
6.自动化测试:
6.1应用方面
- 回归测试
- 涉及大量不同数据输入的功能测试
- 用手测完成难度较大的测试
6.2步骤
- 编写测试用例
- 分析、验证测试用例
- 对已有测试用例归类,制定自动化计划方案
- 编写自动化测试程序
- 尽量用“数据驱动”来提高测试覆盖率
- 将测试用例编写成自动化测试程序
- 执行测试程序,记录并反馈BUG
- 不断完善自动化测试系统或程序
7.BUG管理流程
7.1通用
- bug登记
- 指派任务
- 修改bug
- 验证
- 关闭
7.2BUG分类
7.2.1按缺陷状态分类
- open:确认提交的缺陷,等待处理
- rejected:不需要修复或不是缺陷
- resolved:缺陷被修复
- reopen:回测后,缺陷没有被修复
- closed:回测后,缺陷被修复,将其关闭
7.2.2按缺陷严重等级分类
- 严重
- 较严重
- 一般
- 轻微
7.2.3按缺陷优先级分类
- 高:立即解决
- 中:正常排队
- 低:可暂缓解决
系统实现与测试过程
1.概念系统实现与测试过程阶段对应于CMMI中技术解决方案(Technical Solution, TS)过程域、验证(Verification, VER)过程域、产品集成(Product Integration, PI)过程域。

2.准备工作
- 搭建开发环境:《开发环境配置表》
- 确定相关规范:《研发所用规范列表》
- 细化项目进度表:《角色职责对照表》、《编码安排表》、《代码检查安排表》
3.产品实现
4.单元测试
- 《单元测试用例列表》
- 《单元测试管理列表》
5.缺陷管理与改错
- 《系统集成计划表》
- 《缺陷统计报告》
6.系统集成与系统测试
- 《集成测试计划表》
- 《集成测试报告》
7.建立产品支持文档
- 《支持文档编写表》
- 《用户操作手册》
- 《系统维护手册》
- 《培训教材》
- 联机帮助
- 系统安装包

系统测试
1.系统测试对应于CMMI中的确认(Validation, VAL)过程域。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并遵循系统设计的标准和规定。
2.系统测试采用黑盒测试的测试方法,主要包括功能性测试、健壮性测试、性能-效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等。
(读书笔记)基于CMMI的软件工程及实训指导(13-16章)的更多相关文章
- [在职软件工程]基于CMMI的软件工程教程
第1章 软件工程基础 1.1软件工程基本原理 a.按照软件生命周期的阶段划分制定计划,严格依据计划进行管理 项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划 b.坚持进行阶 ...
- 读书笔记,《深入理解java虚拟机》,第三章 垃圾收集器与内存分配策略
要实现虚拟机,其实人们主要考虑完成三件事情: 第一,哪些内存需要回收: 第二,什么时候回收: 第三,如何回收. 第二节,对象已死吗 垃圾收集其实主要是针对java堆里面的数据来说的,传统的垃圾收 ...
- 读书笔记——Windows环境下32位汇编语言程序设计(13)关于EXCEPTION_DEBUG_INFO结构体
在动手自己尝试编写书上第13章的例子Patch3时,遇到了一个结构体EXCEPTION_DEBUG_INFO. 这个结构体在MASM的windows.inc中的定义和MSDN中的定义不一样. (我使用 ...
- 【读书笔记《Android游戏编程之从零开始》】13.游戏开发基础(Paint 画笔)
1.Paint画笔 Panit(画笔)是绘图额辅助类,其类中包含文字和位图额样式.颜色等属性信息.Paint 的常用方法如下: setAntiAlias(boolean aa) 作用:设置画笔是否无锯 ...
- Android群英传》读书笔记 (4) 第八章 Activity和Activity调用栈分析 + 第九章 系统信息与安全机制 + 第十章 性能优化
第八章 Activity和Activity调用栈分析 1.Activity生命周期理解生命周期就是两张图:第一张图是回字型的生命周期图第二张图是金字塔型的生命周期图 注意点(1)从stopped状态重 ...
- 【读书笔记】《Java Web整合开发实践》第3章 JSP
1. JSP:Java Server Pages 2. JSP注释:<%--注释内容--%> 3. page指令(页面指令):定义JSP页面的全局属性. <%@ page langu ...
- C++ Primer读书笔记(一)第一篇:C++概述,第一章:开始
1. 主要内容 介绍程序语言的核心思想和C++的基本概念. 印象比较深刻的就是分而治之(divide and conque)的分解思想. 2. 知识广场 1) C++ 文件后缀 cc, cpp,,cx ...
- [读书笔记]《Android开发艺术探索》第十五章笔记
Android性能优化 Android不可能无限制的使用内存和CPU资源,过多的使用内存会导致内存溢出,即OOM. 而过多的使用CPU资源,通常是指做大量的耗时任务,会导致手机变的卡顿甚至出现程序无法 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- 《深入理解bootstrap》读书笔记:第一章 入门准备
一.bootstrap框架简介 Bootstrap是最流行的前端开发框架. 什么是框架:开发过程的半成品. bootstrap具有以下重要特性: (1)完整的CSS样式插件 (2)丰富的预定义样式表 ...
随机推荐
- Cookie解码编码
这两天给客户做竞价推广时发生一件奇怪的事情: 用户搜索关键词是AA匹配关键词是AB,等于关键词和要推广的单元完全匹配,那么用户点击创意进入网站时的Url应该就是A的: 但偶然发现关键词匹配了,url却 ...
- 堆QAQ
L2-012 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are si ...
- js-防抖(简易版)
/** * 节流函数 */ var count = 1; var container = document.getElementById('container'); function getUse ...
- Delphi中Stringlist的自定义排序(将函数地址做为参数)
近日,在编制一个程序过程,因为数据量较小,就使用了stringlist来暂存数据.在使用过程中,遇到了一个问题.Stringlist字符串列表的默认排序方法是按ASCII码的方式进行排序,如3,10, ...
- 解决命令行窗口执行godoc报错
在cmd命令行窗口执行godoc报错: 'godoc' is not recognized as an internal or external command,operable program or ...
- GIS空间分析和建模复习重点2
10.缓冲区和缓冲区分析的概念 (1)缓冲区分析分为 点缓冲区分析:一般是围绕点对象建立一定半径的圆形区域. 线缓冲区分析:沿着线的两侧建立距离为缓冲距的带状区域. 面缓冲区分析:是沿着多边形的边界建 ...
- prepare
目标: 自动驾驶感知负责深度学习感知算法开发,包括目标识别.分割.检测.多目标追踪等有扎实的数理基础,有Linux.ROS.QNX等开发经验,熟悉C/C++编程,有良好的编程习惯 他人简历: skil ...
- 5.mysql的explain的分析
执行分析: 1.id 含义:表示查询的子句或者操作表的顺序 三种情况:id 相同,执行的顺序由上到下: id不同,id越大优先级越高,越先执行: id相同不相同同时存在: 2.select_type ...
- 本地搭建JupyterNotebook开发环境
背景 Jupyter 是一款优秀的编程语言运行环境包括Hub.Lab.Notebook等优秀自项目,JupyterNotebook是衍生的在线交互运行平台的前端项目 环境 Windows 11 Nod ...
- Linux CentOS下搭建golang 1.17 开发环境
1. 下载软件包并安装 cd ~ wget https://storage.googleapis.com/golang/go1.17.2.linux-amd64.tar.gz tar zxvf go1 ...