分享

从软件测试流程看微软缺陷管理方法

 昵称294497 2009-09-11

软件测试做为微软最为关键的流程与组成部分,对微软的产品有着举足轻重的作用,在本文中可以参考微软的项目管理与流程安排。

一.团队组织

1.微软团队模型

团队人员组成比例:项目经理,开发,软件测试人员比例为5%:31%:64%。产品团队中,权威仅仅来自于知识,而不是来自于职位。

Bill Gates:“People are most productive working in small teams with tight budgets, time deadlines, and the freedom to solve their own problems”

通过有效的风险管理,使不确定因素达到最小。

使用小团队并行工作,达到最多的同步点。

定期编译与快速测试,使产品的稳定性和可用性达到最佳。

2. 各角色的职责

1) Product Management Team让客户满意。

Target:确定产品远景,获取并确定用户需求,开发并维护商业安全,满足用户需求。

Role: 部门负责人为 Product General Manager,下设Product Unit Manger,Product Planning,Market and Research,Evangelism与Public Relation的部门负责人;evangelism:说服别人,产品推销,原意为“战斗似的热情”。

Task:进行Group Program Management,清楚地知道用户的需求,并给出详细定义,即用专业术语描述;确保新产品带来利润;控制用户的期望值;设计大概的产品特性和进度表;管理市场,推销及公共关系。

2) Program Management 在项目约束条件下交付。

Target:制定开发功能规范,在团队内沟通与协商,维持产品进度并报告产品状态,保证在产品约束条件下按时发布产品。

Role :project coordination,product architecture,release management。

Task:管理产品细节,如feature的详细设计;促进团队沟通与交流,如plan following up;控制全局,保证项目按时完成,生产过程中的trade off。

3) Software Development Management 按产品规格交付。

Target:开发出满足设计规范和用户要求的产品。

Team Role :软件架构师(Software Architect) 与软件开发工程师(Software Development Engineer )。

Task:进行Software Development Management,包括database,system service,user interface。

4) Software Testing 解决所有问题后发布。

Target:开发测试策略和计划,保证解决了所有已知问题后,再发布产品。

Team Role:测试工具软件开发工程师(Software Development Engineer in Test , SDE/T)与软件测试工程师(STE)。

Task:进行test management,compliance testing,configuration testing,integration testing,stress testing 测试工具的编写----开始于,Test Case 确定之后,并根据Test Case来设计。

通过使用来发现bug不是真正的测试,只能发现一般用户问题,属于最基本测试范畴;

软件测试要考虑所有出错的可能性,错误的承受力,运行的性能问题,软件的兼容性;

一流的软件测试人员,不仅要找出bug,还要定位引起bug 的代码行;对设计缺陷,软件测试人员应提出一个更合理的设计,并确保此设计易于开发人员实现。 Active Bug 指 当前必须修改的defect。

5) User Enducation Team 提高用户胜任力。

文档编写,用户培训;保证使用文档要全部清除地写出来,提高用户使用产品的技能,保证大多数用户能够充分利用产品的功能。

6) Logistic management 平滑产品部署。产品实施与维护。

3. 开发过程特点

1)文档齐备:每人清楚了解自己需要做的工作;功能规范由一个3---5人的小组负责完成。

2) 相互阅读代码:实现目标为同一个feature,代码间可能相互依赖,有助于整体提高效率;避免核心代码由一人完全控制。

3) 代码注释:包含详尽的调试信息,便于理解与问题解决。

二.项目管理

1. 管理机制

◆ 组织架构

产品开发行政结构,一个Product Unit Manger,下设三个平级的部门经理,团队项目经理(Product Unit Manager),软件开发经理(Development Manager)和测试经理(Test Manager);每个部门经理管几个组长,每个组长下再有3到5个具体工作人员,如项目经理,软件开发人员与测试人员。

产品设计,产品实现和产品测试,三权分立,相互配合,相互制约,相互依赖,有助于建立明确责任制,从而保证产品开发的顺利完成。

软件开发与测试经理/组长,均为专业技术人员出身,能够指导部下工作或代替他们完成任务;这样人员的行政管理就是领域专家式管理,保证了开发从技术上思考和评判设计方面的问题。员工也会乐意接受能真正了解他具体工作的人领导,并给与充分的尊重,同时也能避免开发人员虚报所需工作日的情况。

微软行政级别决定员工工资,股权等福利待遇,而职务头衔与行政级别并不是直接挂钩的。技术人员只要能力强,贡献大,行政级别与工资,福利待遇可能同高层一样,不需成为经理或领导才能获得较高级别的待遇。这样他们可安心自己擅长的工作,其能力和贡献,可经不断的提级来得到认可和回报。

◆项目经理配置

随着软件产品项目规模增大,产品质量问题,开发周期问题,内部管理等问题越来越突出,必须从根本上加强项目的组织管理,从而微软产生了项目经理这一职位。

项目经理全权负责产品的最终完成,其任务涉及:了解用户需求;进行产品的功能定义,规划和设计;做各种复杂决策,保证开发队伍顺利开展工作,及跟踪程序的错误等。项目经理占开发总人数的1/5,即每个开发小组中,有一个项目经理,两个软件工程师,与两个软件测试工程师。

◆具体工作描述

1)制定产品远景计划,写出项目规格说明书;

确定商业机会后,产品单元经理制定出粗略的商业计划书,交项目经理准备项目计划草案,包括远景描述,主要功能,建议的时间表,里程碑及所需的资源。主持由开发测试骨干参加的会议,对计划草案进行全面的分析讨论,确定主要功能模块。 对每一模块编写一页纸规模的设计说明书,包括功能优先级的制定与理由,对资源的估算,时间表的估算,风险评估,同其他功能块的关系;目的要评估实现这个功能块的成本,目标与条件。召集产品单元经理,各部门经理参加的设计说明书评审会,汇总所有功能块说明书,对进度,功能块的取舍做总结和决定。

2) 制定工作详细任务表,跟踪任务的执行情况,保证其符合规格说明书的原始设计。

3) 指导项目开发的过程设计与实现;对各种具体方案进行取舍并做出决定。

4) 组织会议,评审程序错误;协调成员之间交互配合。

5) 产品完成后,主持项目总结报告会,讨论此次的经验与教训;下一版本的改进,及具体的行动计划。

◆项目经理要求

项目经理通过产品单元经理,对软件设计工程师和测试工程师的资源和任务分配进行调整,但不会直接下达行政命令;其核心任务是业务领导,掌握产品全局观念和进度,协调开发人员与测试人员的工作进度,及同与产品有关的其他人员接触,如市场,用户支持,客户教育等。

对团队的领导,主要依靠其个人威信(credit),开发人员和测试人员的尊重和配合;其威信来自于工作中表现出的领导力,洞察力和判断力。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多