|
本帖最后由 Indisorder 于 2010-12-28 12:26 编辑
1.【内容】
从结构化的方式来诠释测试用例
2.【关键词】
穷举,组合,复用
3.【名词解释】
3.1epic story(史诗故事)
最终产品,由多种类型的user story(用户故事) 组成;
3.2user story(用户故事)
从用户进入游戏后在产品上进行的所有操作,直到他离开;
3.3user style(用户对象)
对用户群进行类型的划分,例如付费玩家和非付费玩家等;
3.4basic case(基本用例)
单一功能的操作性用例,例如:鼠标左键单击“确认”按钮,“确认”按钮呈“按下状态”;
3.5basic operate(基本操作)
单一的操作,例如:鼠标左键单击,鼠标右键单击,输入字符,输入数字等;
3.6basic condition(基本状态)
功能控件最原始的状态,例如:按钮的“按下”状态,按钮的“高亮”等;
3.7basic results(基本功能结果)
描述功能控件使用后产生的最原始结果,例如:光标焦点停留在刚输入的文本后等;
3.8base
库,用于存放和调用各种测试元素。
==================叫什么不重要,你懂的===========================
4.用例?
4.1一个基本用例
basic case = basic condition + basic operate + basic results
例如:button_case_01= “按下时不可用”+“鼠标指针悬停在按钮上”+"无效"
作用:单一控件功能检查,单一界面元素检查
4.2一个含有多种元素的基本用例
basic case = (basic condition 1+ basic condition 2 +basic condition 3+……+basic condition N)+basic operate +(basic results1+basic results2+....)
例如:button_case_02="按住ctrl键"+"按住shift键"+按住"del键"+"游戏全屏模式下"+"游戏切回到桌面"+"弹出windows任务管理器"
作用:多控件功能操作检查(多效果)
4.3还有什么元素?
来看一段话:胡子拉碴的大叔+夜深人静时+打开IE8+打开色站+展开导航栏+看到高H漫画+点击链接+10秒等待+跳转到高H漫画页面(速度很快的性能要求)+他看到&#@*+大叔很爽。
胡子拉碴——用户状态
大叔——user style
夜深人静时——时间
打开IE8——XX环境下+操作1(basic operate 1)
打开色站——操作2(basic operate2)
展开导航栏——操作3(basic operate3)
看到高H漫画——基本功能结果1(basic results1)
点击链接——操作4(basic operate4)
10秒等待——基本功能结果2(basic results2)
跳转到高H漫画页面——基本功能结果3(basic results3)
看到&#@*——基本功能结果4(basic results4)
大叔很爽——基本功能结果拓展出的用户友好性
4.4basic base (基本库)
在想象中存在这么一个库,所有的操作,界面显示的动作和结果都可以分解成独立的元素,存放在库中。
这个库里的所有元素都是唯一的(可以依照实现的界面显示元素或者控件来统计)
之所以basic case最后的结果不同,仅仅是因为排列组合的顺序不同而已。
一个肢解,然后又拼装的过程,如此而已。
4.5拓展吗?
从这个角度来看,每个元素无论用白盒还是黑盒的方法,都有了构建的可能。例如使用白盒测试使用的断言宏时,也有了每个测试单元的基本属性和功能。再加上逻辑流程不就OK了?需要做的只是从库中抽取组成元素而已。而不是在那里冥思苦想还有哪些没有想到的——你所没想到的,是因为关联性。先抛却关联性,只检查单独功能,这不就是单元测试吗?黑盒也可以按照这个方式来检查基本控件的功能,同样可以做到在程序实现的过程中用滚雪球的方法(注1)参与了测试。
4.6关联库中的存储状态
在实际游戏中,很多控件和元素都是重复应用的,仅仅在游戏中进行更换名称后重复调用。依照这个理念,对应每个控件都有相应的属性
例如:
控件1 simple_button_01
基本状态 普通 高亮 按下 鼠标悬停时
基本操作 左键单击 左键双击 右键单击 右键双击
存在界面 smple_tips_01,simple_tips_02(这里是该按钮所存在的界面名称)
关联界面 simple_interface_01 (按钮起作用后弹出的相应界面)
以上内容可以使用编号的方法来进行简化,每次查询时只要调出该控件相应内容的ID,对测试用例进行简化描述即可(如果是白盒测试,调用就更方便了,只需要在待测模块中添加测试函数,由测试函数调用库中的ID,执行相应ID的状态和操作)
4.7 树
4.8 还是树...
4.9 森林吗?
4.10交集
5用户故事
5.1故事梗概
5.2故事大纲
5.3剧情
5.4更多的剧情
5.5史诗大电影?
5.6有必要测这么多吗?
5.7性价比
5.8该死的用户们到底要什么?
5.9滚雪球?
6实际运用案例
7把合适的人放到合适的地位
8争吵吗?
==============基本用例,以上=============================
注1:累加测试——将同一系统的功能点分阶段时间来测试,开发人员做出功能1,放入服务器,测试通过,开发人员再将服务器代码同步到本地机器,开始功能2的开发....如此累加,雪球越滚越大,当你不得不开始躲避它的时候,集成测试正式开始。
|
|