代码大全学习-23-软件质量概述(The software-Quality Landscape)

    软件质量可以分为两类,外部的和内部的。外部的软件质量是对用户来说的,包括正确,易用,高效,可靠,完整,适应各种环境,准确,健壮。内部的软件质量是用户不关心,只有程序员才关心的,包括可维护性,灵活性,可移植性,可重用性,可读性,可测试性,可理解性。当然,程序员不仅关心内部的质量,同时也关心外部的质量,而这内外的区分有时候也不是那么明显,因为内部质量可能会影响到外部质量。要注意的是列出来的这些指标有些是有冲突的,比如有时候为了追求高效,可靠性可能就会差一些。
    有了这些指标,下一步就是如何实现它们。首先,要设定质量控制的目标。因为有些指标是冲突的,设定目标才能统一。第二,要把控制质量当做一项重要的任务来做,要从一开始就制定策略。可以有指南,有正式的非正式的审阅等。还有控制需求变更,检查策略执行的结果,做一些原型等也是常用的方法。
    发现缺陷的方法有很多,design review,code review,原型,检查code,单元测试,集成测试,系统测试,beta测试等等。没有哪一种方法能发现多于75%的缺陷。尤其是我们常用的单元测试,集成测试,基本上只能发现30~35%的缺陷。所以为了发现更多的缺陷,我们必须要联合使用多种方法。还要注意的是每种方法可能会偏重于发现某一类型的缺陷,比如读代码更多的发现接口缺陷,功能测试更多的发现控制流程的缺陷。
    一个缺陷被发现的越早,修复它的代价就越低,所以我们要尽早的发现缺陷。也因此对软件质量的保证要从项目开始就考虑进去。
    最好的提高效率的方法就是尽量减少我们重写代码的时间,这个重写可能是因为需求变动,重新设计,或者debugging。这些不能光靠程序员,还需要有管理,有流程来控制。方法没有一定,可以不断摸索出适合自己团队的方法。后面的章节还会详细讲这一篇提到的一些内容。
    同样附上Checklist:
Checklist: A Quality-Assurance Plan
 Have you identified specific quality characteristics that are important to your project?
 Have you made others aware of the project’s quality objectives?
 Have you differentiated between external and internal quality characteristics?
 Have you thought about the ways in which some characteristics may compete with or complement others?
 Does your project call for the use of several different error-detection techniques suited to finding several different kinds of errors?
 Does your project include a plan to take steps to assure software quality during each stage of software development?
 Is the quality measured in some way so that you can tell whether it’s improving or degrading?
 Does management understand that quality assurance incurs additional costs up front in order to save costs later?
发布了63 篇原创文章 · 获赞 16 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/tyst08/article/details/7926864