软件测试的各种方法介绍

别妄想泡我
572次浏览
2021年02月21日 09:04
最佳经验
本文由作者推荐

-

2021年2月21日发(作者:香沙芋)


研发过程中软件测试的方法汇总



一、



动态测试的几个环节:



动态测试


,英文是


Moment Testing




动态测试


是指通过运行


软件


来检验软件的动态行为和运行 结果的正确性。



根据


动态测试


在软件开发过程中所处的阶段和作用,


动态测试可分为如下几个步


骤:



单元测试



集成测试



冒烟测试



系统测试



回归测试



验收测试




1.



单元测试



单元测试,英文是


Unit Testing




单元测试


是最微小规模的测试


;


以测试某个功能或代码块 。典型地由


程序员


而非


测试员来做,< /p>


因为它需要知道内部


程序设计


和编码的细 节知识。


这个工作不容易


做好,


除非应 用系统有一个设计很好的


体系结构


;


还可能需要开发测试驱动器模


块或测试套具。




2.



集成测试



集成测试,英文是


Integration Testing




集成测试


是指一个应用系统的各个部件的联合测试,


以决定他们能否在一起共同< /p>


工作并没有冲突。


部件可以是代码块、


独 立的应用、


网络上的


客户端


或服务器端


程序。


这种类型的测试尤其与客户服务器和

分布式系统


有关。


一般


集成测试< /p>


以前,


单元测试


需要完成。



集成测试



单元测试


的逻辑扩展。


它的最简单的形式是:


两个已 经测试过的单元


组合成一个组件,


并且测试它们之间的接口。< /p>


从这一层意义上讲,


组件是指多个


单元的 集成聚合。


在现实方案中,


许多单元组合成组件,


而这些组件又聚合成程


序的更大部分。


方法是测试片 段的组合,


并最终扩展进程,


将您的模块与其他组


的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多


个进程组成,应该成对测试它们,而不是同时测试所有进程。



集成测试


识别组合单元时出现的问题。


通过使用要求在组合单 元前测试每个单元,


并确保每个单元的生存能力的


测试计划



可以知道在组合单元时所发现的任何错


误 很可能与单元之间的接口有关。


这种方法将可能发生的情况数量减少到更简单

< p>
的分析级别



3.



冒烟测试



冒烟测试,英文是


Smoke testing




冒烟测试


的名称可以理解为该种测试耗时短,


仅用一袋烟功夫足够了。

< p>
也有人认


为是形象地类比新电路板基本功能检查。


任何新电路板焊好后,


先通电检查,



果存在设计缺陷,电路板可能会短路,板子冒烟了。



冒烟测试


的对象是新编译的每一个需要正式测试的


软件

< br>版本,


目的是确认软件基


本功能正常,

< br>可以进行后续的正式测试工作。


冒烟测试


的执行者是版本 编译人员。





4.



系统测试



系统测试,英文是


System Testing




系统测试是基于系 统整体需求说明书的黑盒类测试,


应覆盖系统所有联合的部件。


系统测试


是针对整个产品系统进行的测试,


目的是验证系统是否 满足了需求规格


的定义,找出与需求规格不相符合或与之矛盾的地方。

< br>


系统测试


的对象不仅仅包括需要测试的产品系统的


软件



还要包含软件所依赖的


硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中



软件


与各种依赖的资源结合起来,在系统实际运行环境下来 进行测试。




5.



回归测试



回归测试,英文是


Regression testing




回归测试


是指在发生修改之后重新测试先前的测试以保证修改的正确性。


理论上,


软件


产生新版本,


都需要进行


回归测试



验证以前发现和修复的错误是否在新 软


件版本上再次出现。



根据修复好了 的缺陷再重新进行测试。


回归测试


的目的在于验证以前出现过但 已


经修复好的缺陷不再重新出现。


一般指对某已知修正的缺陷再 次围绕它原来出现


时的步骤重新测试。


通常确定所需的再测试的 范围时是比较困难的,


特别当临近


产品发布日期时。

< p>
因为为了修正某缺陷时必需更改


源代码



因而就有可能影响这


部分源代码所控制的功能。


所以在验证修好的缺陷时不仅要服从缺陷原来出现时


的步骤重新测试,

< br>而且还要测试有可能受影响的所有功能。


因此应当鼓励对所有

回归测试用例进行


自动化测试





6.



接受测试



接受测试,英文是


Accept Testing




接受测试是基于客 户或最终用户的规格书的最终测试,


或基于用户一段时间的使


用 后,看


软件


是否满足客户要求。一般从功能、用户界面、性能、 业务关联性进


行测试。




二、




测试 者对内部的知晓或者程度


分类




1.



白盒测试



白盒测试,英文是


White Box Testing


。又称结构测试或者逻辑


驱动


测试。



白盒测试


是把测试对象看作一个打开的盒子。 利用白盒测试法进行


动态测试


时,


需要 测试


软件


产品的内部结构和处理过程,不需测试软件产品的功能 。



白盒测试


法的覆盖标准有


逻辑覆盖



循环覆盖和基本

路径测试



其中


逻辑覆盖




语句覆盖



判定覆盖



条件覆盖



判定


/


条件覆盖、

< br>条件组合覆盖



路径覆盖




白盒测试


是知道产品内部工作过程,


可通过测试来检测产品内部动作是否按照规


格说明书的规定正常进行 ,


按照程序内部的结构


测试程序



检验程序中的每条通


路是否都有能按预定要求正确工作,

< p>
而不顾它的功能,


白盒测试的主要方法有逻


辑驱动 、基路测试等,主要用于


软件


验证。



白盒测试


常用工具有:


Jtest



VcSmith



Jcontract



C++ Test


CodeWizard



log iscope




2.



黑盒测试



黑盒测试


,英文是


Black Box Testing


。又称


功能测试


或者< /p>


数据驱动测试




黑盒测试是根据


软件


的规格对软件进行的测试,


这类测试不考虑软件内部的运作


原理,因此软件对用户来说就像一个黑盒子。



软件测试人员


以用户的角度,


通过各种输入和观察软件的各种输出结果来发现软


件存在的缺陷,而不 关心程序具体如何实现的一种软件测试方法。



黑盒测试


常用工具有:


AutoRunner



winrunner



loadrunner





三、



从思维的方向分:



1.



正向测试:



2.



逆向


测试:



逆向测试


/


反向测试


/


负面测试


的英文是


Negative Testing


,测试瞄准于使系统


不能工作。



负面测试


与正面测试的比较:



负面测试



Negative tes ting



是相对于正面测试(


Pos itive testing


)而言的。


它们也是测试设计时的 两个非常重要的划分。


简单点说,


正面测试就是测试系统


是否完成了它应该完成的工作;


而负面测试就是测试系统是否不执行它 不应该完


成的操作。


形象一点,正面测试就象一个毕恭毕敬的小 学生,老师叫我做什么,


我就做什么;



负面测试


就象一个调皮捣蛋的孩子,


你叫我这样做,


我偏不这样


做,而且和你对着干。开发人员也是最讨厌修改此类


bug


的。



四、



从测试的内容分:



1.



接口测试



接口测试的英文是


interface testing



接口测试测试系统组件间接口的一种测试。



接口测试


的好处:


< br>由于


接口测试


代码本身就是用


j unit


(当然接口的类型不同,不一定是


Junit



实现)


来实现的,


是 属于


自动化测试


的范畴,


因此必定也包 含自动化测试所固有


的优势。



1




提高测试质量



软件开发


的过程是一个


持续集成


和改进的过程,而每一次的改 进都可能引进新


bug,


因此当软件的一部,或者全部修改时, 都需要对软件产品重新进行测试。


其目的是要验证修改后的产品是符合需求的,


而当没有


自动化测试


代码时,

< br>往往


会由于各种各样的原因,回归不充分,导致


bug< /p>


遗漏。



2




提高测试效率



软件系统


的规模越来越大,


功能点越来越多,


开发人员的自测 或者测试人员的人


工测试非常耗时和繁琐,


势必导致测试效率的 低下,



自动化测试


正好解决这些

-


-


-


-


-


-


-


-