软件测试的对象:
软件测试不等于程序测试。软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。
软件测试的原则:
1、尽早地和及时地测试
2、测试前应当准备好测试数据和与之对应的预期结果这两部分
3、测试输入数据应包括合理的输入条件和不合理输入条件
4、程序提交测试后,应当由专门的测试人员进行测试
5、严格执行测试计划,排除测试的随意性
6、应对每一个测试结果做全面的检查
7、充分注意测试当中的群体现象(二八定理)
8、保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料
软件测试的分类:
按代码是否运行分:静态测试,动态测试。
按测试组织分:开发方测试,用户测试,第三方测试。就我自己而言,我认为用户测试最重要。.
按测试用例的方法分:黑盒测试(只要是逻辑比较强的人应该都能适用),白盒测试(白盒测试是对我们科班生的一个基本要求),灰盒测试。
按测试策略和过程分:单元测试->集成测试->系统测试->验收测试
按基本要求和适用要求分:功能测试,性能测试,界面测试,易用性测试,容性测试,安全性测试,安装测试
软件测试与开发的关系:
V模型:
V模型的优缺点:
1、优点:包含了底层测试(单元测试)和高层测试(系统测试);
清楚的标识了开发和测试的各个阶段;
自上而下逐步求精,每个阶段分工明确,便于整体项目的把控。
2、缺点:自上而下的顺序导致了,测试工作在编码之后,就导致错误不能及时的进行修改;
实际工作中,需求经常变化,导致v模型步骤,反复执行,返工量很大,灵活度较低。
改良:每个步骤都可以进行小的迭代工作。
W模型(双V模型):
W模型的优缺点:
优点:
开发伴随着整个开发周期,需求和设计同样要测试;
更早的介入测试,可以发现初期的缺陷,修复成本低;
分阶段工作,方便项目整体管理。
缺点:
开发和测试依然是线性的关系,需求的变更和调整,依然不方便;
如果没有文档,根本无法执行w模型;对于项目组成员的技术要求更高!
H模型:
H模型的优缺点:
H模型的优点:
>开发的H模型揭示了软件测试除测试执行外,还有很多工作;
>软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行;
>软件测试活动可以尽早准备、尽早执行,具有很强的灵活性;
>软件测试可以根据被测物的不同而分层次、分阶段、分次序的执行,同时也是可以被迭代的。
H模型的缺点:
>管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制;
>技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小;
>测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难;
>对于整个项目组的人员要求非常高:在很好的规范制度下,大家都能高效的工作,否则容易混乱。例如:你分了一个小的迭代,但是因为人员技能不足,使得无法有效完成,那么整个项目就会受到很大的干扰。
X模型:
X模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后,将进行频繁的交接,通过集成最终合成为可执行的程序。这一点在图的右上方得以体现,而且这额可执行程序还需要进行测试,已通过集成测试的成品可以进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。同时,X模型还定位了探索性测试。
X模型的优点:探索性测试,能够帮助有经验的测试人员在测试计划之外发现更多的软件错误。
X模型的缺点:探索性测试可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。