1.白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。
它允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用,对程序的逻辑进行测试,提高代码质量。
2.白盒测试目的:
保证一个模块中的所有独立路径至少执行一次。
对所有的逻辑值均需要测试真假两个分支。
在上、下边界及可操作范围内运行所有循环。
检查内部数据结构以确保其有效性。
3.白盒测试的优点:
程序代码中如果存在着一些内存泄漏,在黑盒测试中短时间运行并不能发现问题,但是在系统长时间运行后,由于内存泄漏的积累,可能导致整个系统内存消耗殆尽,最后瘫痪。而在白盒中则可以被发现。
程序中往往存在着很多的异常处理分支语句,在黑盒测试时,可能并没有测试到,没有测试到的代码不能保证其运行正确,在系统运行过程中,如果执行到这些分支语句,很可能出问题。白盒测试可以避免发生。
在白盒测试过程中,执行了多少逻辑,可以作为衡量测试是否完整的一个指标。
有时在实验室条件中很难搭建真实的测试环境,这时需要用白盒测试的方法分析源代码,何时能够触发这些代码运行,触发条件是否合理,能否达到要求。
4.白盒测试与黑盒测试的联系:
在用白盒测试来验证单元的基本功能时,经常要用黑盒测试的思考方法来设计测试用例。
在黑盒测试中使用白盒测试的手段,常被称为“灰盒测试”。
北河测试需要对程序的内部实现十分熟悉,而黑盒测试时完全基于对系统需求的了解。
仅仅通过白盒测试,或者仅仅通过黑盒测试都不能系统地全面地测试一个软件。
5.白盒测试的策略:
桌前检查:桌前检查室指程序员在程序实现指定功能后,进行单元测试之前,对源代码进行初步检查。
单元测试:在传统的结构化编程中,常常把一个函数、过程称为一个单元,而在面向对象的编程中一般把类作为单元进行测试。
代码评审:代码评审往往是在编码的初期或编写过程中采用的一种有同行参与的评审活动。
同行评审:它是引用CMM中的术语,同行评审应用较广,一般该过程至少由开发人员、测试人员和设计师参与。如果用在评审源代码上,就是代码评审。
代码走查:由测试小组组织或者专门的代码走查小组进行代码走查,需要开发人员提交有关的资料文档和源代码给走查人员,并进行讲解。一般不让代码的创建者参与。
两步执行:一是把材料发给走查小组每个成员,让他们认真研究程序。
二是开会,把与会者“充当”计算机,让测试用例沿程序的逻辑运行
一遍,随时记录程序的踪迹,供与分析和讨论,发现更多问题。
静态分析:静态分析通常由测试小组来进行,静态分析通常需要辅助工具支持,通过提取代码信息,进行统计,根据统计结果对源代码进行质量评估。代码规则检查也是静态分析的一个方面。