软件测试的方法一共有几种

如题所述

第1个回答  2012-10-30
一:根据动态测试在软件开发过程中所处的阶段和作用,分为
1、单元测试2、集成测试3、系统测试4、验收测试5、回归测试
二:从是否关心软件内部结构和具体实现的角度划分  
1.白盒测试2.黑盒测试3.灰盒测试本回答被网友采纳
第2个回答  2012-10-30
按不同的划分一共有很多种,我也不能一一给你划分出来,建议还是多学学基础知识。
第3个回答  2020-09-17

第4个回答  2020-11-27

第5个回答  2020-10-20

一般而言,软件测试方法分为黑盒测试、白盒测试、灰盒测试、静态测试、动态测试、手动测试、自动化测试、探索性测试等类型。

1 黑盒测试

黑盒测试又称功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试方法验证被测对象使用质量及外部质量表现。

采用黑盒测试方法,测试工程师将测试对象看作一个黑盒子,如图1所示,完全不考虑程序内部逻辑结构和内部特性,只依据需求规格说明书、设计文档及其他需求描述文档,检查被测对象是否与期望需求一致。

图1黑盒测试示意图

测试工程师无须了解被测对象的内部构造,完全模拟软件产品的最终用户使用该软件,以用户需求规格说明书为评判标准,检查软件产品是否满足了用户的需求。测试过程无须关注微信内部设计信息,所采用的测试方法就是黑盒测试。

黑盒测试方法能更好、更真实地从用户角度来考察被测系统的需求实现情况。在软件测试的各个阶段,如单元测试、集成测试、系统测试及确认测试等阶段中都发挥着重要作用,尤其是在系统测试和确认测试中,其作用是其他测试方法无法取代的。但黑盒测试方法的弊端也很明显,由于仅关注被测对象外部特性表现,对于一些结构性、深层次的问题不易揭露,带来漏测的潜在风险。

需注意的是,黑盒测试方法的思想是将被测对象作为一个黑盒子,在系统测试层面,软件系统是黑盒子,是测试工程师的测试对象。在单元测试、集成测试阶段,如果将函数单元、类文件、接口模块作为一个黑盒子,那么使用的测试方法同样称为黑盒测试,并不能说黑盒测试方法只能用在系统测试和验收测试阶段。


2 .白盒测试

白盒测试,又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。此时,测试工程师需深入考查程序代码的内部结构、逻辑设计等。同样以微信软件为例,测试工程师需了解微信产品的内部设计信息,如编码形式、类文件调用过程、接口参数传递过程等。白盒测试需要测试工程师具备较深的软件开发功底,熟悉相应的开发语言,一般的测试工程师难以胜任该工作。

 

3 .灰盒测试

与前面的黑盒测试、白盒测试相比,灰盒测试介于两者之间。黑盒测试仅关注被测对象的外部特性(功能、性能、用户界面、接口)表现,不关注内部的逻辑设计、构成情况,白盒测试则仅从程序代码的内部构成考虑,检查其内部代码设计结构、方法调用等。

两种方法从相反角度测试被测对象,但相对来说都比较“偏激”,灰盒测试则结合这两种测试方法,一方面需要考虑被测对象的外部特性表现,另一方面又需要考虑程序代码的内部结构。通俗来说,灰盒测试就是白加黑,性能测试和自动化测试就采用了灰盒测试的方法。

 

4. 静态测试

静态测试顾名思义,就是不执行被测对象程序代码、不运行被测对象而实施的测试活动,是发现缺陷的过程。静态测试包含阅读程序代码、文档资料等,与需求规格说明书进行比较,找出被测对象设计、描述、编码等方面的错误。


进行程序代码静态测试时,可采用一些代码走查工具,如QA C++、C++Test等。需要注意的是,代码走查工具一般仅能发现语法或调用效率方面的问题,很难发现业务逻辑错误。


以白盒测试静态测试方法为例,针对一些功能函数、类等文件,可进行阅读、分析,发现被测对象中的缺陷。


5 .动态测试

动态测试运行被测对象的程序代码,执行测试用例,检查系统软件运行结果与预期结果的差异。通过动态行为分析被测对象的正确性、可靠性和有效性,并分析系统运行速度、系统资源耗用等性能状况。

动态测试由4部分组成:设计测试用例、评审测试用例、执行测试用例、输出测试报告。


6. 手工测试

通过模拟终端用户的业务流程应用软件系统,检查被测对象实际表现与预期结果间的差异,测试工程师手工运行被测对象,这种模式即为手工测试。手工测试是最传统的测试方法,也是现在大多数公司普遍采用的测试形式。

测试工程师设计、执行测试用例,比较实际结果与预期结果,记录两者的差异,最终输出缺陷报告和测试报告。手工测试方法可以充分发挥测试工程师的主观能动性,将其智力活动体现于测试工作中,能发现很多的缺陷,但该测试方法有一定的局限性与单调枯燥性。当测试周期变长,业务重复性较大时,手工测试容易变得枯燥乏味。


7. 自动化测试

随着软件行业的不断发展,软件测试技术也在不断地更新,出现了众多的自动化功能测试工具,如HP的Quick Test Professional(最新版本名为UFT)及开源的Selenium。

性能测试工具如LoadRunner、JMeter等。所谓自动化测试,即利用测试工具,编程实现模拟用户业务使用流程的脚本,设定特定的测试场景,自动寻找缺陷。自动化测试的引入,大大地提高了测试效率和准确性,而且封装性较好的测试脚本,还可应用于其他产品项目。业内通常将自动化功能测试称为自动化,而性能测试单独成体系,不含在自动化测试中。

相似回答