软件质量概述篇

article/2025/9/17 19:44:29

软件产品与其他产品一样,都是有质量要求的,软件质量关系着软件使用程度与使用寿命,一款高质量的软件更受用户欢迎,它除了满足客户的显式需求之外,往往还满足了客户隐式需求。下面分别从软件质量的概念、软件质量模型、影响软件质量的因素这几个方面介绍软件质量的相关知识。

  • 软件质量的概念软件质量是指软件产品满足基本需求及隐式需求的程度。
  • 软件产品满足基本需求是指其能满足软件开发时所规定需求的特性,这是软件产品最基本的质量要求;其次是软件产品满足隐式需求的程度。例如,产品界面更美观、用户操作更简单等。
  • 从软件质量的定义,可将软件质量分为3个层次,具体如下。
  • (1)满足需求规定:软件产品符合开发者明确定义的目标,并且能可靠运行。
  • (2)满足用户需求:软件产品的需求是由用户产生的,软件最终的目的就是满足用户需求,解决用户的实际问题。
  • (3)满足用户隐式需求:除了满足用户的显式需求,软件产品如果满足用户的隐式需求,即潜在的可能需要在将来开发的功能,将会极大地提升用户满意度,这就意味着软件质量更高。所谓高质量的软件,除了满足上述需求之外,对于内部人员来说,它应该也是易于维护与升级的。软件开发时,统一的符合标准的编码规范、清晰合理的代码注释、形成文档的需求分析、软件设计等资料对于软件后期的维护与升级都有很大的帮助,同时,这些资料也是软件质量的一个重要体现。
  • 软件质量模型软件质量是使用者与开发者都比较关心的问题,但全面客观地评价一个软件产品的质量并不容易,它并不像普通产品一样,可以通过直观的观察或简单的测量能得出其质量是优还是劣。那么如何评价一款软件的质量呢?目前,最通用的做法就是按照ISO/IEC 9126:1991国际标准来评价一款软件的质量。
  • ISO/IEC 9126:1991是最通用的一个评价软件质量的国际标准,它不仅对软件质量进行了定义,而且还制订了软件测试的规范流程,包括测试计划的撰写、测试用例的设计等。ISO/IEC 9126:1991标准由6个特性和27个子特性组成,如图所示。

 

  • ISO/IEC 9126:1991标准所包含的6大特性的具体含义如下。
  • (1)功能性:在指定条件下,软件满足用户显式需求和隐式需求的能力。
  • (2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
  • (3)可使用性:在指定条件下,软件产品被使用、理解、学习的能力。
  • (4)效率:在指定条件下,相对于所有资源的数量,软件产品可提供适当性能的能力。
  • (5)可维护性:指软件产品被修改的能力。修改包括修正、优化和功能规格变更的说明。
  • (6)可移植性:指软件产品从一个环境迁移到另一个环境的能力。
  • 这6大特性及其子特性是软件质量标准的核心,软件测试工作就从这6个特性和27个子特性去测试、评价一个软件的。
  • 多学一招:纸杯测试
  • “纸杯测试”是一个经典的测试案例,这是微软公司曾给软件测试者出的一道面试题,用于考察面试者对软件测试的理解与掌握程度。
  • 测试项目:纸杯。
  • 需求测试:查看纸杯说明书是否完整。
  • 界面测试:观察纸杯外观,测试表面是否光滑、手感是否舒适。
  • 功能测试:用纸杯装水,观察是否漏水。
  • 安全测试:纸杯是否有毒或细菌。
  • 可靠性测试:从不同高度摔下来,观察纸杯的损坏程度。
  • 易用性测试:用纸杯盛放开水是否烫手,纸杯是否易滑、是否方便饮用。
  • 兼容性测试:用纸杯分别盛放水、酒精、饮料、汽油等,观察是否有渗漏现象。
  • 可移植性测试:将纸杯放在温度、湿度等不同的环境中,查看纸杯是否还能正常使用。
  • 可维护性:将纸杯揉捏变形,看其是否能恢复。
  • 压力测试:用一根针扎在纸杯上不断增加力量,记录多大压强时针能穿透纸杯。
  • 疲劳测试:用纸杯分别盛放水、汽油放置24小时,观察其渗漏情况(时间和程度)。
  • 跌落测试:纸杯(加包装)从高处落下,查看可造成破损的高度。
  • 震动测试:纸杯(加包装)六面震动,评估它是否能应对恶劣的公路/铁路/航空运输等。
  • 测试数据:编写具体测试数据(略),其中可能会用到场景法、等价类划分法、边界值分析法等测试方法。
  • 期望输出:期望输出需要查阅国际标准及用户的使用需求。
  • 用户文档:使用手册是否对纸杯的用法、使用条件、限制条件等有详细描述。
  • 说明书测试:查看纸杯说明书的正确性、准确性及完整性。
  • 3. 影响软件质量的因素现代社会处处离不开软件,为保证人们生活工作正常有序地进行,就要严格控制好软件的质量。由于软件自身的特点和目前的软件开发模式使得隐藏在软件内部的质量缺陷无法完全根除,因此每一款软件都会存在一些质量问题。
  • 影响软件质量的因素有很多,下面介绍几种比较常见的影响因素。
  • (1)需求模糊在软件开发之前,确定软件需求是一项非常重要的工作,它是后面软件设计与软件开发的基础,也是最后软件验收的标准。但是软件需求是不可视的,往往也说不清楚,导致产品设计、开发人员与客户存在一定的理解误差,开发人员对软件的真正需求不明确,结果开发出的产品与实际需求不符,这势必会影响软件的质量。除此之外,在开发过程中客户往往会一而再再而三地变更需求,导致开发人员频繁地修改代码,这可能会导致软件在设计时期存在不能调和的误差,最终影响软件的质量。
  • (2)软件开发缺乏规范性文件指导现代软件开发,大多数团队都将精力放在开发成本与开发周期上,而不太重视团队成员的工作规范,导致团队成员开发“随意性”比较大,这也会影响软件质量,而且一旦最后软件出现质量问题,也很难定责,导致后期维护困难。
  • (3)软件开发人员问题软件是由人开发出来的,因此个人的意识对产品的影响非常大。除了个人技术水平限制,开发人员问题还包括人员流动,新来的成员可能会继承上一任的产品接着开发下去,两个人的思维意识、技术水平等都会不同,导致软件开发前后不一致,进而影响软件质量。
  • (4)缺乏软件质量控制管理在软件开发行业,并没有一个量化的指标去度量一款软件的质量,软件开发的管理人员更关注开发成本和进度,毕竟这是显而易见的,并且是可以度量的。但软件质量则不同,软件质量无法用具体的量化指标去度量,而且软件开发的质量并没有落实到具体的责任人,因此很少有人关心软件最终的质量。

http://chatgpt.dhexx.cn/article/h1g3Zplh.shtml

相关文章

软件测试学习中的一些有用网站

作为小白,在学习软件测试过程中遇到的一些比较有用的公众号、网站,做一总结分享出来,后面也会及时更新里面的内容。 1.公众号:搜狗测试、软件测试资源分享 2.博客/论坛:51testing论坛,CSDN一些博客 3.小…

软件测试该怎么自学?

众所周知,软件测试是IT技术岗位中技术入门门槛最低的,因此许多计算机零基础的小白会选择测试行业。虽然,大家都说测试很简单,但是对于完全没有基础的初学者来讲,想要学好测试也并不简单。下面我们就来看看,…

刚入行的软件测试工程师如何自学软件测试?

从题干上看,你是已经进入了软件测试行业,有了一份软件测试的工作,那表示你看好这个行业,有意愿在这个行业持续发展。 软件测试相对一些开发的专业来说,需要了解的东西特别多,拿一些招聘简章中的要求来看&am…

软件测试自学好还是培训好?软件测试自学与培训的优劣势对比

随着移动互联网行业的火爆,软件测试行业成了香饽饽。一大批想要学习软件测试的新手都经历过这样的迷茫期,软件测试自学好还是报培训班好? 首先,如果你对软件测试行业真的感兴趣,从此工具为乐,代码为生。我…

自学软件测试,该读些什么书籍?

大家好,我是谭叔。 最近,有不少准备转行软件测试的网友询问我应当阅读些什么书籍。这一问让我想起几年前,我准备转行时的场景——那时,迷茫的我真的好期待有一位老师能带带我,告诉我该怎么学习,该阅读哪些…

软件测试技能图谱|自学测试路线图

很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识。下面是根据本人的理解,粗略整理的一个学习大纲,希望对刚入行或者准备学习测试的朋友提供一点指引。 — 1 — 测试基础理论 软件测试基础理论是软件测试的重要…

自学软件测试怎么样,有前景吗?

做测试有没有前景呢?这是大家最关心的一个问题,但其实测试岗和任何岗位一样,都有其天花板、有其挑战也有其发展前途。 一、天花板和挑战 随着人工智能的发展,测试也越来越实现半自动化操作了。所以,很多大公司将测试岗位外包&a…

自学软件测试需要多久?能掌握吗?

自学软件测试需要多久?如果参加培训班学软件测试需要5-6个月,自学软件测试时间长短因人而异,与学习资料及个人的毅力有关,排除资料问题假设能够弄到靠谱的资料然后开始自学,按照制定好的学习计划走至少需要5个月。 自…

软件测试培训分享:软件测试自学能找到工作吗

软件测试技术虽然不是很难,但对于零基础的同学来说,想要自学软件测试难度还是很大的,而且会在后面找工作的时候比较困难,下面小编就为大家具体的介绍一下软件测试自学能找到工作吗? 软件测试自学能找到工作吗?软件测试的工作本质…

软件测试自学网站推荐_四大适合年轻人自学的网站!知乎超100万人推荐,自学改变人生...

在这个互联网时代,想要学点什么东西,上网搜一搜就有,但网上的资源五花八门,看得人眼花缭乱,想要找到高质量又免费的自学资源还真不是见容易的事!不过别着急,今天就来跟大家分享几个质量杠杠的自…

零基础怎么自学软件测试?分享五个宝藏网站,自学简直不要太轻松了

虽说入行门槛低,但软件测试涉及的技术知识可不少,求学之路不是容易的事,因此很多朋友纷纷吐槽——​​​​​​​ .没有导师,不知道从哪里开始学起;.学习过程中遇到困难,自己无法解决,最终放弃…

自学软件测试最常用的七个网站!建议收藏

前言 不知道大家有没有发现一个现象,技术行业更新换代的速度,远远快于我们追赶的脚步,两三年前,只需要掌握基础的软件测试技术,会一些功能测试,就可以找到一份不错的工作,但是从2021年来看&…

机器学习模型——回归模型

目录 线性回归特点最小二乘法代码实现 多项式回归特点 岭回归特点:共线性collinearity优化函数代码实现 套索回归Lasso岭回归和套索回归对比代码实现 弹性回归网络特点: 线性回归 线性回归指的是全部由线性变量组成的回归模型特点 建模速度快、对每个变…

机器学习基础:模型评估(上)

目录 1. 什么是一个优秀的分类器 2. 选择测试数据集 2.1 切分训练测试集 2.1.1 简单随机划分(random handout) 2.1.2 留一法(leave-one-out) 2.1.3 留一法交叉验证(leave-one-out cross validation) …

【零基础强化学习】强化学习中的有模型和无模型

递归与动态规划🤔 写在前面关于Planning 与 Learning关于有模型和无模型写在最后谢谢点赞交流!(❁◡❁) 更多代码: gitee主页:https://gitee.com/GZHzzz 博客主页: CSDN:https://blog.csdn.net/gzhzzaa 写在前面 作…

【机器学习】哪些模型可以解释?

模型解释是有监督机器学习中的一项重要任务。解释模型对于理解支配数据的动态至关重要。让我们看看一些易于解释的模型。 为什么我们需要解释我们的模型? 数据科学家的角色是从原始数据中提取信息。他们不是工程师,也不是软件开发人员。他们挖掘内部数据…

机器学习建模

文章目录 1.机器学习模型概述1.1 模型与算法1.2 机器学习中的三要素1.3 机器学习模型 2.传统机器学习模型(单模型)2.1 按任务类型划分2.1.1 分类2.1.2 回归 2.2 按性质划分2.2.1 非概率模型(决策函数)2.2.2 概率模型 2.3 按知识体…

机器学习(三):线性模型

📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 &#x1f3…

机器学习基础:模型评估(下)

目录 1. 引言 2. 进一步评估 3. 机器学习中的偏差和方差种类 3.1 过拟合 3.2 欠拟合 3.3 训练曲线观察泛化性 3.4 模型偏差和方差(bias and variance) 3.4.1 偏差 Bias 3.4.2 方差 Variance 3.4.3 方差偏差总结 4. 模型的泛化性(G…

机器学习基础模型

文章目录 朴素贝叶斯——概率模型朴素贝叶斯分类原理贝叶斯定理的公式朴素贝叶斯的优缺点以及优化 决策树——不需要进行归一化决策树基本模型介绍?决策树的特性?信息增益和信息增益比?有什么不同(信息增益作为分类指标有什么问题…