加油学习
软件测试基础
软件生命周期
一般是多种模型混合使用。
定义
软件的产生直到报废或停止使用的生命周期。
瀑布模型(最早)
优点:
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
缺点:
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
4)瀑布模型的突出缺点是不适应用户需求的变化。
迭代模型
优点:
1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
快速原型模型
优点:
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
这种模型适合预先不能确切定义需求的软件系统的开发。
缺点:
所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
注意:使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。
螺旋模型
优点:
1)设计上的灵活性,可以在项目的各个阶段进行变更。
2)以小的分段来构建大型系统,使成本计算变得简单容易。
3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
4)随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
缺点:
很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
项目适用:
对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。
软件测试模型
V模型
揭示了开发过程与测试过程中各阶段的对应关系。
不足:
- 忽视了测试对需求分析、系统设计的验证;
- 需求的满足情况直到后期才被验证;
- 没有体现“尽早不断地进行软件测试”的原则。
W模型
两个V模型 = 测试 + 开发(并行关系)
优点:
- 测试活动与软件开发同步进行;
- 测试对象不仅仅是程序,还包括需求和设计;
- 能够更早发现软件缺陷,可以降低软件开发的成本。
局限性:需求、设计、编码邓活动被视为串行的,无法支持灵活的迭代。
H模型
软件测试是独立的
X模型
定位了探索性测试。
测试用例
用例中不需要描写正反向思维。
表格模板
测试用例举例
设计效果
- 有效性
- 可复用性:可以重复使用
- 易组织性
- 可评估性
- 可管理性:可以作为测试人员进度、工作量以及跟踪或管理测试人员的工作效率的标准。
测试流程
获取测试需求——编写测试计划——制定测试方案——设计和开发测试用例——执行测试——提交缺陷报告——测试分析和评审——测试总结——准备下一版本的测试。
获取测试需求:
1)分析系统的模块和组织结构、以及软件的基本功能和运行流程。(业务分析)
2)识别出软件的重要功能和次要功能。
3)设定测试中需求的正、反向和优先级。
4)针对每个需求点进行测试用例的设计。需求的覆盖程度 = 被测试用例覆盖的需求数 / 需求点总数。若需求的覆盖程度 < 100%,表明测试用例的覆盖度不够。
5)测试人员工作量的指标:缺陷的数量和用例的数量。
黑盒测试
等价类划分法
不要出现反复的用例,也不能遗漏需要的用例。
确定等价类的原则:
- 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
- 在输入条件规定了输入值的集合或者规定了“必须如何” 的条件的情况下,可以确立一个有效等价类和个无效等价类
- 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
- 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
- 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若千个无效等价类(从不同角度违反规则)
- 在确知己划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类
举例:
(1)
(2