前面咱们聊过《软件测试笔记(十一)自动化测试和手动测试的选择》,有些朋友和我聊到在测试里面还有相似的一些概念,好比白盒测试和黑盒测试。今天就你们分享下我对这两种测试的理解。编程
它是根据软件需求和规范建立测试场景/案例,按照需求文档里面定义的行为及规范进行输入而且检查输出的测试。segmentfault
测试人员在不查看内部代码结构的状况下,评估被测软件的功能。它能够应用于软件测试的各个层次,如单元、集成、系统和验收测试。ide
由于不查看源码,因此测试人员只对应用程序的功能部分执行测试,以确保软件的行为符合预期,因此是基于行为的测试。测试
白盒测试是基于应用程序内部的代码结构在白盒测试中,系统的内部视角以及编程技巧被用来设计测试用例这种测试一般在单元级别进行。spa
`
int divide(int a, int b)
{
return a / b;
}
`
假设咱们的测试用例是:TeseCase: a = 10, b = 5
那么它的语句覆盖率是100%,可是除零的问题却没有表现出来。因此咱们引入了其余的测试覆盖率。设计
黑盒测试 | 白盒测试 |
---|---|
不查看内部代码结构 | 了解程序内部的代码结构 |
按照根据软件需求和规范设计 | 按照程序内部逻辑设计 |
涉及到单元、集成、系统和验收测试 | 涉及到单元、集成测试 |
测试人员不须要程序经验 | 须要有必定的程序经验 |
能够是手动或者是自动化测试 | 能够是手动或者是自动化测试 |
归纳的来讲,黑盒测试和白盒测试的侧重点是不同的。黑盒更关注的是软件实现的功能是否按照需求文档来,而白盒测试更加关注程序内部的逻辑是否是正确。若是你们有其余的见解或者想法,也请留言区一块儿讨论。code