- 软件测试
- 需求
- 软件需求与用户需求
- 软件测试与软件调试的区别
- Bug(软件错误)
- 开发模型
- 瀑布模型
- 螺旋模型
- 增量模型
- 敏捷模型
- 测试模型
- V模型
- W模型(双V模型)
软件测试就是软件测试人员验证软件是否满足用户的需求。
需求用户的期望和满足合同(权限,规则,标准)的规定所需要的条件和权限
软件需求与用户需求软件需求由用户需求转化而来,是用户需求的细化,是用户需求的具体实现细节和规范;
用户需求较为粗略,用户的原始需求也可以称为用户目标、用户的真实需求等, 用户需求并不等于产品需求,用户所表达的需求,都是受自身的背景限制,所表达的意思,往往是不准确、不全面的。
需求是软件测试的依据
测试人员需要,验证需求,保证需求正确性合理性,细化需求,从中提取出测试项
目的不同
软件测试:软件测试人员确保程序实现了程序应该实现的功能
软件调试:软件开发人员确保开发人员想让程序实现的功能
参与人员不同
软件测试:测试人员和开发人员
软件调试:开发人员
阶段不同
软件测试:贯穿整个软件开发的生命周期
软件调试:开发阶段
产品说明书中规定要做的事情,而软件没有实现。
产品说明书中规定不要做的事情,而软件确实现了。
产品说明书中没有提到过的事情,而软件确实现了。
产品说明书中没有提到但是必须要做的事情,软件确没有实现。
软件很难理解,很难使用,速度超慢,测试人员站在最终用户的角度看到的问题是平常的但不是正确的。
优点:阶段性强,每一个阶段较为独立,看重前期的需求分析和后期的测试
缺点:测试在编码后才开始介入,导致前期的问题后期才发现,失去补救的机会,开发风险大
螺旋模型
适合与项目庞大,前期风险大,不是很明确项目
特点:强调每一个迭代的测试质量和风险分析
优点设计上的灵活性,可以在项目的各个阶段进行变更。
以小的分段来构建大型系统,使成本计算变得简单容易。
缺点:风险管控人力物力投入很多,成本比较大,如果迭代次数过多,增加成本,影响交付时间
增量模型
把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
优点
1、将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
2、以组件为单位进行开发降低了软件开发的风险。
3、开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。
缺点:
1、要求待开发的软件系统可以被模块化。
2、由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,需要软件具备开放式的体系结构。
适用范围
1、软件产品可以分批次地进行交付。
2、待开发的软件系统能够被模块化。
3、软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。
4、项目管理人员把握全局的水平较高。
个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
特点:轻文档,轻流程,重目标,重产出
角色:
PO product owner :把用户需求转化成 user story
SM scrum master :项目经理,管理整个团队,负责敏捷流程顺利实施,各种会议
ST scrum team :各种技能的人组成,开发,测试 UI
发布计划会议:产品经理收集需求形成user story 讲解,排出本迭代需要进行开发的 userstory 形成 sprint backlog
迭代计划会议:分析userstory,把 userstory 分解一个个的任务,分配开发人员,制定开发计划
每日站会:昨天干了什么,遇到的问题,今天的计划
产品演示会议:甲方,用户演示产品, PO 把不足的地方收集成 user story ,下一次迭代改进
回顾计划会议:回顾整个迭代过程,把不足的地方找出,在下一次迭代过程中改进,优化迭代流程
每个软件开发组织应该选择适合于该组织的软件开发模型,并且应该随着当前正在开发的特定产品特性而变化,以减小所选模型的缺点,充分利用其优点。
测试模型 V模型特点:每一个阶段独立性强左边每一个阶段是右边测试阶段的依据
缺点:(是瀑布模型变种)编码后才可以进行测试,前期的错误后期才会发现,会失去错误纠正的机会
特点:每一个阶段独立性强,测试一开始就介入,可以保证前期的问题及时发现并进行纠正,测试和开发并行的
缺点:每一个阶段都是串行的过程,一个阶段完了之后再进行下一个阶段,不支持敏捷开发(拥抱变化)