黑盒测试 (Black box testing)
黑盒测试 |
功能 |
测试 |
性能 |
测试 |
攻击 |
测试 |
黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。黑盒测试又叫做功能测试或数据驱动测试。
黑盒测试的优点有:
1. 比较简单,不需要了解程序内部的代码及实现;
2. 与软件的内部实现无关;
3. 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
4. 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
5. 在做软件自动化测试时较为方便。
黑盒测试的缺点有:
1. 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
2. 自动化测试的复用性较低。
白盒测试 (White box testing)
白盒测试 |
语句 |
覆盖 |
分支 |
覆盖 |
路径 |
覆盖 |
白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。因此白盒测试又称为结构测试或逻辑驱动测试。
白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有:
1. 程序运行会有很多不同的路径,不可能测试所有的运行路径;
2. 测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;
3. 系统庞大时,测试开销会非常大。
其它的测试还有Functional Test(功能测试)、Security Test(安全性测试)、Stress Test(压力测试)、Performance Test(性能测试)、Regression Test(回归测试)、Setup/Upgrade Test(安装升级测试)等。根据应用软件的代码的内部逻辑,按照代码的语句、分支、路径和条件进行测试。
不考虑内部设计和代码,根据需求和功能进行测试。