软件测试技术指南
上QQ阅读APP看书,第一时间看更新

2.1 质量

ISO(International Organization for Standardization,国际标准化组织,简称ISO)中关于质量的定义为:一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求,而质量就是实体基于这些特性满足需求的程度。

从上面描述可以看出质量的定义包含了三个要素:实体、特性、需求。评价一个实体的质量,需要从所有特性的角度来综合进行评价。

2.1.1 质量铁三角

所谓“铁三角”是指的三者中任意一方的变动都会对其他二者产生影响。项目管理的目标是平衡三者的关系,使之达到最佳的效果。在一个软件企业中,要想能够良性地发展,必须关注流程、技术、组织三者之间的关系,也就是说它们三者共同决定软件的质量,也是影响软件质量的铁三角。如图2-1所示。

1.流程

流程(Flow):是指一个或一系列连续有规律的行动,这些行动以确定的方式发生或执行,促使特定结果的实现。

图2-1 质量铁三角

不管我们做什么事情,都有一个循序渐进的过程,从计划到策略再到实现。软件流程告诉我们该如何逐步去实现产品,可能会有哪些风险,如何去避免风险等。因此,按照流程进行开发可以使得我们少走弯路,并有效地提高产品质量,提高用户的满意度。

流程的要素包含以下几点:

1)角色:为了达到目的所参与的人,在过程中每个人承担着相同的任务和职责。

2)职责:角色在过程中所承担的相关责任以及应该完成的任务。

3)入口准则:开展活动时所必须满足的条件或环境。

4)输入:开展活动时所参考的资料或所需要加工的原材料。

5)输出:完成活动后可以提交的或产出的工件。

6)出口准则:结束活动时所必须满足的条件或环境。

7)工具:开展活动时所需要使用的工具。

8)方法:开展活动时所使用的方法。

9)模板:开展活动时所使用的规范格式。

10)检查表:QA(质量保证)用来检查的依据。

使用流程的好处有两点:

1)使得不可见的软件开发过程变得可见并可控。

2)流程驱动每一个研发人员的活动,减少了内耗,提高了效率。

2.技术

技术的承载者是人,主要包含:员工所承载的技术能力和公司积累下来的技术能力。技术对开发而言,主要指分析技术、设计技术以及编码技术等。对测试而言,也需要掌握多方面的技术,比如软件测试的基础理论、测试分析技术、测试用例设计技术以及测试工具的使用技术等。此外还需要掌握计算机以及软件的基础知识:编程语言、数据结构、操作系统、数据库、网络的基础知识等。

3.组织

组织对软件产品不产生直接影响,它是通过流程、技术来间接的影响软件质量。组织是流程成功实施的保障,流程对于产品的成功有着关键的作用,对企业来说,人才是最宝贵的财富,他们是技术的承载者。一个好的组织可以有效地促进流程的实施,同时提供员工的发展空间以吸引更多的人才。

2.1.2 软件质量

软件质量是反映一个实体满足明确的和隐含的需求能力的特性总和。简单说,软件质量就是“指满足用户明确的或规定的需求或隐含需求的程度”。

因此,软件质量是一个复杂的多层面概念。

1)从用户角度出发,质量即符合需求又能满足需求。

2)从软件产品角度出发,质量是软件的内在特征。

3)从软件开发过程出发,质量是对过程规范的符合。

软件质量的提高应该是一个综合的因素,需要从每个方面进行改进,同时还需要兼顾成本和进度。衡量软件质量的标准就是需求,其中需求包含以下两个层次的含义:一是显性需求;二是隐性需求。

1)显性需求:是指符合用户所明确的目标。通常是指软件的基本需求,即开发者明确的定义的目标,而且这些目标必须是可以度量的。

2)隐性需求:是指用户不能明确描述的目标。通常隐性需求是显性需求的延续,与显性需求存在着依赖关系,而这往往是测试工程师必须考虑的。