【软件工程】软件测试

前言

软件测试,相当于建筑立面的监工,监工要比干活的知识面要广。

一、(一)软件测试的内容

软件测试不光是测试我们程序员所编写的软件,还有我们写的文档,程序的接口,运行的环境等。

(二)软件测试的目的

1、软件测试是程序的执行过程,目的在于发现错误
2、好的测试用例是能够发现新的错误
3、一个成功的测试是发现了至今未发现的错误的测试

(三)测试的原则

1、测试前要认定被测试的软件有错,不要认为软件没有错
2、要预先确定被测试软件的测试结果
3、要尽量避免测试自己编写的程序
4、测试要兼顾合理输入与不合理的输入数据
5、测试要以软件需求规格说明书为标准
6、测试是相对的,不能穷尽所有测试
7、测试用例留作测试报告与以后的反复测试用

(四)测试的方法

1、黑盒测试(数据驱动)

黑盒测试就是不管内部的数据结构,主要测试的就是功能,以数据作为驱动,输入一个数据,同时还会输出一个数据,观察输出的数据是否满足你的需求!

(1)等价类划分法:

等价类分为有效等价类和无效等价类

无效等价类和有效等价类相反,无效等价类是指对于软件规格说明而言,没有意义的,不合理的输入数据集合。利用无效等价类,可以找出程序异常说明情况,检查程序的功能和性能的实现是否有不符合规格说明要求的地方。

有效等价类指输入完成满足程序输入的规格说明,有效、有意义的输入数据所构成的集合。利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。

在这里插入图片描述

(2)边界值法

边界值法是对等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。

在这里插入图片描述

2、白盒测试(逻辑驱动)

对逻辑路径进行测试,所有的关键路径(相互独立的路径)都要测试,白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态监测等。但是对于不同的开发语言,测试工具实现的方式和内容差别是较大的。测试工具主要支持的开发语言包括:标准C、C++、Visual C++ 、Java和Visual J++等

总结:黑盒测试与白盒测试都是测试用例的一种方法,期中黑盒测试用的较多,白盒测试的难度比较大,需要测试者有较高的水平,测试者必须熟悉高级余元,白盒测试需要借助专门的测试工具,对程序员编写的代码进行一个一个的逻辑测试,过程非常繁琐,像单元测试一般都用白盒测试,集成测试一般采用黑盒测试!

(五)测试的步骤

如图,测试的过程如下,单元测试,集成测试,确认测试,系统测试

在这里插入图片描述

1、单元测试(模块测试)

测试的内容:路径、边界、局部数据、模块结构、出错的处理
在这里插入图片描述

如图所示,由于单元模块都是孤零零的一个模块,我们在设计软件的时候,有很大的时候这个模块的功能是与其他的模块是有很大的联系的,如被测的单元模块用到的数据很有可能是它的上一个模块产出的数据,这时候我们就需要辅助模块了,辅助模块分别是桩模块,与驱动模块,桩模块与驱动模块使我们的测试者虚拟出来的。

2、集成测试(组装测试)

实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反应不出来的问题,在全局上很有可能暴露出来,于是集成测试出来的,它是非常重要的,建立在单元测试之上。

3、确认测试(有效性测试)

确认测试是对通过组合测试的软件进行的,这些软件已经存与系统目标设备的介质上。确认测试的目的是要表明软件是可以工作的,并且符合软件需求说明书中规定的全部功能和性能要求。确认测试是按照这些要求定出的确认测试计划进行的。测试工作由一个独立的组织进行。而且测试要从用户观点出发。

4、系统测试

软件调试是在进行了成功的测试之后才开始的工作,它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。测试的分析报告由此而产生。

猜你喜欢

转载自blog.csdn.net/MyxZxd/article/details/84632270