软件测试的基本分类

  • 格式:docx
  • 大小:16.04 KB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试的基本分类

1.黑盒测试

黑盒测试又叫功能测试,数据驱动测试或基于规格说明书的功能测试。该测试类别注重于软件测试的功能性需求。

采用这种测试方法,测试工程师把测试对象看做一个黑盒子,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。举个例子,我们购买了手机以后,很少有人拆开手机观察其内部结构,大多数情况下,我们只是使用该手机的功能,从某种意义上说,此时这部手机就是我们的测试对象,所采用的测试方式就是黑盒测试。

黑盒测试的方法能够更好更真实的从用户角度来考察被测系统的功能性需求实现情况。在软件测试的各个阶段,如单元测试,集成测试,系统测试及确认测试等阶段中都发挥着重要作用,尤其在系统测试和确认测试中,其作用是其他测试方法无法取代的。

2.白盒测试

白盒测试又称结构测试,逻辑驱动测试或基于程序内部代码构成的测试。此时,测试工程师将深入考察程序代码的内部结构,逻辑设计等。白盒测试需要测试工程师具备很深的软件开发功底,精通相应的开发语言,一般的软件测试人员难以胜任该工作。3.灰盒测试

与前面的黑盒测试,白盒测试相比,灰盒测试介于两者之间。黑盒测试仅关注程序代码的功能性表现,不关注内部的逻辑设计,构成情况,白盒测试则仅从程序代码的内部构成考虑,检查其内部代码设计结构,方法调用等。而灰盒测试结合这两种测试方法,一方面考虑程序代码的功能性表现,另一方面又需要考虑程序代码的内部结构。通俗地讲,灰盒测试就是白加黑,像我们的性能测试,自动化功能测试就采用了灰盒测试的方法。

4.静态测试

静态测试,顾名思义,就是静态的,不执行被测对象程序代码而寻找缺陷的过程。

通俗地讲,静态测试就是用眼睛看,阅读程序代码文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理以及文档资料有错误的地方。

一般在企业,公司里会召开正规的评审会,通过评审的方式,找出文档资料,程序代码中有错误的地方,并加以修改。

在进行代码的静态测试中,可以采用一些代码走查的工具,如QA C++,C++Test等。

5.动态测试

动态测试即为实际地执行被测对象的程序代码,输入事先设计好的测试用例,检查程序代码运行得到的结果与测试用例中设计的预期结果之间是否存在差异,判定实际结果和预期结果是否一致,从而检验程序的正确性,可靠性和有效性,并分析系统运行效率和健壮性等性能状况。

动态测试由四部分组成:设计测试用例,执行测试用例,分析比较输出结果,输出测试报告。

6.手动测试

在未真正接触软件测试之前,很多人都认为,软件测试工作就是执行一些鼠标单击的动作来查找缺陷。的确,在手动测试阶段,大部分的测试工作就是模拟用户的业务流程,来使用软件产品,从而发现软件产品中的缺陷。手动测试是最传统的测试方法,也是现在大多数公司都使用的测试形式。它是测试人员设计测试用例并执行测试用例,然后根据实际的结果去和语气的结果相比较并记录测试结果,最终输出测试报告的测试活动。这样的测试方法可以充分发挥测试工程师的主观能动性,将其测试活动体现于测试

工作中,能发现很多的缺陷,但同时这样的测试方法又有一定的局限性和单调枯燥性。7.自动化测试

随着软件行业的不断发展,软件测试技术也在不断地更新,出现了众多的自动化测试工具,如HP的QuickTest Professional,LoadRunner,微软的WAS,IBM的Rational等。所谓的自动化测试就是利用一些测试工具,模拟用户的业务使用流程,让它们自动运行来查找缺陷。自动化测试的引入,大大地提高了测试的效率和测试的准确性,而且写出的比较好的测试脚本,还可以在软件生命周期的各个阶段重复使用。

自动化测试的优点是能够很快,很广泛的查找缺陷,同时可以做很多重复性的工作,在回归测试阶段,我们可以利用QuickTest Professional 自动化功能测试工具进行,而无需大量的软件测试人员手动的再次执行测试用例,极大地提高了工作效率。有时候我们常常需要做一种压力测试,需要几万甚至几十万个用户同时访问某个站点,以保证网站的服务器不会出现死机或崩溃的现象。一般来说,要几万人同时打开一个网站是不现实的,就算能够找到那么多的测试者,成本也很高。但是,利用测试工具,比如LoadRunner,就可以非常容易地做到,并且测试工具还可以自动判断浏览结果是否正确。

然而,自动化测试的缺点也很明显,它们只能检查一些比较主要的问题,比如,崩溃,死机,但是却无法发现一般的日常错误,这些错误通过人眼很容易找到,但机器却往往找不到。另外,在自动测试中编写测试脚本工作量也很大,有时候该工作量甚至超过了手动测试的时间。

如今很多的软件产品生产,我们都是追求短(项目周期短),平(成本低),快(市场反应快),根本没有那么多的时间留给我们做测试,在这种情况下,如果我们不适时宜地盲目追求自动化测试,可能带来的不是好处,而是项目的失败。

需要注意的是,在自动化测试活动中,测试工具的应用可以提高测试的质量,测试的效率。但是在选择和使用测试工具的时候,我们也应该看到,在测试过程中,并不是所有的测试工具都适合我们使用,同时,有了测试工具,会使用测试工具并不等于测试工具真正能在测试中发挥作用。因此,我们根据实际情况选择或者不选择测试工具,选择使用何种测试工具,千万不能为了使用工具而刻意地去使用工具。