引言

这篇文章是我从stackoverflow上翻译过来的,如果以后遇到好的文章我还会继续翻译。

问题

哪种类型的测试对测试来说最重要的?为什么?

回复一:

黑盒测试

是从测试对象的外部视角推导出测试用例,这些测试可以是功能性的,也可以是非功能性的,尽管通常是功能性的,测试设计者选择有效的和无效的输入来验证正确的输出。测试者不知道测试对象的内部结构。

白盒测试

使用系统内部结构视角基于内部结构来设计测试用例。它需要编程技能来验证软件的所有路径。测试人员选择测试用例输入,通过代码执行路径然后确定适当的输出。在电气硬件测试,电路中的每一个节点都要被探测和测量;例如电路测试(ICT)

我认为两者都很重要,但是他们通常在开发和测试那里是分开的。

内部结构知识对测试者来说很重要吗?我听到一些观点认为有测试意识能帮助他们更好的测试,但我也听过这样的说法,即时这些知识可以帮助功能测试,对代码进行测试,而不是预期的解决方案。

作者回复:

黑盒测试

特点:测试功能

依据:需求规格说明书

举例:等价类划分、边界值测试

优点:能站在用户的立场上进行测试

缺点:不能测试程序内部特定部位和程序方法

黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,针对“软件界面”和”软件功能“进行测试,只检查功能是否符合需求规格说明书能正常使用。因此黑盒测试又叫功能测试或数据驱动测试。

黑盒测试主要是为了发现以下错误:

是否有不正确或者遗漏了的功能;

在接口上,输入能否正确的接受?能否输出正确的结果?

是否有数据结构错误或外部信息(例如数据库文件)访问错误?

性能上是否能够满足要求?

是否有初始化或终止性错误?

黑盒的测试用例技术设计有三种:边界值分析、等价类划分、错误推测法。

白盒测试

特点:测试程序接口和结构

依据:软件程序设计

举例:逻辑覆盖

优点:对程序内部进行特定部位进行覆盖测试

缺点:无法坚持程序外部特征

白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看作一个打开的盒子,他允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为”结构测试“或”逻辑驱动测试“。白盒测试是按照程序内部的结构来测试程序,通过测试检验产品内部动作是否按照设计规格说明书的要求正常进行,检验程序中的每条通道是否都按照规定正常工作。

白盒测试主要是想对程序模块进行以下检查:

对程序模块的所有独立的执行路径至少测试一遍;

对所有的逻辑判定,取”真“与”假“的两种情况都能至少测一遍;

在循环的边界和运行的界限内执行循环体;

测试内部数据结构的有效性,等等;

静态白盒测试 :即代码审查,正式审查和检验设计和程序代码;

动态白盒测试 利用查看代码功能和实现方式得到的信息来设计和执行测试,也叫结构测试;

白盒的测试用例技术包括逻辑覆盖和基本路径测试:

逻辑覆盖:是以程序内在逻辑结构为基础的测试用例设计技术,这一方法要求测试人员对程序的逻辑结构有清楚的了解。

基本路径测试:在程序控制流程图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。

黑盒测试和白盒测试是两种不同的测试方法,他们都有自个的优缺点,只有在实战中灵活运用才能达到最佳的测试效果。

©著作权归作者所有:来自51CTO博客作者mob604756e7db9c的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 自动化测试如何比较颜色
  2. 软件测试行业状况报告2017
  3. QA与测试到底有什么区别?
  4. 首发!DevOps@BOC — 器用之道,如琢如磨
  5. DevOps 中高效测试基础架构的最佳实践
  6. 每天万次触发的持续交付工具链是这样炼成的
  7. SpringBoot在线协同办公小程序开发全栈式项目实战(2021新课,完整版
  8. IP网络性能测试工具——Renix Perf
  9. 那个做外包的程序员,最后去哪里了?(二)

随机推荐

  1. linq to xml操作XML的方法
  2. 使用XMLHTTP发送超长XML表单数据的详情
  3. XML数据库中几个容易混淆的概念详细介绍
  4. 使用正则表达式进行xml数据验证的代码实
  5. 用XSL翻译Web服务应用程序
  6. 用XML和SQL 2000来管理存储过程调用
  7. 对XML数据使用XMLConvert
  8. 详细介绍把数据转换成XML格式的好处
  9. 使用JavaScript访问XML数据
  10. 使用XML实现BBS(主题列表篇)的详情介绍