软件质量特性
软件同时具有外在的和内在的质量特性。外在特性是指该产品的用户所能感受的部分:
1、正确性:指系统规范、设计和实现方面的错误的稀少程度
2、可用性:用户学习和使用一个系统的容易程度
3、效率
4、可靠性
5、完整性
6、适应性
7、精确性:精确性与正确性的不用在于,前者是用来判断系统完成工作的优劣程度,而后者是判断系统是否被正确开发出来。
8、健壮性:
内在特性:
1、可维护性
2、灵活性
3、可移植性
4、可重用性
5、可读性
6、可测试性
7、可理解性
改善软件质量的技术
1、软件质量目标,改善软件质量的一种强有力的方法,就是根据软件的外在和内在特性,明确定义出软件质量的目标。
2、明确定义质量保证工作,将质量保证工作明确下来,可以清楚地表现事情的优先程度。
3、测试策略,执行测试可以为产品的可靠性进行详细的评估。
4、软件工程指南,在开发过程中,指南应当控制软件的技术特性,应该贯彻到所有的开发活动中去。
5、非正式技术复查
6、正式技术复查,管理一个关键工程过程的工作之一,就是要在低成本的环节里抓出问题
7、外部审查,它是一种用于确定一个已开发项目或产品的状态的特殊技术复查方法
开发过程
1、对变更进行控制的过程,实现软件质量目标的拦路虎之一就是失控的变更。
2、结果的量化,除非质量保证计划的结果经过实际测量,否则将完全不知道这个计划是否有效。量化结果能够了解到计划是否成功,并允许用可控的方法来调整计划。
3、制作原型,它是指开发出系统中关键功能的实际模型。
设置目标
明确设置质量目标是开发高质量软件的一个简单而清晰的步骤,但它常常被忽视。而且不同目标有时候是相互冲突的,软件通常不可能在放放面面都做的很好。
不同质量保障技术的相对效率
缺陷检测率:单单使用一种方法来进行代码检测的监测效果不是很好,当多种检测方法融合在一起的时候进行测试的覆盖率才会提高。
找出缺陷的成本:某些缺陷检测方法的成本比其他方法要高。最经济的方法是找出缺陷的最低成本。研究发现,阅读代码每小时能检测出来的缺陷要比测试高出80%左右,而测试来检测缺陷的成本是检查的6倍。
修正缺陷的成本:一个缺陷存在时间越长,消除它的代价就越高,因此尽早发现错误的检测方法可以降低修正缺陷的成本。
一个有效的软件质量项目的底线,必须包括在开发的所有阶段联合使用多种技术:
1对所有的需求、架构以及关键部分的设计进行审查
2建模或者创建原型
3代码阅读或者检查
4执行测试
什么时候进行质量保证工作
缺陷可能在任何阶段渗透到软件中。因此,需要在早期阶段就开始强调质量保证工作,并且将其贯彻到项目的余下部分中。在开工之时,这一工作就应该纳入计划当中,在项目进行中作为技术脉络的一部分,并且应该作为项目的结束点,当整个工作结束时候检验产品的质量。
软件质量的普遍原理
效果最明显的缩短开发周期的办法就是改善产品的质量,由此减少花费在调试和软件返工上面的时间总量。与传统的"编码——测试——调试"相比,先进的软件质量计划可能更省钱。这种计划把投入到调试和重构的资源重新分配到前期的质量保证工作中,而前期工作在产品质量上体现的作用要比后期工作更为明显,因此把时间投入到前期工作中,能让程序员在后期工作中节省更多的时间。