0.序言
由于病毒,在家办公。最近接到一个编写软件测试管理方法的活。当然,看我网名就知道我不是软件工程毕业的,首先靠着自己的直觉写了六七页,然后只能进行系统学习了。虽然找到几本好书,但我不想给钱,只能尽量找相关的网络资源学习了,写的不好望理解。
1.推荐书籍
《软件测试管理与实践》 赵聚雪 , 杨鹏 (主编)
《软件测试技术基础教程 理论、方法与工具(第2版)》 汇智动力 (编著)
《软件测试过程管理》 布莱克
《软件测试(原书第2版)》 佩腾(Patton,R.) 著,张小松 等译;张小松译
如果有需要,我以后会买这几本书进行学习的。虽然选中了这三本书,但我真的不想给这笔钱,2020年最大目标就是活着!活着就需要钱,肉都涨到40块钱一斤了!!!这一本书就是一斤肉啊!
2.基本理论
废话不多说,进入正题!
<0>引言
软件质量越来越受到重视。nANSI/IEEE Std 729-1983《软件工程术语的IEEE标准术语表》(Glossary of software engineering terminology)定义软件质量为:“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。
<1>软件质量模型
软件产品各种质量特性的组合称为软件质量模型。常见的软件质量模型:Boehm模型(1976年)、MCCALL模型(1978年)、ISO9126软件质量模型(1993年)。
(1)Boehm模型(1976年)
1976年由Boehm等提出的分层方案将软件的质量定义为分层的模型:
(2)MCCALL模型(1978年)
1979年由McCall等人提出的软件质量模型,将软件质量的概念建立在11个质量特性之上,这些质量特性分别是面向软件产品的运行、修正和转移的。
(3)ISO9126软件质量模型(1993年)
软件质量模型可以分为:内部质量和外部质量模型、使用质量模型。质量模型中又将内部和外部质量分成六个质量特性,将使用质量分成四个质量属性。
<2>软件质量特性
编号 | 属性名 | 属性含义 |
1 | 性能(Performance) | 系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件个数 |
2 | 可用性(Availability)
| 系统能够正常运行的时间比例 |
3 | 可靠性 (Reliability) | 系统在应用或者错误面前,在意外或者错误使用的情况下维持软件系统功能特性的能力 |
4 | 健壮性(Robustness) | 在处理或者环境中系统能够承受的压力或者变更能力 |
5 | 安全性 (Security) | 系统向合法用户提供服务的同时能够阻止非授权用户使用企图或者拒绝服务的能力 |
6 | 可修改性 (Modification) | 能够快速地以较高的性能价格比对系统进行变更的能力 |
7 | 可变性 (Changeability) | 体系结构扩充或者变更成为新体系结构的能力 |
8 | 易用性 (Usability) | 衡量用户使用软件产品完成指定任务的难易程度 |
9 | 可测试性(Testability) | 软件发现故障并隔离定位其故障的能力特性,以及在一定的时间或者成本前提下进行测试设计、测试执行能力; |
10 | 功能性 (Function ability) | 系统所能完成的期望工作能力 |
11 | 互操作性(Inter-Operation) | 系统与外界或系统与系统之间的相互作用能力 |
软件质量保证的手段有:软件测试、软件研发过程保证、软件研发配置管理。
软件测试是保证软件质量的重要手段之一,软件测试是有计划有组织的活动,软件测试管理确保测试活动的顺利开展。
<3>项目及项目管理
(1)项目
一系列复杂的并相互关联的活动、有着一个明确的目标、必须在特定的时间、预算、资源限定内,依据规范完成。
(2)项目管理
在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件下,实现设定的需求和期望的过程。
(3)范畴
范围管理、时间管理、费用管理、质量管理、人力资源管理、风险管理、沟通管理、采购与合同管理
(4)概述
软件测试管理是特殊的软件项目管理,与软件项目管理密切相关,有时从属于软件项目管理的一部分,可以借用软件项目管理的方法,因任务特点有自身特殊的知识、流程、方法、工具。软件测试管理的要素包括:人、过程、工具等。这是主要的要素。
(5)管理要素
管理要素包括:1.测试过程和资产管理 2.测试团队管理 3.测试需求管理 4.测试计划管理(测试规划) 5.测试用例管理(测试设计) 6.测试缺陷管理 7.测试工具选择和使用 8.测试执行和汇报管理
测试过程与测试资产管理主要是:1.建立并维护测试的过程 2.建立并维护测试过程中建立的指南、模板、评审单等 3.管理测试工作相关的资产;
测试需求管理主要是:1.收集需求 2.分析需求 3.测试需求跟踪
测试计划管理主要是:1.制订计划 2.执行计划 3.监控计划
测试用例管理:1.组织编写测试用例 2.评审测试用例 3.维护分析测试用例
<4>软件测试工具软件测试管理工具软件测试管理工具
自动化测试工具:单元测试工具、性能测试工具、动能测试工具……
软件测试管理工具:ALM、 BUGzilla……
其包括的基本功能有:用户及权限管理、测试项目的创建、测试项目需求管理、测试任务分配和实施、测试项目缺陷管理、测试数据收集、测试项目数据分析统计和报告生成、测试项目用例管理、测试执行管理、测试文档管理。
专项测试管理工具是管理软件测试中的某个内容,如缺陷管理工具、用例管理工具。比如BUGzilla和BUGfree。
专门测试管理工具对测试的整个流程进行管理,比如IBM Rational Quality Manager、HP ALM(Application Lifecycle Management)等。
包含开发和测试的项目管理工具:如果开发和测试属于同一个团队,此时研发团队会使用覆盖整个研发周期的软件产品,这些产品或者是有公司自己开发的或者是市场购买的也可能是开源的软件。比如,禅道项目管理软件是一款国产开源项目管理软件。比如,禅道项目管理软件是一款国产开源项目管理软件。
小型项目团队、初创业的团队、学生课程设计团队往往直接利用Office办公软件完成软件测试的管理,包括Office Project、Word、Excel。对于软件测试中的文档管理则可以借助于一些文件管理软件,比如TortoiseSVN、Tortoise hg。