软件质量管理(一)
从主观和客观上两方面着手,进行有效的质量控制。
主观上,让每个开发人员都自觉地去保证质量。自己承诺做过的事情,就应该保证在那一点上没有错误,如果出现错误,特别是多次重复,就会使自己失去诚信,所以出现一次错误,就会战战兢兢的,会不断努力,去避免错误。使得每个人都具有较高的质量意识。不只是考虑如何实现功能,同时会考虑怎么样去提高可用性、可靠性,及实现产品的人性化。
客观上,从项目计划、需求分析、软件开发和系统维护等四个关键环节来进行质量控制。
3.1易错模块
在项目开发过程中,特别重要的一个方面就是对易错模块的质量保证。易错模块是那些容易存在或多或少漏洞的模块。据统计:在一个典型项目中20%的模块包含了80%的错误。
在新项目开始时,我们需要鉴别出哪些是易错模块并将其优先处理。如果模块的错误率达到每千行10个错误,就要回顾一下以决定是否需要重新设计或实施。如果发现模块是缺少结构化,过于复杂,或者过长,就要从最基础开始重新设计和实施。这样做,才能让你达到节约时间并改善产品质量的目的。
3.2项目资源构成
要从思想上给项目组全体成员“洗脑”,让他们深刻认识到此次软件项目质量的重要性:该项目的成败决定着公司的声誉以及今后的发展。
在实施过程中,成立了专门的软件质量管理小组,该小组独立对软件工程各个环节工作进行不定期的审计与监理,随时抽查包括需求、设计、编码、测试等各环节的工作实施情况,进行实时跟踪和评估,一旦发现问题以及潜在的隐患及时向相关负责人提出修改和调整要求。一定要保证他们工作的独立性,才能对于保证此项目的质量问题起到较大的保障作用,这样,各环节人员就能保证高度认真、时时谨慎。
3.2寻求技术支持
“术业有专攻”,项目在开发过程中如果碰到什么疑难问题,会积极寻求外部的技术支持。如碰到数据库性能方面的问题,会直接寻求数据库软件公司的专业技术人员,这样就会在较短的时间内寻求到很好的解决办法。3.3软件架构
嵌入式软件开发的特点是与硬件密切相关,而嵌入式的硬件平台又千差万别,通常每一个嵌入式项目的软件开发,都需要从底层到顶层全部编写一遍,即便是同一个公司、同一个实验室,代码共享的程度都十分有限。这就导致了重复开发,非常浪费人力、物力。
3.4各种测试手段
最寻常的质量保障实践就是勿庸置疑的实施测试和进行各种检查,即运行程序,查错,并看看发生了什么。两种基本的测试方法是单元测试----程序员检查他自己的代码是否工作正常,和系统测试----独立测试员检查整个系统是否如期望的那样正常运行。
在质量保障实践中的测试与开发速度发生冲突时,它就可能由于拖慢了进度而被匆忙的完成,但常常它是间接影响进度的。测试发现产品的质量太低不能发布,要延迟到它有所改进后才能发布。测试因此成为传递影响进度的坏消息的信使。
为了最大化测试效果,构建合适的测试环境相当重要,如开发环境,实际运行环境。实践证明,很多问题常常会暴露在特定的环境中。
3.5重视文档
由于嵌入式开发的特殊性,这里所说的开发文档并不一定要像一般的软件工程管理中那样各个环节面面俱到。但是,适当程度的开发文档还是十分必要的,它们和程序中的注释结合起来,才能够确保程序的可维护性。一个软件项目最低限度维护下列文档是很有必要的:¥ README:整个项目结构、功能的说明;¥ INSTALL:配置、编译该软件程序的说明;¥ FILES:本项目所包含的源文件tree及说明;¥ HISTORY:本项目的软件开发的历史记录。此外,如果一个嵌入式软件项目自成模块,且面对最终用户的话,另外编写一份较详细、全面的项目报告是有必要的,最好还有一份步骤清晰的用户手册(Step-bystep)。
3.6 加强沟通
当程序经过测试并发布后,对程序的修改将被严格控制起来。当实际运行中再发现错误需要修改时,首先由开发方提交程序修正申请,填写修改的原因、修正对象、方案、影响范围、需要的时间等。申请由项目负责人和客户一起讨论并批准后,将要修正的程序返回给开发人员进行修改,修改完成后需要对牵涉到的地方进行严格的再测试,填写各种文档。填写的文档进行审查确认无误后,项目负责人与客户商谈合适的发布时间再进行重新发布,确保尽量减少损失。