什么是软件质量?

本文探讨了软件质量的定义,强调它是功能性与结构性质量的结合,是多方面属性的综合。软件质量在软件交付流程中形成,涉及功能需求、非功能需求的满足。文章还介绍了敏捷测试和质量模型,指出质量是通过需求讨论、设计和编码过程逐步建立的,而测试活动在质量保证中起着关键作用,包括流程质量、内部质量、外部质量和使用质量的监控。
摘要由CSDN通过智能技术生成

###软件质量是什么?

业界通常将软件质量定义为如下两部分:

Functional Quality - How well software complies with or conforms to customer specifications.

Structural Quality - How software meets non-functional requirements that support the delivery of the functional requirements, such as robustness or maintainability.

质量是个很抽象的相对概念,如果打个比喻的话,会觉得质量和安全感有很多相似之处。安全感是什么?看不见摸不着,是不怕走夜路?不怕下水?抑或可以自在独处?

每个人对安全感的要求是不一样的,同一个人在不同的年龄段对安全感的要求也不一样。襁褓中的婴儿大部分都很怕和母亲分离,因为他们和母亲从生命开始的那一刻起就有了切不断的联系,他们怕离开母亲独自面对子宫以外的环境。有些人可能因为小时候有溺水的经历,即便成年之后,也无法涉水,对河流,大海有难以言状的恐惧。

同样的,在不同行业,有不同的质量标准。广义上讲,我们有食品质量,有工程质量,有软件质量等等。狭义到我们的软件开发,即使同一产品,不同的用户对产品质量的高低感受肯定也是有个体差异的。

另外质量像安全一样是个相对的概念,一般情况下我们会认为家里相对马路上来说是更安全的。但这是一般大概率的情况下,但当地震发生的时候,空旷的马路上也许就比家里安全多了。质量也一样,软件质量的优劣,是需要满足特定行业特定用户群体的产品诉求,符合某一年龄段或者特定性别用户的使用习惯,兼容大部分目标用户特定设备需求等等。

软件质量是一个抽象的存在

软件质量在线的时候我们是比较难察觉它的存在的,我们不知道它就存在于我们的每一次需求讨论中、每一念的设计斟酌里、每一回车的代码提交时。但是一旦有客户抱怨产品不好用,或者发现产品缺陷时,质量这个隐形的存在似乎就变得特别醒目。貌似跟我们的健康一样,我们健健康康的时候,很少觉察到健康的重要性,快乐地熬着夜撸着串。但是一旦我们生病了,这要忌口,那要注意,我们惊觉原来健康和我们的一餐一眠,一时一刻的情绪都息息相关。

软件质量是各个质量属性的综合

通常情况下,人们习惯说好的软件质量就是实现了客户对软件的所有需求。但是什么是需求呢?在敏捷开发环境下,我们用用户故事来管理,沟通产品需求。而用户故事我们通常会归类为功能需求和非功能需求。

举个例子,小区门禁系统通过人脸识别实现自动开门,这是个很明确的功能需求。满足了功能需求我们就能说这个软件的质量很好了吗?某天某位业主画了个浓妆,或者剪了个刘海,该系统无法识别了,功能无法满足了。你会发现,通常功能性需求和非功能性需求是交织在一起的,很多非功能性需求是为了辅助功能性需求的更好实现。软件质量一定是需要去界定质量特性,及满足这些特性应该具备哪些质量属性。

再举个例子,我们可以拿生活中送礼物这事儿来类比。比如情人节到了,我们或多或少会期望收到一份来自另一半的礼物。而且还期待对方能无需提示,主动自愿,悄咪咪地准备一个自己心仪的礼物。把‘收到礼物’ 看作‘What’,那‘无需提示,主动自愿,悄咪咪地准备’,就是‘How’。如果跟你说:钱都在你那里,你想买什么自己买就是了。毫无仪式感和主动性,这个礼物会让人开心吗?

质量模型

作为一个妈妈(被迫营业的非专业的育儿家),我知道孩子的安全感是可以被定义为很多维度的:满足感,可控感,信任感等等。而且这些不同的安全感有其特定的建立阶段,例如一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值