黑盒白盒测试(黑盒测试常用的四种测试技术)
黑盒白盒测试
白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的*路径数是天文数字。
灰盒测试:灰盒测试是一种综合了黑盒测试和白盒测试的测试方法,既关注软件的功能性需求,也关注软件的内部结构。测试人员需要了解程序的一些内部结构,但不需要对每个细节进行深入的了解。这种方法主要用于集成测试阶段。
静态测试和动态测试:静态测试是指在不运行软件的情况下,对软件的需求、设计、代码等进行分析、检查、评审的过程,目的是发现软件开发过程中的缺陷和错误,从而提高软件的可靠性和可维护性。静态测试可以在软件开发的任何阶段进行,越早进行越能节省成本和时间。动态测试是指通过运行软件来对其进行测试的过程,目的是发现软件运行过程中的缺陷和错误。动态测试包括功能测试、性能测试、边界值分析、错误猜测等方法。
功能测试:功能测试是检查软件的功能是否符合用户需求和设计要求,主要包括黑盒测试和白盒测试。黑盒测试是一种基于用户需求的功能测试,测试人员不需要了解程序的内部结构,只需要根据用户需求对程序进行测试。白盒测试是一种基于程序结构的内部功能测试,测试人员需要了解程序的内部结构和逻辑,检查程序的每个路径和边界情况。
边界值分析:边界值分析是一种找出输入域边界上的问题的测试方法,通常选取刚好等于、稍大于或稍小于边界值的一些数据来进行测试。
黑盒测试常用的四种测试技术
白盒测试:白盒测试是一种结构测试,关注软件的内部结构和逻辑。测试人员需要了解程序代码的内部构造,检查程序中的每个路径和每个可能的边界情况。这种方法主要用于评估程序的代码质量和检查代码是否符合特定的编程规范。
黑盒测试:黑盒测试是一种功能测试,主要关注软件的功能性需求。测试人员将软件看作一个黑盒子,不考虑程序内部的逻辑结构和内部特性,只依据程序的《需求规格说明书》,检查程序的功能是否符合它的功能说明。这种方法主要用于验证软件是否满足用户需求,模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。
错误猜测:错误猜测是一种基于经验和直觉的测试方法,测试人员根据自己对程序的理解和猜测,尝试找出可能存在错误的区域并进行测试。
测试深度:白盒测试相比于黑盒测试可以进行更深入的测试。因为白盒测试涵盖了代码的每一部分,包括分支、循环等,而黑盒测试主要侧重于功能。
示例:在测试一个文件上传功能时,白盒测试会检查程序是否正确处理了各种可能的错误情况,如文件太大、文件类型不支持等,以确保没有安全性问题。而黑盒测试可能主要关注文件能否正确上传和显示。
黑盒白盒测试可以进行安全测试吗
维护难度:由于黑盒测试不依赖于程序内部结构,所以即使程序的内部逻辑发生变化,测试用例也不需要做大的改动。而白盒测试因为紧密依赖代码,代码的变化可能会导致测试用例需要更新。
例如,对于一个计算器程序的除*能,测试人员会检查除以零时程序是否会抛出异常,并查看处理异常的代码是否被正确执行。这就需要测试人员了解程序的内部逻辑。
漏洞检测:白盒测试更容易发现安全性问题,如缓冲区溢出、输入验证等。而黑盒测试更侧重于发现业务逻辑的错误和界面的问题。