功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。

常用测试用列设计方法-1

        等价类划分
	边界值分析方法
	因果图方法
	正交实验设计方法
	功能图分析方法    

常用测试用列设计方法-2

	错误推测法
	需求文档转化发
	随机测试
	对象属性分析法

等价类划分

	若输入条件中规定了输入数据的取值范围,则可以划分一个有效等价类和无效等价类

	若输入条件中规定了输入数据的个数,则可以划分一个有效等价类和两个无效等价类

	若规定了输入数据必训遵循的原则,则可以划分出一个有效等价类和若干个无效等价类

	若输入条件中规定了输入数据的一组取值,而且软件对不同的输入值对应有不同的处理,则每个允许值构成一个有效等价类,其他值则构成一个无效等价类

	若输入要求为整型数,则划分出正整数、零、负整数三个有效等价类,而小数为无效等价类

边界值分析方法

	若输入条件规定了取值范围,则选择恰好落在边界上,以及处在边界内、边上的测试值

	若规定了输入数据的个数,则选择最小个数,最大个数,比最小个数多一、少一、比最大个数多一、少一等几种情况为测试时输入数据的个数

	若输入诗句为有序集合结构,则应特别注意选取有序计划中的第一个和最后一个元素以及越界输入作为测试用列

边界值分析方法列子

	a.对于16-bit的整数而言32767和-32768是边界
	b.屏幕上光标在最左上、最右下位置
	c.报表的第一行和最后一行
	d.数组元素的第一个和最后一个
	e.循环的第0次、第1次和倒数第2次、最后一次

因果图-1

	前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入调节,但未考虑输入条件之间的联系,相互组合等,考虑输入条件之间的相互结合,可能会产生一些新的情况。

	因果图方法最终生成的就是判定表,它适用于检查程序输入条件的各种组合情况。

正交实验设计方法-1

	正交实验设计方法:依据Galois理论,从大量的(实验)数据(测试列)中挑选适量的,有代表性的点(列),从而合理地安排实验(测试)的一种科学实验设计方法。

	类是的方法有:聚类分析方法,因子方法方法等。

功能图分析方法-1

	功能图模型由状态迁移图和逻辑功能模型构成。状态迁移图用于表述输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。逻辑功能模型用于表示在状态中输入条件和输出条件之间对应关系。

功能图分析方法-2

功能图方法中,要用到逻辑覆盖和路径测试的概念和方法,其属白盒测试方法中的内容。逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计方法,该方法要求测试人员对程序的逻辑结构有清楚的了解。由于覆盖测试的目标不同,逻辑覆盖可分为:
		语句覆盖:程序中的每条语句至少該执行一次
		判定覆盖:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少经历一次,因此判定覆盖又称为分支覆盖。
		条件覆盖:一个判定语句是由多个条件组合而成的符合判定。构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。
		条件组合覆盖:设计足够的测试用例,使得每个判定中条件的各种组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。

错误推测方法

基于经验和直觉推测程序中所有可能存在的各种错误从而有针对性的设计测试用例的方法
		1.程序中所有可能有的错误
		2.容易错误的特殊情况
		3.一起那产品测试中曾经发现的错误

需求文档转化法:

	所见即所得的思维:
		1.所有的需求文档描述的文字信息,转化为用例
		2.所有的示意图、流程图、状态图等信息,直接转化为测试用例
		3.所有项目需求达成的口头共识,需求确认的邮件沟通信息,直接转化为测试用例

随机测试法:

随意测试,不用考虑任何测试用例和需求,完全站在一个用户的角度对产品进行使用。

	适用场景:
		1.所有之前设定的用例已经执行完毕
		2.海量的条件组合无法一一遍历的时候

对象属性分析方法:

被测试系统中的元素被定义为一个对象,并且给这个对象设定关联的相关属性和状态,并且将不同对象的属性和状态进行不同的组合,扩展测试用例。
	e.g.
		属性:大小、路由(本地、网络)、文件名、文件编码、文件内容(文本 二进制)、文件类型、文件的读写属性、文件的共享属性	

  

最困难的就是沟通:
		如何沟通和获取足够的测试用例信息。。。


怎么才算是沟通清楚了?
	倾听讲解-->提出疑问-->对方回答-->重复对方的意思-->对方确认重复你的信息

控制需求变更:
	建立需求变更控制委员会控制需求变更的发生和频率

	建立需求变更的通知的流程和机制,保证所有的项目相关人员,及时准确的获取需求变更。

	需求变更需要记录在案,将来作为项目跟踪和总结适用。