软件测试与软件质量

软件质量

软件测试是软件质量保证工作的一个重要环节。

在1991年,软件产品质量评价国际标准ISO 9126中定义的软件质量是:“软件满足规定或潜在用户需求特性的总和”。到1999年,软件产品质量评价国际标准ISO 14598把软件质量定义为:“软件特性的总和,软件满足规定或潜在用户需求的能力”。

软件测试

软件测试的定义

在《软件测试艺术》一书中将软件测试定义为:

(1)测试是为了证明程序有错,而不是证明程序无错

(2)一个好的测试用例在于它能发现至今未发现的错误

(3)一个成功的测试在于它能发现至今尚未发现的错误

软件测试的目的

软件测试的目的和作用体现在以下几个方面:

(1)发现软件中的缺陷:这是软件测试最基础的目的

(2)验证软件的需求和功能是否得到满足和实现,这个目的是“以客户为中心”的思想,软件测试的一个重要目标是验证客户的需求是否得到满足

(3)为软件提供者和软件使用者树立对软件质量的信心

(4)为达到软件产品和软件项目的商业目标提供保证

软件测试的对象:程序数据相关文档

测试主要分为4个阶段:测试分析阶段、测试计划阶段、测试执行阶段、测试总结阶段

软件测试的原则

常用的软件测试原则如下:

(1)应当把“尽早的和不断地进行测试”作为软件开发者的座右铭

(2)测试前应当设计合理的测试用例

(3)程序员应避免检查自己的程序

(4)在设计测试用例时应当包括合理和不合理的输入条件,合理的输入条件能验证程序正确的输入条件;不合理的输入条件指的是异常、临界且可能引起问题变异的输入条件

(5)充分注意测试中的集群现象:经验表明,测试后程序中残存的错误数目与该程序中已发现错误数目或检错率成反比

(6)严格执行测试计划,排除测试的随意性

(7)应当对每一个测试结果做全面检查

(8)妥善保存测试计划、测试用例、出错统计和最终测试报告,为后续的维护提供方便

(9)修改程序以后要进行回归测试

(10)测试用例要能够映射到需求

软件测试的主要工作内容

确认验证是软件测试的主要工作内容

验证(Verification)是保证软件正确实现特定功能的一系列活动和过程,其目的是保证软件生命周期中,每一阶段的成果满足上一阶段所设定的目标,也就是要证明在软件生命周期中各个阶段,以及阶段间的逻辑协调性、完备性和正确性。

确认(Validation)是保证软件满足用户需求的一系列活动和过程,其目的是在软件开发完成后保证软件与用户需求相符合,也就是要证实在一个给定的外部环境中软件的逻辑正确性。确认包括需求规格说明的确认和程序的确认,而程序的确认又分为静态确认和动态确认。静态确认是通过人工分析或程序正确性证明来确认程序的正确性;动态确认是通过动态分析和程序测试来检查程序的执行状态,以确认程序是否有问题。

软件测试过程模型

V模型

软件测试V模型中的过程从左到右,描述了基本的开发 过程和测试行为。V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。局限性: 把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现.

W模型

W模型相对于V模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。

H模型

H模型中, 软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行。

H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。

X模型

软件测试X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序

前置测试模型

前置测试模型吸取了V模型和X模型的优点,它是将测试和开发紧密结合的模型,该模型提供了轻松的方式,可以加快项目的速度。

软件测试分类

按阶段分为:单元测试、继承测试、确认测试、系统测试、验收测试

按照测试实施组织可以分为:开发方测试(α测试)、用户测试(β测试)、第三方测试

按测试采取的技术和思想方法分为:黑盒测试、白盒测试、灰盒测试

按软件测试方式分为:静态测试、动态测试

单元测试

单元测试又称“模块测试”针对软件最小单位——程序模块进行正确性验证的测试,目的在于发现软件各模块内部的错误

单元测试的内容如下:

(1)模块接口测试

(2)局部数据结构测试

(3)路径测试

(4)错误处理测试

(5)边界测试

集成测试

集成测试又称为“组装测试”,在单元测试完成的基础上,将模块按照要求组装起来进行测试,主要目标是发现与接口有关的问题

集成测试需要考虑的问题如下:

(1)在把各个模块连接起来时穿越模块接口的数据是否会丢失

(2)一个模块的功能是否会对另外一个模块的功能产生不利影响

(3)各个子功能组合起来是否能达到预期要求的父功能

(4)全局数据结构是否存在问题

(5)单个模块的误差累积起来是否会放大,从而达到不能接受的程度

模块集成组装方式:一次性集成、增值式集成(自顶向下、自底向上、混合式)

确认测试

确认测试(Validation Testing),又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。

确认测试的目标

(1)软件的特性是否与需求符

(2)所有的文档都是正确且便于使用

(3)同时,对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试

系统测试

系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。

系统测试包括:

(1)恢复测试,主要检查系统的容错能力;

(2)安全性测试,检验在系统中已存在的系统安全性措施、保密性措施是否发挥作用,有无漏洞;

(3)强度测试,检查在系统运行环境不正常到发生故障的时间内,系统可以运行到何种程度的测试;

(4)性能测试,测试软件在被组装进系统的环境下运行时的性能

验收测试

验收测试的依据是双方事先约定的标准,如需求规格、合同及软件开发任务书等,验收测试通常由用户或用户委托的第三方测试机构来执行。

用户手册不是验收测试的依据,只是执行测试的参考资料。

缺陷描述

缺陷产生的原因

缺陷(bug)从不同的角度表现为软件错误、软件缺陷、软件故障、软件失效

(1)软件错误:指软件生存周期中不希望或不可接受的人为错误

(2)软件缺陷:是指存在于软件之中的那些不希望或不可接受的偏差

(3)软件故障:是指软件运行过程中出现的一种不希望或不可接受的内部状态。

(4)软件失效:是指软件运行时产生的一种不可接受的外部行为结果。

软件缺陷的定义

符合下列5种情况之一的即可认为是软件缺陷。

(1)软件未达到软件产品需求说明书中指明的要求。

(2)软件出现了软件产品需求说明书中指明不会出现的错误。

(3)软件功能超出了软件产品需求说明书中指明的范围。

(4)软件未达到软件产品需求说明书中虽未指明但应达到的要求。

(5)测试人员认为难以理解、不易使用、运行速度缓慢或者最终用户认为不好的问题。

软件评测师(九)软件评测基础知识相关推荐

  1. 【软考软件评测师】软件测试基础知识

    [软考软件评测师]软件测试基础知识 软件测试基础知识 [软考软件评测师]软件测试基础知识 一. 软件测试的概念 1)软件测试定义的发展 2)软件测试的目的 3)软件测试的对象 4)对于测试组织者和实施 ...

  2. 软件评测师:操作系统基础知识(一)

    软件评测师:操作系统基础知识(一) 文章目录 软件评测师:操作系统基础知识(一) 前言 一.操作系统概述 1.操作系统的位置 2.操作系统的作用 3.操作系统的分类 二.P.V.S机制 1.基础概念 ...

  3. 【软考软件评测师】2019综合知识历年真题

    [软考软件评测师]2019综合知识历年真题 2019综合知识历年真题 [软考软件评测师]2019综合知识历年真题 [2019年评测真题第01题:绿色] 01.虚拟存储技术使用()密切配合来构成虚拟存储 ...

  4. 【软考软件评测师】2013综合知识历年真题

    [软考软件评测师]2013综合知识历年真题 2013软件评测师综合知识历年真题 [软考软件评测师]2013综合知识历年真题 [2013年评测真题第01题:绿色] 01.在程序执行过程中,Cache与主 ...

  5. 【软考软件评测师】2014综合知识历年真题

    [软考软件评测师]2014综合知识历年真题 2014软件评测师综合知识历年真题 [软考软件评测师]2014综合知识历年真题 [2014年评测真题第01题:绿色] 01.三总线结构的计算机总线系统由( ...

  6. 【软考软件评测师】2012综合知识历年真题

    [软考软件评测师]2012综合知识历年真题 2012软件评测师综合知识历年真题 [软考软件评测师]2012综合知识历年真题 [2012年评测真题第01题:绿色] 01.在CPU中,( )不仅要保证指令 ...

  7. 【软考软件评测师】2017综合知识历年真题

    [软考软件评测师]2017综合知识历年真题 2017软件评测师综合知识历年真题 [软考软件评测师]2017综合知识历年真题 [2017年评测真题第01题:红色] 01.在Excel中,设单元格F1的值 ...

  8. 【软考软件评测师】2015综合知识历年真题

    [软考软件评测师]2015综合知识历年真题 2015软件评测师综合知识历年真题 [软考软件评测师]2015综合知识历年真题 [2015年评测真题第01题:红色] 01.CPU响应DMA请求是在( )结 ...

  9. 2021年5月信息系统项目管理师真题基础知识1~32题

    摘要:2021年5月信息系统项目管理师真题基础知识1~32题,视频解析可找科科过官网右侧联系方式获取. 1.[科科过]国家信息化体系包括六个要素,其中(1)信息化体系六要素中的龙头,是国家信息化建设的 ...

  10. 【软件评测】06计算机网络基础知识

    计算机网络基础知识 OSI/RM七层模型 七层模型 TCP/IP四层协议 冲突域和广播域的区别 常见的协议 协议族 常见协议及对应端口 常用的端口号 域名空间 万维网 Windows网络相关命令 IP ...

最新文章

  1. 采购审批专题总结--bob
  2. 如何完全安装mysql数据库_数据库经验:如何简单安装MySQL数据库
  3. 重磅新政!土拍规则大调整!土地市场将迎“大降温”
  4. 师生对话:我们都曾是爱学习的孩子
  5. Java NIO框架Mina
  6. jsp连接mysql数据库代码_JSP连接MySQL数据库代码
  7. 计算机上的键有什么功能吗,电脑功能键都有什么用,电脑上功能键的用法_系统圣地...
  8. 计算机网络实验题教程推介,计算机网络实验教程从原理到实践(附光盘)
  9. C++学习:第三阶段(C++提高编程)————B站黑马程序员C++学习笔记
  10. python去噪函数_Python | 简单的扩音,音频去噪,静音剪切
  11. Win10安装Centos8 Stream
  12. python实现下载网络视频资源
  13. (官网)虚幻3--基础游戏快速入门
  14. wordpress主题开发教程
  15. php手机编程ios,在iOS上实现生产力级别PHP编程
  16. java rxtx version_RXTX实现JAVA串口编程
  17. 关于bootstrap4 以下 与bootstrap5 的区别
  18. 你要相信没有到不了的明天
  19. 宝塔linux面板如何开启openssl,宝塔linux面板之升级OpenSSL教程
  20. tmshutdown: internal error: CMDTUX_CAT:766: ERROR: must run on master node

热门文章

  1. 【C++密码加密解密】6位整数明码加密和解密
  2. ant vue 设置中文_vue+Ant design vue做项目-Go语言中文社区
  3. 真00后整顿职场?公司新来了个00后卷王,3个月薪资干到20K.....
  4. secure boot 是什么
  5. 水滴公司Q3财报引股价增长,保险业复苏“第一枪”打响了?
  6. React Native 之组件的定义
  7. 最新版本RAD Studio – 现在购买可享九折优惠
  8. MQTT.fx客户端使用方法
  9. 高中二轮数学复习:快速求解选择题、填空题的方法
  10. 操作系统同步问题:有一个没有限量的大盘子,爸爸只往里面放苹果,妈妈只往里面放桔子,儿子只拿苹果吃,女儿只拿桔子吃,请写出能描述4个人行为的同步方案