上周周五收到了一封同事的群发邮件,主要谈论现单位提升软件质量的方法,颇有收获,转载于此。
以下邮件正文:
软件质量保证所强调的三个概念
1.软件需求是进行质量测试的基础,与需求不符就是质量不高。(需求管理以及范围管理存在问题)
2.规定的标准定义了一组指导软件开发的准则。如果不能遵照这些准测,就可能导致软件质量不高。(开发规范有待提高)
3.通常有些“隐含需求”是不会被明确提出的,如易用性和易维护性的需求,如果软件符合了明确提出的需求,却没有满足隐含需求,软件质量仍值得怀疑。(开发人员和设计人员考虑不足,也受技术能力限制)
============================================================================
SQA的职责
1.为项目准备SQA计划(测试计划)
2.参与开发项目的软件工程描述。(软件设计)
3.评审各项软件工程活动。(软工工程)
4.审核制定的软件工作产品,以验证其是否符合定义的软件工程中的相应部分。(软件测试)
5.确保软件工作以及工作产品中出现的偏差已文档化,并且按照文档化的规程进行处理。(需求变更管理)
6.记录所有不符合的部分,并报告给高层管理者。(缺陷管理)
================================================================================
软件评审
软件评审并不是在软件开发完毕后进行评审,而是在软件开发的各个阶段都要进行评审。因为在软件开发的各个阶段都可能产生错误,如果这些错误不及时发现并纠正,会不断地扩大,最后可能导致我们开发结果不可控。
(1)评审目标
。发现任何形式表现的软件功能、逻辑或实现方面的错误;
。通过评审验证软件的需求;
。保证软件按预先定义的标准表示;
。已获得的软件是以统一的方式开发的;
。使项目更容易管理。
(2)评审过程
A、召开评审会议:一般应有公司评审委员会组织,会前每个参加者做好准备。
B、会议结束后必需有结果性东西:接受该产品,不需做修改;由于错误严重,拒绝接受;暂时接受该产品。
C、评审报告与记录;所提出的问题都要进行记录,在评审会结束前产生一个评审问题表,另外必须完成评审简要报告。
(3)评审准则
。评审产品,而不是评审设计者(不能使设计者有任何压力);
。会场要有良好的气氛;
。建立议事日程并维持它(会议不能脱离主题);
。限制争论与反驳(评审会不是为了解决问题,而是为了发现问题;
。指明问题范围,而不是解决提到的问题;
。展示记录(最好有黑板,将问题随时写在黑板上);
。限制会议人数和坚持会前准备工作;
。对每个被评审的产品要尽力评审清单(帮助评审人员思考);
。对每个正式技术评审分配资源和时间进度表;
。对全部评审人员进行必要的培训;
。及早地对自己地评审做评审(对评审准则的评审)。