在白盒测试中,测试条件主要针对检查逻辑路径来设计的。测试人员检查程序或系统的内部结构。测试数据根据对程序或系统的逻辑检查来驱动,而不去关心程序或系统的需求。测试人员知道程序的内部结构和处理逻辑,就像汽车维修工知道汽车的内部构造一样,这类测试包括基本路径分析法、语句覆盖、分值覆盖、条件覆盖、分支/条件覆盖等。
白盒测试的一个优点是测试比较彻底,并且侧重于应开发出来的代码。因为测试人员指导内部结果或逻辑,一些致命的bug或程序员故意放置一段恶搞代码就很容易被检查出来。
白盒测试的缺点是:1)不能正确验证规约的正确性,也就是说,白盒测试仅仅侧重于测试内部的处理逻辑,而不去验证逻辑是否满足需求规约。2)白盒测试的另一个缺点是无法检查代码中遗漏的路径和数据敏感性错误。例如,"if(a-b)<10",但却写成了"if (a-b)<1",没有详细规约的话,这种错误将无法检测出来。3)白盒测试的最后一个缺点是,无法穷举程序中所有可能的逻辑路径,因为穷举导致的测试数量将是一个天文数字。