可以使用不同的方法进行软件测试.本章简要介绍了可用的方法.
黑盒测试
在不了解应用程序内部工作原理的情况下进行测试的技术是称为黑盒测试.测试人员忘记了系统架构,无法访问源代码.通常,在执行黑盒测试时,测试人员将通过提供输入和检查输出来与系统的用户界面进行交互,而无需知道输入的处理方式和位置.
下表列出了黑盒测试的优缺点.
优点 | 缺点 |
---|---|
非常适合大型代码段. | 有限的覆盖范围,因为实际上只执行了一定数量的测试方案. |
不需要代码访问. | 由于以下事实,测试效率低下测试人员对应用程序的了解有限. |
通过明确定义的角色,明确区分用户的观点和开发人员的观点. | Bli nd覆盖率,因为测试人员无法定位特定的代码段或错误区域. |
大量中等技术水平的测试人员可以测试不了解实现,编程语言或操作系统的应用程序. | 测试用例很难设计. |
白盒测试
白盒测试是对内部逻辑和代码结构的详细调查.白盒测试也称为玻璃测试或开箱测试.为了在应用程序上执行白盒测试,测试人员需要知道代码的内部工作原理.
测试人员需要查看内部源代码并找出代码的哪个单元/块表现不当.
下表列出了白盒测试的优缺点.
优点 | 缺点 |
---|---|
由于测试人员了解在源代码中,很容易找出哪种类型的数据可以帮助有效地测试应用程序. | 由于需要熟练的测试人员来执行白盒测试,成本增加. |
它有助于优化代码. | 有时候无法查看每个角落以找出隐藏的错误可能会产生问题的问题,因为很多路径都会未经测试. |
可以删除可以引入的额外代码行隐藏的缺陷. | 很难维护白盒测试,因为它需要专门的工具,如代码分析器和调试工具. |
由于测试人员对代码的了解,在编写测试场景时可以获得最大的覆盖率. |
灰盒测试
灰盒测试是一种测试应用程序的技术,其知识有限应用程序的内部工作方式.在软件测试中,您知道的越多,在测试应用程序时,更好地承担了很多重量.
掌握系统领域总是让测试人员优于有限的人领域知识.与黑盒测试不同,测试人员仅测试应用程序的用户界面;在灰盒测试中,测试人员可以访问设计文档和数据库.有了这些知识,测试人员可以在制定测试计划时准备更好的测试数据和测试场景.
优点 | 缺点 |
---|---|
尽可能提供黑盒和白盒测试的综合效益. | 自从无法访问源代码,查看代码和测试覆盖率的能力有限. |
灰盒测试者不要依赖源代码;相反,它们依赖于接口定义和功能规范. | 如果软件设计人员已经运行了测试用例,则测试可能是多余的. |
基于可用的有限信息,灰盒测试仪可以设计出色的测试场景,特别是在通信协议和数据类型处理方面. | 测试每个可能的输入流是不现实的,因为这将花费不合理的时间;因此,许多程序路径将未经测试. |
测试是从用户的角度进行的,而不是设计师. |
测试方法比较
下表列出了区分黑盒测试,灰盒测试和白盒测试的要点.
黑盒测试 | 灰箱测试 | 白盒测试 |
---|---|---|
无需了解应用程序的内部工作原理. | 测试人员对应用程序内部工作的了解有限. | 测试人员完全了解应用程序的内部工作原理. |
也称为闭箱测试,数据驱动测试或功能测试. | 也称为半透明测试,作为测试人员对应用程序内部的了解有限. | 也称为透明框测试,结构测试或基于代码的测试. |
由最终用户以及测试人员和开发人员执行. | 由最终用户以及测试人员和开发人员执行. | 通常由测试人员和开发人员完成. |
测试基于外部期望 - 应用程序的内部行为是未知的. | 测试是基于高级数据库图表和数据流程图完成的. | 内部工作是完全已知并且测试人员可以相应地设计测试数据. |
这是详尽无遗且耗时最少的. | 部分耗时且详尽无遗. | 最详尽,最耗时的测试类型. |
不适合算法测试. | 不适合算法hm testing. | 适合算法测试. |
这只能做通过反复试验方法. | 如果已知,可以测试数据域和内部边界. | 数据域和内部边界可以更好测试. |