关于软件工程的思考13:质量保障

质量保障

软件质量、衡量及其因素

软件的质量=程序质量+软件工程的质量

程序的质量和具体的应用场景有关,可能是准确度、查询速度、并发度、国际化和安全化的质量。

软件工程的质量简单来说就是功能、成本、时间,包括软件开发的可见性(开发的软件能不能尽快演示)、风险控制、管理因素、交付质量、成本控制、内部质量的完成情况(如测试用例的数量、测试自动化的程度、每日构建的速度、自动部署系统的效率、代码覆盖率、文档的质量等)

衡量软件工程质量标准不同,其中一套比较成熟的理论是CMMI(Capacity Maturity Model Integrated,能力成熟度模型集成),实践表明,运用该模型管理项目,不仅降低了项目的成本,而且调高了项目的质量和按期完成率。

CMMI分为五个等级:初始级、管理级、明确级、量化管理级、优化级。每一个级别都是更高一级的基石。它可以用来衡量某个项目中的管理能力,也可以用来形容一个企业的成熟度。

要达到一定的软件质量,是要付出成本的,大概包括预防、评审、内部故障、外部故障、流程分析改进、提高职业技能、技术投资等。一个开发者一般每天只有很少的时间写新功能的代码,其他时间都耗在软件质量成本上了。

质量保障工作QA

QA和测试是不同的,QA是为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作。

所有人都可以参与QA的工作,但是最后要有一个角色对QA这件事负责。

软件开发过程中有下列几个问题容易产生疑惑:

1、有了专门的测试不代表开发人员就对质量不负责,因为测试人员不是最了解程序的人,开发者才是。开发人员自测时,要以独立的心态测试,而不是想着如何掩盖错误

2、分工之后,每个角色为了自己的绩效而优化,会出现局部最优而非全局最优的情况

3、测试并不完全负责测试,也要了解程序

4、分工要明确,每个角色都有他的责任

有些公司内部没有独立的测试角色,这是因为:

1、每个角色能力相对较强

2、全公司人员经常使用自己的产品,可以通过用户的反馈和实时状态分析需求,或者有专门的外部团队来寻找bug

团队应该这样培养和安排一个角色:

posted @ 2020-03-26 23:37  勇闯8  阅读(226)  评论(0编辑  收藏  举报