1 软件质量的有关概念

软件质量是“软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和”。根据软件质量国家标准GB-T8566--2001G,软件质量评估通常从对软件质量框架的分析开始。

1.1 软件质量框架模型

如图1所示,软件质量框架是一个“质量特征—质量子特征—度量因子”的三层结构模型。

在这个框架模型中,上层是面向管理的质量特征,每一个质量特征是用以描述和评价软件质量的一组属性,代表软件质量的一个方面。软件质量不仅从该软件外部表现出来的特征来确定,而且必须从其内部所具有的特征来确定。

第二层的质量子特征是上层质量特征的细化,一个特定的子特征可以对应若干个质量特征。软件质量子特征是管理人员和技术人员关于软件质量问题的通讯渠道。

最下面一层是软件质量度量因子(包括各种参数),用来度量质量特征。定量化的度量因子可以直接测量或统计得到,为最终得到软件质量子特征值和特征值提供依据。

图1 软件质量框架模型

1.2 软件质量特征

按照软件质量国家标准GB-T8566--2001G,软件质量可以用下列特征来评价:

a.功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。

b.可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。

c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。

d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。

e.可维护特征:与进行指定的修改所需的努力有关的一组属性。

f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。

其中每一个质量特征都分别与若干子特征相对应。

2 评估指标的选取原则

选择合适的指标体系并使其量化是软件测试与评估的关键。评估指标可以分为定性指标和定量指标两种。理论上讲,为了能够科学客观地反映软件的质量特征,应该尽量选择定量指标。但是对于大多数软件来说,并不是所有的质量特征都可以用定量指标进行描述,所以不可避免地要采用一定的定性指标。

在选取评估指标时,应该把握如下原则:

a.针对性

即不同于一般软件系统,能够反映评估软件的本质特征,具体表现就是功能性与高可靠性。

b.可测性

即能够定量表示,可以通过数学计算、平台测试、经验统计等方法得到具体数据。

c.简明性

即易于被各方理解和接受。

d.完备性

即选择的指标应覆盖分析目标所涉及的范围。

e.客观性

即客观反映软件本质特征,不能因人而异。

应该注意的是,选择的评估指标不是越多越好,关键在于指标在评估中所起的作用的大小。如果评估时指标太多,不仅增加结果的复杂性,有时甚至会影响评估的客观性。指标的确定一般是采用自顶向下的方法,逐层分解,并且需要在动态过程中反复综合平衡。

3 软件质量评估指标体系

通常,我们在软件的测试与评估时,主要侧重于功能特征、可靠特征、易用特征和效率特征等几个方面。在评价活动的具体实施中,应该把被评估软件的研制任务书作为主要依据,采用自顶向下逐层分解的方法,并参照有关国家软件质量标准。

3.1 功能性指标

功能性是软件最重要的质量特征之一,可以细化成完备性和正确性。目前对软件的功能性评价主要采用定性评价方法。

a.完备性

完备性是与软件功能完整、齐全有关的软件属性。如果软件实际完成的功能少于或不符合研制任务书所规定的明确或隐含的那些功能,则不能说该软件的功能是完备的。

b.正确性

正确性是与能否得到正确或相符的结果或效果有关的软件属性。软件的正确性在很大程度上与软件模块的工程模型(直接影响辅助计算的精度与辅助决策方案的优劣)和软件编制人员的编程水平有关。

对这两个子特征的评价依据主要是软件功能性测试的结果,评价标准则是软件实际运行中所表现的功能与规定功能的符合程度。在软件的研制任务书中,明确规定了该软件应该完成的功能,如信息管理、提供辅助决策方案、辅助办公和资源更新等。那么即将进行验收测试的软件就应该具备这些明确或隐含的功能。

目前,对于软件的功能性测试主要针对每种功能设计若干典型测试用例,软件测试过程中运行测试用例,然后将得到的结果与已知标准答案进行比较。所以,测试用例集的全面性、典型性和权威性是功能性评价的关键。

如何对软件质量进行评估相关推荐

  1. 如何对软件质量进行评估?

    摘要:本文从软件质量的有关概念出发,根据指标选取原则,在分析软件质量特征的基础上提出了相应的软件质量评估指标的选取原则,并进而建立了软件质量评估体系. 关键词:软件质量 质量评估指标体系 1 软件质量 ...

  2. 软件质量的理解 摘录

    对软件质量进行评估是软件测试的一个重要目的.软件测试人员必须理解软件质量的定义和度量原理. 质量是指产品或服务满足显式或隐含需求能力的功能和特性的总和. 我们在测试中,除了分析客户的显式需求外,还要分 ...

  3. 软件测试常见概念(软件生命周期、软件开发模型、软件质量模型、软件缺陷管理、软件测试概述、软件测试分类、软件测试与软件开发、软件测试原则、黑盒测试方法、白盒测试方法、性能测试)

    文章目录 1. 软件概述 1.1 软件生命周期 1.2 软件开发模型 1.2.1 瀑布模型 1.2.2 快速原型模型 1.2.3 迭代模型(增量模型或演化模型) 1.2.4 螺旋模型 1.2.5 敏捷 ...

  4. 白盒测试有哪些方法_QA测试开发常考的面试题+答案汇总(持续更新)

    最近很多朋友都在说今年的互联网行情不好,面试很难,不知道怎么复习,我最近总结了一份在测试开发面试中比较常见的面试题合集,希望对大家有帮助. 本文共 4800 字,预计阅读时间 13 分钟,建议点赞+收 ...

  5. 功能测试-测试定义与原则

    本人已做测试将近5年,计划对自己所学所用的测试做一个梳理和巩固.计划从功能测试.自动化测试.性能测试.安全测试几个角度出发来梳理目前在工作中的运用情况,以期望有所提升 本篇是功能测试的开篇,我就从什么 ...

  6. 软件测试基础知识(一)

    从最基本的理解,软件测试的定义是: 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程 在<软件测试的艺术>一书中,作者对于软件测试的一句话 ...

  7. 软件测试基础——概念篇

    一.软件概念以及分类 软件的概念 软件就是指用以指挥计算机运行活动所使用的程序 软件的分类 软件可以分为系统软件和应用软件 系统软件 系统软件是指管理.控制和维护计算机及外部设备,提供用户与计算机之间 ...

  8. 软件测试 - 软件测试流程(完整版)避免当背锅侠,测试人的生存......

    目录:导读 前言 一.测试计划 二.测试设计 三.bug提交与缺陷跟踪(重要) 四.回归测试范围 五.内部沟通 六.总结 前言 软件测试是在测试中识别软件产品和服务的准确性和质量的过程.显然,它的诞生 ...

  9. 嵌入式软考备考_8 软件测试

    软件测试 测试:在规定的条件下操作程序,以发现错误,对软件质量进行评估. 对象:程序,数据,文档. 目的:发现错误,看是否满足用户需求,发现错误产生的原因(不能分析其质量好坏). 嵌入式硬件一般用专门 ...

最新文章

  1. win7 64位安装mysql教程视频_64位Win7系统安装Mysql 5.7.22图文教程
  2. UA SIE545 优化理论基础1 凸分析2 仿射组合与仿射包
  3. 2019五月到六月反思复盘
  4. IPv6域名解析服务基础
  5. 递归多线程实现前缀和
  6. 很多家长学历不高,无法辅导孩子的家庭作业怎么办?
  7. Vscode之运行更新出错
  8. ASP导出到Excel
  9. Linux内核编程(1)
  10. 瑞萨RH850F1x单片机开发板完整开发环境搭建介绍
  11. DDR4 vs LPDDR4 vs LPDDR4x:有什么区别?
  12. MCU程序布局----优化升级方式
  13. 机器学习(3)——有监督学习
  14. Android开发实用小工具八——汇率转换工具
  15. 973页kubernetes学习笔记,涵盖K8S所有核心知识点,仅分享3天
  16. 计算机网络: 同步传输和异步传输(理解)
  17. 小菊的语义分割1——语义分割科普Semantic Segmentation
  18. 学计算机买笔记本是i5 i7,为什么懂电脑的人选择买i5处理器, 而不是i7, 背后是什么原因?...
  19. 计算机证据和网络证据的关系,计算机犯罪证据有哪些特点
  20. ARTS Week 32

热门文章

  1. 前端作品-飞机大战游戏
  2. 真正认识到自己的身躯
  3. 基于 Electron 和 Angular 的抽奖软件 MyLottery
  4. STM32移植Littlevgl(LVGL)V8.0.2使用文件系统+BMP解码显示外部FLASH中图片
  5. latex数学公式编辑——代码大全(图片)
  6. 【Netty源码解析】Netty核心源码和高并发、高性能架构设计精髓
  7. Linux服务器升级GLIBC失败导致shell不可用的问题解决经历
  8. Beta阶段团队项目开发篇章1
  9. 牛是怎么死的?看懂了思想至少成熟30年
  10. 任务分发Gearmand的简介及搭建