转自【http://qa.taobao.com/?p=8256 】
写TC貌似是很简单的工作,但当动手写的时候往往会出现,不知道写什么,又感觉有一堆的东西需要写,即使一个简单的日常也会觉得里面的逻辑非常复杂,然后就是晕得不知所向。
个人认为,写TC没有固定的模式,也没有唯一的答案,每个人的方式不同,习惯不同,TC中的如何分类归纳也就自然不相同。但目标是一致的,基本目标是覆盖需求、无盲区;加强目标是加深测试点,完善用户友好性等。
下面分享下我写TC的几种思路。
第一种思路——先对象,后流程
面向对象是在平常入门学习中首先接触到的概念,它不仅仅存在于代码的编写中,更存在于我们的工作方式和方法中。首先分析需求中涉及到哪些对象,比如页面是一个对象,对它加以细化,页面大对象可能又分为新增页面,修改页面,删除页面和查询页面等,或者从功能上划分为卖家页面、小二页面等。分析完后再层层细化,比如新增页面包含的哪些文本的输入框,单选/多选项、日历控件,以及它们之间操作的优先级,错误提示的优先级等等,再洗化到各个控件本身的限制检查,如单行文本最长和最短的校验长度是多少,非法字符校验等。
当所有对象类信息完成后,再考虑这些对象之间的流程关系,比如对用户身份审核的操作必须建立在用户身份信息已创建之后,或者信息被修改后。不光是需要校验正常的操作流程,还需要花大精力放在异常流程的操作上,比如用户在填写信息时,突然中断了操作,这样的情况通过什么样的流程去处理。因此这里的流程,应该是包括正常流、异常流及扩展流(需求中未涉及,但测试人员基于用户友好或者性能方面考虑需要加入的流程)。
回过头想一想,我们说,把面向对象的思想带入TC,那面向对象又体现在什么地方呢,难道仅仅是分类么?NO!
我们是不是经常会在写TC中碰到这样的问题,比如某些项目中,进行查看和修改时,发现自己看到的是相同的页面,也就是可能在做不同操作流程的时候发现到达了相同的一个出口,那对于这N个流程是否需要写N个平行的TC,是否可以把某部分写成公共模块以提高效率,避免冗余呢。
第一种思路可能会有同学觉得很麻烦,很容易复杂化,确实是的,因为大家平常做项目或日常时,至少是有页面或者页面大概的原形,如果需求是很模糊的,又或者客户也不知道具体是要做成什么样的,同时客户又希望能快速立项的情况下,可以使用这种方式,其实在这样的过程中,测试人员无形中担当了架构的角色,并且能帮助开发完善产品。
第二种思路——先流程,再对象
这种思路,要求是页面设计到位,至少是大概的原形具有,然后对着原形写TC。
从打开的第一个页面开始层层深入写,比如首先是用户登陆,然后是主展示页面,再可能是搜索宝贝等,先把流程正常流程建立好,然后将这些流程细化,如用户登陆是否采用弹出窗口,窗口的位置、大小,窗口中的表单项是否完整,如是不是缺少验证码项,再考虑某一项的校验,如用户名是否为单行文本,长度限制多少,非法字符限制,是否为必填项(不填是否有提示)等。
使用这种思路的时候,切记至少要包含几类信息:页面总体展示、表单项完整性、表单项正确性、表单项可操作性(独立操作和组合操作)、表单项非法校验、及当前页面的其他跳转出口(如点击“登陆”,在用户输入的信息正确的情况下,应跳转到主展示页面)。
这种思路可能使用的同学比较多,至少我是经常用的。这里实际上还是把页面当成了大对象,当出现多类页面跳转到相同页面上去的时候,这个相同页面就可以作为公共部分来使用了。
记得在学校里学习这些原理的时候,对它的用法感悟不深刻,出来工作以后发现,其实很多思想就穿插在平时的应用中,所以有一句话很欣赏:解决问题,思路很重要,技术在其次。
以上是对于写TC思路的一些个人看法,有不足之处还请大家指正。
分享到:
相关推荐
本文从什么是面向对象设计、为什么要面向对象设计、面向对象设计要达到的目的、面向对象设计的基本原则等方面讲述了面向对象设计思想...本文特别适合面向对象设计的初学者,可以将你很快带入面向对象程序设计的世界里。
里面包含了java面向对象的核心知识点(封装+继承+多态+反射+jdbc..)还有一些其它的内容,都是很清晰的写出,对于新手小白的学习,是非常友好的,内容很丰富。每一个知识点的讲解,都会包含语法,语法个数如何定义,...
为了将C++带入生活,读者必须考虑面向对象。在编写第一行程序之前,必须尽力的花时间去思考系统的设计、系统的基以及期望由系统所派生出来的解决方案。如果没有考虑面向对象和模块化,那C++这种工具的面向对象强大之...
半导体将数字家庭带入现实.pdf
有望将半导体技术带入原子量级.pdf
NVIDIA 数字人类技术将 AI 角色带入.pdf
用Linux将局域网带入Interne归类.pdf
新型飞思卡尔QorIQ处理器以中小企业价格标准将企业级特性带入安全网络设备.pdf
英特尔多核CPU正将数字娱乐带入家庭.pdf
二硫化钼材料有望将半导体技术带入原子量级.pdf
新型飞思卡尔QorIQ处理器以中小企业价格标准将企业级特性带入安全网络设备 (2).pdf
新型飞思卡尔QorIQ处理器以中小企业价格标准将企业级特性带入安全网络设备 (1).pdf
让有删除行的PR不带入PO的配置
这是基于,这是将ClojureScript和Om中的概念移植到纯JavaScript的建议。 它确实可以工作,但是它的目的更多是一个体系结构概念,而不是一个使您赞叹不已的功能演示。 更广泛的主题是下一代JavaScript框架,它使用...
Qualcomm骁龙汽车处理器将Android带入汽车领域.pdf
把歌声带入苍穹
将罗卡理念带入迪士尼 40辆海格新能源客车服务园区.pdf
电信设备-利用热气球将移动基站带入平流层恢复通讯.zip
jQuery实现列表上下移动置顶+带入数据库文件 适合初学者 文件简单整洁,步骤少。重要的地方有注释,文件是php页面的,但是适用于任何界面
阿科玛与布鲁尔科技联合宣布将定向自组装材料带入半导体市场.pdf