软件质量是指软件本身实体满足用户要求的能力。但并不是软件功能越多质量就越好
一、质量铁三角
1、组织:组织完备,各司其职,工作全面
2、技术:开发技术面向对象、云技术;测试技术:敏捷测试、测试用例管理工具、bug管理工具等使用
3、流程:业务流程和测试、开发流程
二、质量管理体系
评估团队生成高质量软件的能力,通过评估团队进行软件开发过程中的活动是否符合规范
1、ISO9000体系:全行业的质量管理体系,定义了原则,评估时以公司、团队是否采取措施满足这些原则
2、6sigma:以百万产品中,不合格率为评估标准
3、CMMI:capability maturity model integrated
a、初始级:没有任何管理、流程的团队
b、可重复级:在以前的成功经验上、总结出基本的流程
有流程:需求分析——设计——编码——测试
但流程的具体实现没有定义
c、已定义级:流程经过细化,定义了其执行的方式和活动
将流程扩展到不同类型的软件产品上
d、已管理级:通过数据的搜集、整理,对流程进行定量描述
e、优化级:通过对流程进行跟踪,对反馈进行分析,优化流程
不合理的流程删除、增加新的流程
三、质量模型
1、功能性
软件的正常功能满足用户的能力
a、适合性:软件的功能符合用户需求
b、准确性:软件的功能实现的是否正确、精度符合要求
c、互操作性:软件之间信息传递和操作的能力
d、保密安全性:对私密数据保护的能力
e、依从性:软件符合规则、标准的能力
2、易用性
软件的方便操作、美观等
a、易理解性:软件的功能按钮等描述容易理解
b、易学性:软件的功能和操作是否方便学习
c、易操作性:软件功能查找的方便性、实现流程是否复制
d、吸引性:对于用户的感官、心理的满足程度
3、效率
软件功能的执行的速度、占用的资源
a、相应时间
b、资源使用,内存、硬盘、cpu等
4、可靠性
软件遇到故障或错误自行解决或恢复的能力
a、成熟性:软件的自身缺陷,对软件的活动造成的影响
b、容错性:软件对外部错误的输入的容忍程度
c、易恢复性:从错误的状态恢复到正常状态的能力
5、可移植性
软件和环境的搭配
a、适应性:对不同环境的兼容能力
b、易安装性:软件对支撑软件的依赖程度
c、共存性:和其他同类软件的共存能力
d、易替换性:软件的卸载和升级能力
6、可维护性
对软件后期的维护
a、易分析性:代码的容易解读
b、易改变性:当放生改变时,需要改变的代码量很小
c、稳定性:当需求发生变化时,软件是否需要一定的变化
d、易测试性:软件特性是否容易验证