影响软件质量的因素可以分为三大组:产品修改、产品转移和产品运行。具体因素如下:
产品修改因素
可理解性:软件代码和设计的清晰度,以便开发人员和维护人员容易理解。
可修改性:软件容易进行修改以修复缺陷或改进功能的能力。
灵活性:软件对于未预见到的需求变更保持开放的能力。
可测试性:软件能够被有效测试以发现缺陷的程度。
产品转移因素
可移植性:软件从一个环境转移到另一个环境的能力,如从一个操作系统转移到另一个操作系统。
可再用性:软件或软件组件在新的应用中重复使用的能力。
互运行性:不同的系统和组件之间能够有效交互和协作的能力。
产品运行因素
正确性:软件的功能是否按照规格说明正确执行。
健壮性:软件在异常情况下仍能保持稳定运行的能力。
效率:软件在执行过程中资源使用的优化程度,包括CPU、内存等。
完整性:软件保护数据免受未授权访问的能力。
可用性:用户容易学习、使用和掌握软件的程度。
此外,还有一些其他因素也会影响软件质量:
需求不明确:
产品的用户需求是软件开发和软件测试的前提,也是软件的验收标准之一。如果需求不明确,开发和测试人员的工作将无从下手,软件开发出来上线之后,也会影响到用户的正常使用。
软件测试随意、不规范:
很多公司只注重软件开发,不重视软件测试的效果,软件研发往往投入高额的成本,却不愿意购买和维护软件自动化测试工具、培训测试人员,导致检测出来的软件缺陷或漏洞有限,从而降低软件质量。
缺乏软件质量控制管理:
软件开发和测试比较容易量化和确定责任人,而软件质量控制不容易量化,很多公司也并不会将这个方面的责任明确划分到人。
开发工具和环境:
较早的开发工具和环境在市场上不是很高,经常看到有大量的优秀的开发工具和环境。而且,很多非技术团队在响应市场上的需求非常强烈,因此也是软件测试学习的重要方向之一。
软件测试工具和环境:
一些软件公司提供了各种质量特性,比如安全测试工具、性能测试工具等,这些工具和环境也是非常重要的,因此要选择有一定测试技术的软件测试工程师。
开发人员问题:
软件是由人开发出来的,因此个人的意识对产品的影响非常大。除了个人技术水平限制,开发人员问题还包括人员流动,新来的成员可能会继承上一任的产品接着开发下去,两个人的思维意识、技术水平等都会不同,导致软件开发前后不一致,进而影响软件质量。
安全性:
软件的安全性和扩展性也是影响软件质量的重要因素。
综合以上因素,软件质量受到多方面因素的影响,从需求分析、设计、开发、测试到部署和维护的每一个环节都需要严格控制,以确保软件达到预期的质量标准。