软件测试的几种基本方法

    上次我们介绍了软件测试的基本概念及基本原则,今天我们就来看看软件测试的几种基本方法吧。

    首先,当然就是我们大家熟悉的黑盒测试和白盒测试,这是按是否查看程序内部结构分的。其次,还可以按是否运行程序分为静态测试和动态测试,按阶段可分为单元测试、集成测试、系统测试、验收测试、回归测试。除此之外还有冒烟测试、随机测试等。接下来就详细介绍一下以上几种测试。

一、按是否查看程序内部结构分为:

1、黑盒测试(Black Box Testing):

    黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。简单来说,这种测试只关心输入和输出的结果,并不考虑程序的源代码。黑盒测试分为功能测试和性能测试:

1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。包括逻辑功能测试、界面测试、易用性测试和兼容性测试。

2)性能测试(performance testing),软件的性能主要有时间性能和空间性能两种。其中,时间性能主要指软件的一个具体事务的响应时间,空间性能主要指软件运行时所消耗的系统资源

2、白盒测试(White Box Testing):

    白盒测试是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。与黑盒测试相反,这种测试就要研究程序里面的源代码和程序结构。

二、按是否运行程序分为:

1、静态测试(static testing):

    静态测试指测试不运行的部分,只是静态地检查程序代码、界面或文档可能存在的错误的过程。例如测试产品说明书,对此进行检查和审阅.。

2、动态测试(dynamic testing):

    动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。具体操作就是输入相应的测试数据,检查输出结果和预期结果是否相符的过程。

三、按阶段分为:

1、单元测试(Unit Testing):
    单元测试是最微小规模的测试,测试的是某个功能或代码块。典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。
2、集成测试(Integration Testing):
    集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。一般集成测试以前,单元测试需要完成。
3、系统测试(System Testing):
    系统测试是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
4、验收测试(Accept Testing):
    验收测试是基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。一般从功能、用户界面、性能、业务关联性进行测试。
5、回归测试(Regression testing):

    回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。

四、其他类型测试:

1、冒烟测试(smoke testing):

    冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。冒烟测试的对象是新编译的每一个需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

2、随机测试(random testing):

    随机测试是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。

    以上就是几种常用的软件测试方法,当然还有很多其他的测试方法(比如逆向测试,极限测试等),在这里就不一一介绍了。下周预告:软件测试的几种常用工具。下周见~

原文地址:https://www.cnblogs.com/caoyue/p/4356479.html