一、测试定义
a、什么是测试
测试是一个带着找到错误的目的来运行程序或系统的过程。或者,它是任何旨在评估程序或系统属性和性能的活动,通过这些活动来决定该程序或系统是否符合所要求的结果。
对于软件来说,它并没有不同于其他那些接收输入、产出输出的物理过程,它不同之处在于以何种方式运行失败。大多数物理系统运行失败在一个固定的(相当小)设置方式上。相反的,软件可以失败在许多奇怪的方式上。要发现软件所有不同的失败方式通常是不太可能的。
b、测试目标
要证明所提供的软件产品达到了被要求的指标。
软件能正常运行,没有任何错误或故障(功能上)。
产生高品质的测试案例,进行有效测试,发表正确有帮助的错误报告。
c、一个优秀测试案例的特征
一个好的或者说一个成功的测试案例在于它具有很高的可能性来发现尚未发现的错误。
它容易找到程序失败的方式。
它让测试捕捉到错误的这种可能性变的合理。
它不是多余的。
它既不是太过简单也不是太过复杂。
d、测试原则
1、测试是一个带着找到错误的目的来运行程序的过程。测试不应该把"不会有错误被发现"计划在隐性假设中。
2、不仅使用有效的输入条件进行测试,还要使用无效和意想不到的输入条件来测试。
3、当遇到一个无效的测试时程序应该产生正确的消息,当遇到一个有效的测试时程序应该产生正确的结果。
4、在一个或一组模块中存在更多错误的可能性与已经找到的错误数量,是成正比的。
5、测试时保持软件静态。
6、在设计的测试用例集被执行的时候,不能修改程序。
7、使用文档形式来记载测试案例和测试结果
8、如果可能的话提供预期的测试结果。
e、V过程模型总结
V模型是一个软件开发的过程。V模型揭示了开发生命周期每个阶段与测试的关系。
V模型部署了一个结构良好的框架方法。按照这个框架,每个阶段都能按照前一阶段的详细文档来执行。测试活动就像测试设计,开始于项目的最开端,放在编程之前,这样就很有可能为工程进度省下一大部分时间。
二、白盒测试与黑盒测试
f、白盒测试
白盒测试基于应用程序代码的内部逻辑知识。测试基于代码语句、分支、路径、条件的覆盖。
测试人员必须知道软件内部是怎么工作的,要知道软件的结构和程序语言,至少要知道程序语言的意义
白盒测试是在一个结构性测试策略下进行的,要求对对象结构的完全访问,也就是源代码。
g、黑盒测试
黑盒测试不需要知道软件内部是如何工作的,也不需要知道软件的结构、设计、代码或测试模块的程序语言。黑盒测试,像其他大多数测试一样,必须依据一个最终源文件,比如规格说明书或要求文件。"你看到的就是你测试的。"它基于需求和功能来测试。
h、白盒测试技术
白盒测试技术包括以下4种
I、代码覆盖
1、段覆盖:确保对每一句代码都测试一次。
2、分支覆盖或节点测试:覆盖所有可能的代码分支。
3、复合条件覆盖:对于多个条件,通过多个路径测试每一个条件,并且通过不同路径组合来达到这一条件。
II、基本路径测试
代码中每个独立的路径都要被测试过。数据流测试是一种方式,即你通过各种可能的计算来跟踪特定变量,从而通过代码定义中间路径集。数据流测试往往反映相关性,它主要是通过数据序列来操作。简言之即跟踪每个数据变量,验证其使用。这种方法往往会发现错误来源于变量使用而不是变量初始化,或者来源于变量声明而不是使用,等等诸如此类。
III、路径测试
路径测试就是定义和覆盖测试代码中所有可能的路径。这是一项费时的工作。
IV、回归测试
测试思路涉及到测试单圈、串联循环、和嵌套循环。通过这种方法测试独立和非独立代码循环和代码值。
i、黑盒测试技术
为便于理解,将在下面详细给出黑盒测试主要技术。
I、等价类划分
等价类划分是一种软件测试技术。将软件单元的输入数据范围划分成若干等价区域,每一个区域编写一个测试案例。原则上,测试案例的编写至少覆盖每个分区一次。该技术试图定义测试用例从而揭示错误类,这样测试案例的总数就相应减少了。
在极少数情况下,等价区域划分也适用于软件组件的产出,是具有代表性的,它适用于测试元件的输入。等价区域划分常常遵循于输入属性需求规格说明书,从而影响测试对象的处理。输入具有一定的有效输入范围和无效输入范围。这里的无效输入数据不是说数据类型是错误的,而是指该输入数据在某个具体分区之外。
举个等价区域划分的例子,比如你想要测试范围在1到10,000之间的某个输入数字,你不需要一一测试每一个1到10,000之间的数字,你只需使用等价区域划分的方法,将数字范围划分,比如划分成一位数、两位数、三位数和四位数,像5、15、555、5555。
II、边界值分析
边界值分析是等价区域划分的扩展,它是取等价区域上的边界值来进行测试。很多错误往往就是发生在输入范围的边界值上而不是输入范围中间的地方,至于为什么会这样还不是完全清楚。正是由于这个原因,边界值分析发展成了一项测试技术。边界值分析产生了测试用例的选择,选择使用边界值来进行测试。
边界值分析是一个测试案例设计技术,是等价区域划分的补充。边界值分析不是选择等价区域内任意的数据,而是选择区域边界值作为测试案例。边界值分析不仅仅关注输入条件,还从输出域中产生出测试用例。
举个边界值分析的例子,比如测试1到12月之间的某个月份,我们取一个小于0的负数据,取一个1到12之间的有效数据,取一个大于12的数据来进行测试,观察是否是只有1到12之间的有效数据被输入才是可接受的。