软件测试

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. 【面试题】面试官:请你实现一个深拷贝,那如果是正则/set/函数怎么拷贝?

    一.面试官灵魂三连问: 你知道哪些拷贝的方法? 让你实现一个深拷贝怎么实现? 那像正则.Set.Map.函数等如何拷贝? 二.浅拷贝方法 自己创建一个新对象,来接收你要重新复制或引用的对象值.如果对象 ...

  2. 浅谈storm

    storm分布式,可容错的实时计算框架,低延迟能做到毫秒级的响应,storm进程是常驻内存,Hadoop是不断启停的,storm中的数据不经过磁盘,都在内存中,处理完成后就没有了,但是可以写到数据库中 ...

  3. Wordpress后台网址安全

    wordpress 固定的后台地址是 网站/wp-admin/ 如果对方知道你是wp建站,然后很自然的就能知道你后台登录地址.然而你密码简单的话,很容易被黑. 所以为了安全考虑,我们需要把这个默认地址 ...

  4. React 使用链表遍历组件树

    React 为在有限的资源情况下,更好地控制UI的更新,提出了时间分片的概念.以达到三个目标: performing non-blocking rendering(无阻塞渲染):applying up ...

  5. application.yaml

    spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver username: root password: root url: j ...

  6. JAVA的作用

    JAVA的用途广泛:1 .银行系统,政企信息系统,支付系统,大数据平台,网站平台. 2 .Saas云,手机app,云管理系统后台,电商系统后台,桌面工具. JAVA和PYTHON的抉择:JAVA是C语 ...

  7. REPLACE,TRANSLATE

    REPLACE 1.语法 replace(string,from_str,to_str) 2.说明: 针对string,将from_str中的字符替换为to_str中字符. 3.示例: /**说明:( ...

  8. U盘启动安装 Centos 出错记录(Reached target Basic System)

    背景 在实体机上使用U盘安装CentOS7.0操作系统,U盘刻成引导盘,BIOS调成U盘启动,选择Install CentOS 7,系统安装卡在Reached target Basic System界 ...

  9. matlab算符合集

    1.逻辑算符 1)且 : A & B -- 两个逻辑数组之间 逐个元素 进行逻辑"与"操作 AB可为矩阵. 首先判断表达式A的逻辑值,然后判断B,继而进行逻辑"与 ...

  10. 无需联网,一键永久激活所有Windows/Office

    对于 Windows 激活工具,大家可能了解不多,熟悉的比如小马激活工具,因为激活工具从来都是病毒高发区,各种工具混在一起,一不小心,电脑就中招了. 今天介绍一款不一样的. R@1n ReBirth ...