您的位置:首页 > 其它

软件测试基础理论整理

2019-03-04 15:13 204 查看

软件测试师担当“质量管理”的角色,及时地纠错,及时地更正,保证产品正常运行。

一、什么是软件测试?

经典定义:测试是为发现错误而执行程序的过程。

IEEE定义:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件是否满足规定的要求,并找出与预期结果之间的差异。

二、软件测试对象?

软件测试对象包括:程序、需求、功能、设计等等。

三、软件测试遵循的原则?

1、测试能显示缺陷的存在,但不能证明系统已经不存在缺陷。

2、穷尽测试是不可能的,应该设定及时终止的条件。

3、测试应该尽早进行。

4、缺陷具有群集特性,系统的缺陷可能集中在某一小块代码的bug里。

5、测试的杀虫剂悖论。如果一直用同一种测试案例来进行测试,那么很容易存在不同类型的bug,应该对系统进行评估,并用不同的案例进行测试。

6、测试的二八原则。考虑到测试效率,应该用80%的时间精力对20%的重要的模块进行测试。

7、测试活动依赖于测试背景。针对金融银行方面系统的测试着重在安全性,针对通信方面系统的测试着重在系统稳定性、大数据方面。

四、软件测试的分类

1、按软件内容结构和实现:

1)白盒测试:已知产品的内部工作过程,可通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检。

2)黑盒测试:已知产品功能设计规格,可以进行测试证明每个实现的功能是否经过检查。

3)灰盒测试:介于白黑之间,在关注输出正确的同时,考虑内部的实现逻辑。

2、按照是否执行程序:

1)静态测试:不执行程序本身,反通过分析或检查源程序的语法、结构、过程、接口等。

2)动态测试:运行被测程序,检查运行结果与预期结果的差异

3、按照开发阶段:

1)单元测试:是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作,一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。

2)集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。

3)系统测试:把已确认的软件纳入实际环境中,与其他系统成分组合在一起进行测试。

4)验收测试:产品发布前进行的保证用户能正常使用的测试过程。

4、按测试目的:

回归测试、压力测试、性能测试、稳定性测试、其他专项测试。

五、测试模型

1、V模型

在软件测试方面,V模型是最广为人知的模型。V模型中的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间个阶段的对应关系。
局限性:把测试作为编码之后的一个活动,需求分析前期产生的错误直至后期的验收测试才能发现。

2、W模型!

相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能、设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
局限性:W和V模型都把软件的开发是为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。

3、X模型

X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过继承最终成为可执行的程序,然后再对这些可执行程序进行测试。已通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。由图中可见,X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。但这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。

4、H模型

软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以测试准备阶段进行到测试执行阶段。软件测试可以尽早地进行,并且可以根据被测物的不同而分层次进行。

各模型的特点:

1、V模型——非常明确地标注了测试过程中存在的不同类型的测试。
2、W模型——非常明确地标注了生产周期中开发与测试之间的对应关系
3、X模型——指出整个测试过程时探索中进行的。
4、H模型——软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: