什么是 “软件质量”?在一些同行的眼里,恐怕还是一个比较模糊的概念。在此列举几种常见的说法:
“软件质量是指有没有bug”
“ 软件质量说的是代码的好坏,因为代码中的bug会带来使用上的问题”
“软件质量存在于软件产品从概念到实现的每一步骤,因为需求的好坏影响了设计;设计的缺陷将带来代码的不足;代码的bug将带来使用的故障”
.....
在您的观点里,更熟悉以上的哪个说法呢?
“质量”一词在CMMI里的定义是这样的“产品、产品组件或过程的一套内在特性满足客户需求的能力”
在ISO9001里的定义是“产品满足需求的程度”
在软件工程里的定义是“程序、及其必要数据、以及处理过程满足用户明示或隐含的需求的程度”
(注:以上定义来自于释意,非原文)
看了以上的定义,哎呀,我更晕了,彻底倒地不起啦!!!
那么,有没有简单的方法,告诉我们,软件的质量到底是什么?有哪些测量的数据?
这方面,GB/T16260给了我们明确的答案。建议从事软件行业的各位大侠都去找这份资料(csdn上就有免费下载哦)来读一读。
软件工程的通俗称呼是,软件质量就是“FURPS”(Functionality, Usability, Reliability, Performance, Supportability/Safety),与16260的定义大同小异。
下面两张图给我们展示了软件质量的各部分关联与区别。在内部质量和外部质量的属性上,两者是一致的,但实践中,可以简单的将内部质量等同于开发人员自己发现的代码或设计缺陷的问题集合;将外部质量等同于测试人员在实验室测试所发现bug的集合。