通过个人在几家不同类型企业的工作经历和测试工作经验总结,以及学习相关资料和培训经历,大致有如下一些想法和总结。
最大的感受是:管理过程比管理人更容易、更易于实现目标。有什么流程,就有什么结果,流程决定结果。
目前国内大部分软件企业开发软件都是纯目标管理的思想核心,最快完成软件为目标,软件开发过程混乱、不规范、质量得不到保证、文档、数据不全后期维护困难。面对软件系统越来越大,用户质量要求越来越高,竞争越来越强烈的市场,这样的企业保住现有地位都很困难,想进一步扩大就更难。所以世界上许多牛企业、大企业、想进一步发展的企业都在进行业务流重组过程改进。即改变目标管理的思想,强调管理过程,实现从职能管理到面向业务流程管理。它们相信好的流程就能产生好的产品,有质量的过程就有有质量的结果。
进行过程改进可参考的典型过程模型有:
1、 软件能力成熟度模型(CMM)
2、 个体软件过程(PSP)
3、 团队软件过程(TSP)
4、 能力成熟度模型集成(CMMI)
5、 IBM-Raional的统一过程(RUP)
6、 极限编程过程(XP)
企业如果想进行过程改进要从何做起呢?
我这里把我的一些想法大致写一下:
首先要调研明确企业目前的软件开发过程,是否有如下的软件开发过程?有是怎么样的?是否合理?是否规范?
1、 客户需求管理过程
2、 系统需求分析设计过程
3、 软件开发与设计过程
4、 软件测试过程(单元测试、集成测试、系统测试、验证测试、确认测试)
5、 系统与软件维护过程
6、 文档编制过程
7、 配置管理过程
8、 质量保证过程
9、 验收产品过程
10、 评审过程
11、 解决问题过程
12、 过程改进过程
13、 培训过程
14、 其它一些过程
然后再根据调研过程总结,建立适合本公司的过程,初期也许由于各方面原因达不到所有过程都规范,但是要有相应的过程就行,先建起来,然后定期收集大家的需求,确认合适的过程,逐步完善,逐渐做到所有过程规范化内容文档化,乃至最后形成系列过程规范。
这些过程规范的建立除了参考上面的七个模型也可依一些国际国家标准如:《GB9585 软件需求说明编制指南》、《GB9386 测试文件编制指南》、《GB/T12505 软件配置管理编制指南》、《GB8566 软件开发规范》、《GB12504 软件质量保证规范》等标准规范。
在这些过程中我主要谈一下我最主要关注的过程,过程改进过程、配置管理过程、测试过程。
一、过程改进过程需要注意的是:
1、 过程改进要符合企业的现状,不能盲目照抄其它过程模型;
2、 过程改进是一个不断完善不断升级的活动,要按阶段进行,定期总结评审;
3、 过程改进要得到组织、管理层领导、开发人员、测试人员的支持,因为过程改进的变化引起员工的反感就不好了。开发人员和测试人员要做好过程改进的挑战和冲击准备;
4、 过程监控、日报、周报制度要建立,这样实际数据能够准确收集,并进行分析;
5、 过程改进要及时调整;
6、 过程改进需要看结果,更要看到过程改进过程中的创新。创新就应该得到奖励。
二、配置管理过程:
1、基线控制流程
2、版本控制
是对系统软件不同版本进行标识和跟踪的过程,是对软件开发过程中所有文件系统对象,包括源代码、文档、数据、执行文件、位图、目录变更的控制和跟踪。
3、变更控制流程
三、测试过程
确定测试过程模型:多V模型或叫W模型
起步阶段先从确认测试和业务功能测试做起。逐步增加其它测试过程。比如电力系统对生产安全特别重视,可以引进保密安全性测试和可靠性测试。再次对逻辑组态的准确性进行测试,GUI测试也很重要。
嵌入式测试和普通软件测试的目的也是一样的,都是为验证或达到用户要求的可靠性测试。但是它有很多和普通测试不一样的地方。比如:
1、 嵌入式测试要在特定的硬件环境、物理环境(如工业强磁场干扰)上进行测试;
2、 必要的可靠负载测试,如:连续长时间不断电工作测试;
3、 还需要对实时性进行测试,如:在规定的时间内输入输出某些数据等。
但是不管做什么类型的测试,具体的测试过程都由以下流程进行。
1、 测试需求分析:测试工程师对用户原始需求、软件功能需求进行测试分析,对分析结果进行测试分解的过程。首先确定测试需求分析来源:开发需求、用户需求、协议规范、测试经验;其次明确测试类型,如:功能测试、一致性测试、安全性测试、性能测试、压力测试、恢复测试、系统指标测试、备份测试、大容量测试、抗干扰测试、互操作测试和Web测试;再次进行功能分解,最后进行功能测试分解。
2、 测分评审:评审测试需求分析的准确性、完整性、一致性。
3、 测试计划:明确测试目标、测试范围;测试任务分解、工作量估计;明确测试依据、测试策略、测试内容和方法;制定人员角色和进度安排;了解测试环境;风险分析。
4、 测试计划评审:评审测试计划的准确性、完整性、一致性、可行性。
5、 测试设计:测试用例编写、黑盒测试、白盒测试内容和方法,测试脚本开发。
6、 测试设计评审:评审测试用例的准确性、完整性、一致性、可行性。
7、 测试执行:根据测试设计进行操作执行。
8、 测试报告:完成整个测试项目总结、缺陷报告、缺陷跟踪报告。
9、 测试报告、缺陷报告评审。
10、 回归测试设计、测试执行。
11、 回归测试报告、缺陷报告。
12、 项目总结报告,项目提交发布。