软件测试

1.定义:

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

简单来说,软件测试是为了发现程序中的错误而执行的过程。

2.软件缺陷:

  • 软件未达到产品说明书(简称,SPEC)表名的功能。
  • 软件出现了产品说明书指明不会出现的错误。
  • 软件功能超出了产品说明书指明范围。
  • 软件未达到产品说明书虽然未指出但应达到的目标,此条的目的是抓住产品说明书上遗漏之处。
  • 软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。

3.软件测试的原则:

  • 完全测试程序是不可能的,不可能找出软件的所有缺陷。
  • 软件测试是有风险的行为。
  • 测试无法显示潜伏的软件缺陷。
  • 软件缺陷就像是生活中的寄生虫一样,两者都是成群出现的。
  • 软件对测试方法及技术也有免疫力,只有发明新的测试技术或方法。
  • 并非所有的软件缺陷都能修复。
  • 难以说清的软件缺陷,对其理解不一致。
  • 产品说明书的不断变化。

4.软件的版本:

  • Alpha版--公司内部测试的版本
  • Beta版--对外发布公测
  • 发布版--正式发布版本,一般在Beta3之后软件正式发布

5.软件测试分类:

5.1特性分类

  • 白盒测试(语句测试、分支测试、路径测试、条件测试,目测)
  • 灰盒测试(介于白盒与黑盒之间)
  • 黑盒测试(功能测试)

5.2要求分类

  • 基本功能测试
  • 全面测试
  • 基准测试

5.3软件特性

  • 功能测试
  • 非功能测试

5.4开发过程分类

  • 单元测试
  • 集成测试
  • 系统测试
  • 用户验收测试
  • 用户验收测试

6.自动化测试:

6.1应用方面

  • 回归测试
  • 涉及大量不同数据输入的功能测试
  • 用手测完成难度较大的测试

6.2步骤

  1. 编写测试用例
  2. 分析、验证测试用例
  3. 对已有测试用例归类,制定自动化计划方案
  4. 编写自动化测试程序
  5. 尽量用“数据驱动”来提高测试覆盖率
  6. 将测试用例编写成自动化测试程序
  7. 执行测试程序,记录并反馈BUG
  8. 不断完善自动化测试系统或程序

7.BUG管理流程

7.1通用

  1. bug登记
  2. 指派任务
  3. 修改bug
  4. 验证
  5. 关闭

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章)的更多相关文章

  1. [在职软件工程]基于CMMI的软件工程教程

    第1章 软件工程基础 1.1软件工程基本原理 a.按照软件生命周期的阶段划分制定计划,严格依据计划进行管理 项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划 b.坚持进行阶 ...

  2. 读书笔记,《深入理解java虚拟机》,第三章 垃圾收集器与内存分配策略

    要实现虚拟机,其实人们主要考虑完成三件事情: 第一,哪些内存需要回收: 第二,什么时候回收: 第三,如何回收. 第二节,对象已死吗    垃圾收集其实主要是针对java堆里面的数据来说的,传统的垃圾收 ...

  3. 读书笔记——Windows环境下32位汇编语言程序设计(13)关于EXCEPTION_DEBUG_INFO结构体

    在动手自己尝试编写书上第13章的例子Patch3时,遇到了一个结构体EXCEPTION_DEBUG_INFO. 这个结构体在MASM的windows.inc中的定义和MSDN中的定义不一样. (我使用 ...

  4. 【读书笔记《Android游戏编程之从零开始》】13.游戏开发基础(Paint 画笔)

    1.Paint画笔 Panit(画笔)是绘图额辅助类,其类中包含文字和位图额样式.颜色等属性信息.Paint 的常用方法如下: setAntiAlias(boolean aa) 作用:设置画笔是否无锯 ...

  5. Android群英传》读书笔记 (4) 第八章 Activity和Activity调用栈分析 + 第九章 系统信息与安全机制 + 第十章 性能优化

    第八章 Activity和Activity调用栈分析 1.Activity生命周期理解生命周期就是两张图:第一张图是回字型的生命周期图第二张图是金字塔型的生命周期图 注意点(1)从stopped状态重 ...

  6. 【读书笔记】《Java Web整合开发实践》第3章 JSP

    1. JSP:Java Server Pages 2. JSP注释:<%--注释内容--%> 3. page指令(页面指令):定义JSP页面的全局属性. <%@ page langu ...

  7. C++ Primer读书笔记(一)第一篇:C++概述,第一章:开始

    1. 主要内容 介绍程序语言的核心思想和C++的基本概念. 印象比较深刻的就是分而治之(divide and conque)的分解思想. 2. 知识广场 1) C++ 文件后缀 cc, cpp,,cx ...

  8. [读书笔记]《Android开发艺术探索》第十五章笔记

    Android性能优化 Android不可能无限制的使用内存和CPU资源,过多的使用内存会导致内存溢出,即OOM. 而过多的使用CPU资源,通常是指做大量的耗时任务,会导致手机变的卡顿甚至出现程序无法 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. 《深入理解bootstrap》读书笔记:第一章 入门准备

    一.bootstrap框架简介 Bootstrap是最流行的前端开发框架. 什么是框架:开发过程的半成品. bootstrap具有以下重要特性: (1)完整的CSS样式插件 (2)丰富的预定义样式表 ...

随机推荐

  1. iOS 防止charles抓包

    方案一:检查手机Wifi是否设置了代理     public func fetchHttpProxy() -> Bool {        guard let proxy = CFNetwork ...

  2. disabled属性的简介和使用

    一.disabled属性的简介和使用 Html中的input元素.button元素.option元素等都具有一个disabled属性. disabled对a标签不起作用当赋予该属性时该元素将变得不可交 ...

  3. RestTemplate 远程服务调用

    * 使用 Eureka 和 Nacos  为注册中心时也能使用这种方式调用 一.远程调用类 bean 配置注入 和 配置负载均衡 注意,必须在可配置类中注入 bean,例如 SpringBoot 启动 ...

  4. Linux(CentOS) Mysql 8.0.30 安装(多源安装)

    Linux(CentOS) Mysql 8.0.30 安装(多源安装) 安装命令根据实际部署情况修改调整,CentOS一般选择通用版本Red Hat Enterprise Linux 7 本文档使用w ...

  5. 配置隐藏index.php

    .htaccess文件写入类容放到跟目录下就OK <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteE ...

  6. Qt5.6使用Qt自带虚拟键盘

    Qt自带虚拟键盘是5.7版本以上才有,要在Qt5.6上使用自带虚拟键盘需要先下载源码,再进行编译安装.上网查了一些资料都很有用. https://doc.qt.io/qt-5/qtvirtualkey ...

  7. 网络图片转base64

    /**            * 网络图片转base64            * @param src            * @return            * @throws Excep ...

  8. js判断图片链接是否有效

    let checkImgExists = function(url) { return new Promise(function(resolve, reject) { let ImgObj = new ...

  9. 微积分 II 笔记

    5.1 定积分的概念 定义 定积分是积分的一种,是函数 \(f(x)\) 在区间 \([a,b]\) 上积分和的极限 若 \(f(x)\) 在 \([a, b]\) 有界,在 \([a, b]\) 上 ...

  10. Java笔记_成员方法传参机制

    成员方法传参机制(非常重要) Parameter(参数).Method(方法).Exercise(练习) 基本数据类型的传参机制 看一下案例,将main中的值传递给类中对象 /** * @ClassN ...