转载:软件质量的度量

本文来源于:http://jerry051635.iteye.com/blog/1235988

如何去度量软件的质量,是一个很难回答的问题,你到底是通过什么标准去承诺这个软件的质量好呢?牛奶,只要含有一定量的营养成分,而有害成分不超过某一标准,那么我们就说这牛奶的质量是合格的。软件的质量合格怎么体现呢?

  我们先来看看什么是软件的质量,软件质量是对明确陈述的功能和性能需求,明确记录的开发标准及对所有专业化开发应具备的隐性特征的符合度。它强调了以下三重意思:

  1.软件的需求是质量的基础,不符合需求的就是没有质量。

  2.软件过程必须遵循一些开发标准和行业标准。

  3.软件必须满足隐含需求。

  符合这三点的,我们就可以说是有质量的。

  有一点可以肯定,我们不能直接来测量软件的质量,我们只能通过软件的一些具体的质量特性来测量。然后给我们这些质量特性规定标准,于是就建立起来了具体的质量度量标准。质量度量的标准也可以叫做质量模型,它是质量管理过程中的核心部分。介绍两种常用的质量度量模型。

  (一)Mccall质量度量模型

  McCall等人的质量特性定义如下: 
 
  McCall软件质量模型 
 
  (二)ISO 9126质量度量模型

  该模型将质量特性划分为六个方面:

1.功能性:适合性、准确性、互操作性、依从性和安全性; 
2.可靠性:成熟性、容错性和易恢复性; 
3.易使用性:易理解性、易学习性和易操作性; 
4.效率:时间特性和资源特性; 
5.可维护性:易分析性、易更改性、稳定性和易测试性; 
6.可移植性:适应性、易安装性、一致性和易替换性。

  总而言之,这些质量特性可划分为两类,可直接测试的和间接测试的。对于功能,性能等我们可直接测试;对易用性,可靠性等,需要我们通过一定得途径寻找一条准则,这也是我们目前测试的盲点,当然也是我们质量人员需要解决的问题。(不包含需求管理都没做好的公司,连明确的质量特性都不做,就没必要来探求其它的)。

  那么我们在软件过程的那个阶段提出这些质量特性的预期呢 ?也就是什么时期来制定测试目标。这也是一个颇有争议的问题。一方面认为,应该在早期建立质量特性的预期,但反对者认为早期的很多质量特性不明显且不稳定,而后期建立质量热性的话,又难免有先入为主的弊端。

  鉴于现在国内的质量管理很不规范,还有根本没有形成固定的标准。我觉得应该在后期建立这些质量特性。也就是在需求稳定以后建立。这些质量特性由质量人员制定,这就排除了测试人员自己给自己制定目标的弊端。也就是说,质量人员在明确了需求后,给软件制定了一套质量因素,来说明只要软件实现了这些质量因素,那么它就是质量合格的,而测试者只负责运用具体的测试方法来验证实际与目标是符合关系。

  其实测试人员可以更轻松地工作,而不会自己给自己制定目标的折磨自己;

  其实质量人员应该发挥更大的作用,而不是现在单纯的跟踪进度和检验缺陷……

时间: 2024-10-15 03:14:38

转载:软件质量的度量的相关文章

软件质量的定义

http://student.zjzk.cn/course_ware/software/txt/txt/show.asp?filename=11_1.txt 11.1 概述11.1.1 软件质量的定义   软件质量定义为:   (1) 与所确定的功能和性能需求的一致性.   (2) 与所成文的开发标准的一致性.   (3) 与所有专业开发的软件所期望的隐含特性的一致性.11.1.2 软件质量的度量和评价    影响软件质量的因素可以分为两大类:    (1) 可以直接度量的因素,如单位时间内千行

软件质量的评价标准

定义: 软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”.具体地说,软件质量是软件符合明确叙述的功能和性能需求.文档中明确描述的开发标准.以及所有专业开发的软件都应具有的隐含特征相一致的程度. 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量.可划分为三组,分别反应用户在使用软件产品时的三种观点.正确性.健壮性.效率.完整性.可用性.风险(产品运行):可理解性.可维修性.灵活性.可测试性(产品修改):可移植性.可再用性.互运行性(产品转移). 1.性能(Performanc

软件测试常见面试题

软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne) 测试用例 用例编号  测试项目  测试标题  重要级别  预置条件  输入数据  执行步骤  预期结果 1.问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案. 然后,要获取判断的依据和标

白盒测试一些方法

白盒测试的基本方法 白盒测试足针对软件内部结构的测试,土要是川覆盖的方式对程序代码进行测.戚.下面就白盒测试中的六种典型覆盖方法进行探讨. 1)语句覆盖 作为最基本的逻辑覆盖方法,语句覆盖的含义是:选择足够多的测试数据,使得被测程序中的每个语句至少执行一次.通过语句覆盖,可以直观地从源代码得到测试用例,无须细分每条判定表达式:然而,语句覆盖对程序的逻辑覆盖很少,对于一个包含多个条件的判定表达式,它只关心判定表达式的值,并没有分别测试判定表达式中每个条件取不同值的情况.所以语句覆盖无法全面反映多分

Charpter6 关于白盒测试

一.什么是白盒测试 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求. 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查. 二.白盒测试的目的 保证一个模块中的所有独立路径至少被执行一次: 对所有的逻辑值均需要测试真.假两个分支: 在上下边界及可操作范围内运行所有循环: 检查内部数据结构以确保其有效性. 三.关于白盒测试覆盖 首先,白盒测试使用穷举测试是不可行的.白盒测试考虑的是测试用例对于程序内部逻辑的

C语言switch/case圈复杂度优化重构

软件重构是改善代码可读性.可扩展性.可维护性等目的的常见技术手段.圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度量指标之一. C语言开发的项目中,switch/case代码块是一个很容易造成圈复杂度超标的语言特性,所以本文主要介绍下降低switch代码段的重构手段(如下图).switch圈复杂度优化重构可分为两部分:程序块的重构和case的重构.程序块重构是对代码的局部优化,而case重构是对代码的整体设计,

软件测试的基础之名词解析

一.软件质量 1.软件质量的度量方法 软件质量的度量方法有多种,它们可进一步划分为静态质量特性和动态质量特性. 静态质量特性是指实际的代码和相关文档.包括结构化的.可维护的.可测的代码以及正确而又完整的文档. 动态质量特性是指软件在使用中表现出来的行为.包括软件可靠性.正确性.完整性.一致性.易用性和性能. 2.软件的可靠性 定义一:软件可靠性是指软件在给定时间间隔和给定条件下无故障运行的概率(定义中所指的概率依赖于程序输入的分布情况,这种输入分布常常被称作操作剖面.根据定义,软件的可靠性会因操

30多岁的程序员,你是个杯具吗?

在中国,有个恶毒的说法:程序员跟小姐一样,吃的都是青春饭.细品之,似乎是话糙理不糙.小姐年老色衰以后,一般有两条较好的出路.第一条路是攒足资本,赎身从良,这算是改行了:另一条路就是当老鸨,这好歹算是个管理岗位了,剩下的都是杯具了.这和程序员的职业生涯惊人的相似,大龄程序员的较好的两个出路就是改行或晋升做管理,剩下的也是杯具了.      这是大家都都能看得到的现象,但又几个人能看到问题根源在哪?      首先,国内软件开发的工作性质决定了一切.高端的软件领域,储如操作系统.商业数据库.搜索引擎

软件测试的历史和发展

软件测试是伴随着软件的产生而产生的.早期的软件开发过程中,那时软件规模都很小.复杂程度低,软件开发的过程混乱无序.相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作.对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试 到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化.高复杂度,软件的质量越来越重要.这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设