述软件开发的几个模式,并说明并每种模式对软件测试的影响
- 大棒开发模式
- 大棒开发模式的最大优点就是思路简单,经常可能就是程序员的“突发奇想”。
- 大棒开发模式的软件测试通常在开发任务完成后进行,测试工作有时比较容易,有时则非常艰难,这是因为软件已形成产品后,已经无法再修复存在的问题。
- 边写边改模式
- 边写边改的开发模式是对大棒开发模式的一种改进;
- 处于边写边改开发的项目小组的软件测试人员要明确的是,自己将和程序员一起陷入可能长期循环往复的一个开发过程。通常,新的软件版本在不断地产生,而旧的软件版本工作可能还没有完成,新版本还可能有包含了新的或修改了的软件功能。
- 瀑布开发模式
- 遗漏的需求或者客户不断变更的需求会使得该模型无所适从,它适用于那些比较稳定,容易理解的项目;
- 瀑布开发模式的优点:1)易于理解 2)调研开发的阶段性 3)强调早期计划及需求调查 4)确定何时能够交付产品及何时进行评审与测试;
- 瀑布开发模式的缺点:1)需求调查分析只进行一次,不能适应需求的变化 2)顺序的开发流程,使得开发的经验教训不能反馈到该项目的开发中去。 3)不能反映出软件开发过程的反复性与迭代性 4)没有包含任何类型的风险评估 5)开发中出现的问题直到开发后期才能显露,因此失去了及早纠正的机会;
- 快速原型法
- 应用快速模型开发模式的目的是为了确定用户的真正需求,使得用户在原型面前能够更加明确自己的需求是什么。在得到用户的明确需求后,原型将被抛弃。
- 螺旋开发模式
- 螺旋开发模式是瀑布开发模式和快速原型开发模式的相结合的一种开发模式;
- 螺旋开发模式的主要思想是在开始时不必详细定义所有细节,而是从小的规模开始,定义重要功能,尽量实现,然后探测风险,制定风险控制计划,接受客户反馈,进入下一个阶段并重复上述过程,然后进行下一个螺旋的反复,确定下一步是否还要继续,知道最终软件产品的获得。
- 螺旋开发模式由于引入非常级别的风险识别、风险分析和风险控制,因此对风险管理的技能水平提出了很高的要求,并需要较多的人员、资金和时间上的投入。
- RUP模型
- RUP汇集了现代软件开发中多方面的管理经验,并为适应各种项目及组织的需要提供了灵活的形式。作为一个商业模型,它具有非常详细的过程指导和模板。
- 由于该模型比较复杂,在模型上的掌握需要花费比较大的成本。尤其对项目管理者提出了比较高的要求。
- IPD流程开发模式
- IPD流程是一个阶段性模型,具有瀑布模型的影子,
- 该模型是通过流程成本来提高整体产品的质量并获得市场的占有率。由于流程没有定义如何进行流程回退的机制,因此对于需求经常变动的项目,该流程就显得不适合;对于一些小的项目,也不是非常适合使用该流程。
- 敏捷开发模式
- 敏捷方法将开发与测试过程融为一体。
- 在敏捷方法中,测试以很多不同的方法扮演着同样的角色,而不同的测试种类扮演着不同的角色。
- 根据敏捷原则,要确保能用自动化测试的事情绝不要用手工测试,同时要做到适于手工测试的内容绝不花高昂成本做自动化的测试。
- 不因为某方面不能实现自动化测试不去做测试。
- 如何运用手工测试和自动化测试?如何设计测试用例?这些事敏捷测试面临的挑战。
总之,不同的过程模型,适合于不同的类型的软件项目。所选择不同的过程模型对软件测试都有着直接的影响。