工作将近3个月了,还没清楚自己的工作性质是教科书上的白盒测试还是黑盒测试。今天上网查了一下,大噢了一声——原来自己工作属于“灰盒测试(Gray-box testing)”。
下面是摘在“测试时代”的测试基本概念:白箱测试,黑箱测试,灰箱测试,有效用例和无效用例,边界条件以及等价类测试。
1. 白箱测试或白盒测试(White-box testing 或glass-box testing)是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。
2. 黑箱测试或黑盒测试(Black-box testing)是通过使用整个软件或某种软件功能来严格地测试,测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。
3. 灰箱测试或灰盒测试(Gray-box testing):灰箱测试就像黑箱测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的,甚至于还读过部分源代码。 因此测试人员可以有的放矢地进行某种确定的条件/功能的测试。这样做的意义在于:如果你知道产品内部的设计和对产品有透过用户界面的深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能。
4. 有效用例(Valid case)或者叫合法输入用例:是那些已知软件程序能正确地处理的测试用例。一般是指软件输入的测试用例。比如说,在 Microsoft Excel 中,用键盘输入“=1+1”, 看到的结果是“2”。 这里输入的有效用例是“=1+1”。
5. 无效用例(Invalid case有人叫不合法输入用例)或者出错用例(error case):是那些事先就知道软件程序不支持处理的测试用例。比如说在 Microsoft Excel 中,用键盘输入“=a+1”, 看到的结果是“#NAME?”。这里输入的“=a+1”既是无效用例同时也是出错用例。
6. 边界条件(Boundary Cases):环绕边界值的测试。通常意味着最大值,最小值或者所设计软件能够处理的最长的字符串等等。比如说某软件字体的字号支持范围是:从8到72。那么边界测试用例应该包括:小于8, 等于8, 等于72 和大于72。
7. 等价类(equivalent classes):等价类测试用例指的是如果有很多测试用例执行再多也不会找到新bug中的缺陷。因为虽然输入和输出结果有所不同,但是它们都通过同样的软件的源代码路径。通常只要一个源代码程序的路径是用于处理一定数值范围内的所有数值,那么除了边界值以外,在边界值范围以内的所有数值一般都属于等价类。因为如果软件程序能正确处理一个值,也就意味着该程序能正确处理在这个范围内的除了边界值以外的其他任何有效输入值。我们来用以上软件字体的字号来举例说明。软件支持的字号范围是:从8到72。那么8和72之间的所有支持的字号都可以被认为是等价类的测试用例。
软件功能的黑箱测试包括以下几个方面:
1. 功能测试(Functionality Test):验证测试软件功能能否正常按照它的设计工作。
2. 可接受性测试(Acceptance Test):是在测试部门进行大范围测试以前,dev进行的对最基本功能的简单测试,先验证该版本对于所测试的功能基本上比较稳定,必须满足一些最低要求。比如不会很容易程序就挂起或崩溃。
3. 用户界面测试(UI Test):分析软件用户界面的设计是否合乎用户期望或要求。
4. Ad hoc(探讨或开放型)测试:不是按部就班的按照一个又一个正式的测试用例来进行,也不局限于测试用例特定的步骤。这种测试是测试人员在理解该软件功能的基础上运用灵活多样的想象力和创造力去模拟用户的需求来使用该软件的多种功能。通常涉及很多的测试用例或者通过更复杂的步骤来使用该软件。
5. 边界条件测试(Boundary Condition):是环绕边界值的测试。
6. 性能测试(Performance Test):通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。
7. 回归测试(Regression Test):验证新的fix不会导致以前已经fix的bug重新出现。验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化。
8. 压力测试(Stress Test):它通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。比如在最低的硬盘驱动器空间或系统记忆容量条件下,验证程序重复执行打开和保存一个巨大的文件1000次后也不会崩溃或死机。
9. 配置和安装测试(Configuration and Setup Test):验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。比如,把英文版的 Microsoft Office 2003安装在韩文版 的Windows Me 上,再验证所有功能都正常运行。
10. 兼容性测试(Comparability Test):验证该功能能够如预期的那样与其他程序或者构件协调工作。兼容性经常意味着新旧版本之间的协调,也包括测试的产品与其它产品的兼容使用。比如用同样产品的新版本时不影响与用旧版本用户之间保存文件,格式,和其他数据等操作。
11. 国际化支持测试(International Sufficiency):验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的 Windows XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的 Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。
12. 本地化语言测试(Localization):要验证所有已计划要发布的不同语言版本软件如预期的那样被正确地翻译成当地语言。这类测试一般包括验证菜单,对话框,出错信息,帮助内容等所有用户界面上的文字都能够显示正确翻译好的当地文字。
分享到:
相关推荐
本文将详细探讨“软件测试基本方法”,结合标签“源码”和“工具”,我们将关注源代码级别的测试策略以及常用的测试工具。 一、软件测试类型 1. 单元测试:这是最基本的测试层次,主要针对软件中的最小可测试单元...
### 软件测试基本方法概述 #### 一、引言 软件测试是确保软件质量的关键环节之一。本文旨在帮助测试新手快速理解软件测试的基本概念和技术,并掌握如何有效地执行测试,以便更快地上手实践。 #### 二、软件测试...
“软件测试基本方法”涵盖黑盒测试、白盒测试、灰盒测试等。黑盒测试关注功能行为,不关心内部结构;白盒测试则基于代码逻辑,检查内部运行过程;灰盒测试结合两者,兼顾功能和内部结构。每种方法都有其适用场景,...
黑盒测试基本方法状态迁移法 状态迁移法是黑盒测试的一种基本方法,它通过状态迁移图和逻辑功能模型来描述程序的功能说明,并生成测试用例。状态迁移图用于表示输入数据序列以及相应的输出数据,而逻辑功能模型用于...
帮助您掌握性能测试基本方法。
本文将深入探讨软件测试的基本方法和基本技术,以及自动化测试的重要性。 一、软件测试基础 1. 测试目的:软件测试的主要目标是发现并修复软件中的错误、缺陷和漏洞,以提高软件的可靠性、稳定性和用户体验。它...
web test。web测试基本方法及覆盖小结
### 软件测试的基本方法 在现代软件开发过程中,软件测试是确保软件质量的关键环节之一。通过对软件进行系统性的检查、评估以及运行等手段,软件测试能够帮助开发者发现并修正潜在的问题,从而提高产品的可靠性与...
软件测试资料,常用测试方法介绍,适合新手阅读
PCB测试机是用于检测印刷电路板(Printed Circuit Board, PCB)电气...通过对测试机的自检和自学习,可以保证测试机在各种测试中的准确性和可靠性,并且采用适当的测试方法,可以更高效地完成PCB的导通和绝缘性能检测。
1. 通过实验掌握白盒测试中动态测试的主要方法之一:基本路径测试; 2. 掌握基本路径测试中程序的控制流程图绘制方法; 3. 掌握计算程序环路复杂性和确定独立路径集合的方法; 4. 掌握基本路径测试用例的编写方法。...
本实验报告详细介绍了如何应用黑盒测试的基本方法来验证Windows附件中计算器的各种功能。 在黑盒测试中,等价分类法和边界值分析是两种常用的设计测试用例的方法。等价分类法将所有可能的输入数据分为若干个等价类...
理解射频模拟电路的基本概念、基本原理和基本测试方法对于从事相关工作的工程师至关重要。 首先,射频(RF)是指频率在3 kHz到300 GHz范围内的电磁波,这个频段涵盖了广播、电视、移动通信等多种通信方式。射频模拟...
系统测试的基本方法.txt
软件系统测试的几种基本方法软件测试系统测试应该由若干个不同测试组成,目的是充分运行系统,验证系统各部件是否都能政党工作并完成所赋予的任务。下面简单讨论几类系统测试。1、恢复测试恢复测试主要检查系统的...
- 真实性:考虑不同测试方法因等效方法差异导致的结果偏差,反映了测试方法的适用性。 【颗粒测试方法】 常见的颗粒测试方法包括激光衍射法(测量等效体积径)、沉降法(测量Stokes径)、电阻法(库尔特计数器,...
软件测试的基本理论和方法 软件测试是软件开发过程中的一个重要组成部分,它的主要目的是为了确保软件的质量和可靠性。在软件开发的每个阶段,软件测试都扮演着举足轻重的角色。为了全面理解软件测试,我们需要了解...