攻防测试技术(我自己起的) 攻防测试即结合多方思维指导测试,主要是通过应用各种思维、测试技术、测试方法(PS:无论测试中成为什么技术也好,什么方法也好,其实想细了就是一种测试思维而已)来指导测试人员在实际工作中测试工作的方向,是一本指南,是一种思维的指导。 测试用例在工作中相当重要,为什么?在开展软件测试工作前,需要先搭建测试环境,硬件环境要不要测?软件环境要不要测?网络环境呢?还有个别软件承载的直接平台不同的关系所导致的不同的问题,例如界面分辨率呢?屏幕大小呢?都可能是要测的吧?怎么开始测试工作,首先肯定得应用测试用例。无论到后面你开展软硬件的兼容性测试还是软件的功能测试、还是自动化测试、还是性能测试、负载测试、还是安全性测试、外接硬件设备测试、等等也好,都得应用测试用例。测试用例就是一个文档告诉我们该怎么测试,后续用什么工具都好,都只是执行测试而已。知道了吧?所以测试用例的设计很关键,设计的好坏就直接影响了你测了什么、你怎么想的、该怎么执行。 现在聊聊本人在设计测试用例时所应用到的思维,往往我们很多刚接触测试的新人来说,我们会学习很多经典的测试方法,例如:等价类划分法、边界值法、场景法、测试大纲发、因果图法、判定表法、正交表法等等。通过这些测试方法来帮助我们在Excel 或者Word上设计测试用例,但是,是否你会在测试一个足够复杂的软件的时候,发现这款软件需要用到好几个的方法?或者这些方法不足以满足测试的思维需求?有没有一些狡猾的bug能逃脱我们的“测试网”?除了我们目前所了解到的测试方法以外还有没有其他方法?还有没有其他的东西能帮助我们更好的设计测试用例?我们在想这些问题的时候,可以有些逆向的思维,什么是测试方法或者测试技术?它是怎么来的? 测试方法是什么?其实它在测试领域来说不就是基于一种思维方式而诞生的用于测试软件的方法吗?它是基于某一角度的“思维”而诞生的。还有就是“技术”,测试软件,我们经常会说到测试技术,黑盒测试技术、白盒测试技术,往往也是从一种不同的视角的思维去分析软件。所以,想要设计好测试用例,就要尽可能的应用更多的思维来分析软件。举例,等价类划分法就是一种基于需求的,等价划分用户输入的数据的思维来分析数据。其他的不都一样吗?边界值的思维呢?场景法不就是考虑用户实际的使用可能遇到的场景?等等。。。每种测试方法其实都是一种测试思维。一种思维,可以这样说:单一角度的思维永远都会有它的局限性、狭义性。所有只用一种思维来设计测试用例,往往都是坐井观天的。我们应该把所有我们所学过所见过的方法和技术萃取出它的测试思维方式,再应用这些思维来分析数据设计测试用例,我们才能设计好测试用例。 开始设计测试用例前还有模板的问题,Excel是我经常用来分析数据和编写测试用例的辅助工具。我之前在学习测试方法的时候,往往一种方法都伴随着一个分析数据的模板。那问题来了,如果我们要测的软件需要用到十几种测试方法、技术和思维怎么办?有些还没有模板呢。不过没关系。模板是设计出来的,我们也可以设计出来。在设计测试用例的时候,就是我们利用测试辅助工具Excel或者Word等文档结合思维、技术、方法来分析被测系统的过程。所以,我们得先设计好一个模本,能方便我们分析数据,设计测试用例,还有提醒我们哪些方向没有想到还没有测到。并且,这个模板不是落后的,是可以持续集成更多测试相关的思维。是可更新的也具有良好的可读性和重用性。有这么一个模板,我们可以实际的应用到工作中,让它为我们服务,提升设计和编写测试用例的速度,也时刻提醒我们哪些方面我们没考虑到。不过这里我得多说一句,测试中,流程是拿来应用的(模板也一样),不要被流程局限了个人的主观能动性。指南,只是一本参考书。 我已经有了我自己的模板,就是我称为攻防测试技术的模板,它的由来和名字有一些故事,它不是创新,是本人的自学积累,实际工作当中,我除了应用模板以外,还会做一些探索式测试,我后面会提到怎么做探索式测试,这里就不多提了。让我们看看它怎么编写的,怎么应用的,也看看我是怎么想的吧。 这里是我的功能测试-攻防测试模板(Excel): 搭建测试环境Sheet 每个测试环境可能会影响到软件的方方面面都必须罗列出测试点,测试点就是一条测试用例,当然也就是模板中的一条数据分析。在这里我说说我们做软件测试,往往至少也要做硬件方面的部分功能测试,毕竟软件和硬件是相互依存的,就好像我们不能100%的知道我们所测的软件(假设是PC端C/S结构的软件)会不会对PC上的一个端口有影响一样。同样,端口应用对软件有影响吗?不知道吧。所以得测。搭建测试环境往往也要考虑到承载被测软件硬件环境的兼容性问题等等。其实也没什么困难的,开始你的黑盒测试呗,多考虑可能会应用的硬件或软件,建立多个真实的测试环境测试,原理先不考虑。真实环境建立困难就用虚拟技术。当然,真实肯定最好的。 设计搭建环境的测试用例要多考虑软件所直接承载的平台,我就举些例子吧: 手机端(与PC端\Ipad\智能手表\智能眼镜\智能家居应用软件都有类似的测试点) BS软件:不同的浏览器、浏览器版本、浏览器设置、网络环境等 CS/嵌入软件:不同牌子的手机、手机操作系统、手机设置、屏幕大小、分辨率、基本软件的兼容性问题、被测软件的子软件问题、外界设备等多方面的兼容性问题、硬件基础功能、网络环境、软件共存及功能共存问题(手机上能打开多个QQ吗?)等 PC端也好、移动设备、智能设备也好,市面上直接承载软件的平台无非要么是硬件、操作系统、浏览器或者虚拟技术软件。我们要做的就是多考虑,多沟通,多了解业务,多查找。 等价类划分模板Sheet 有了测试环境,现在开始测试软件了,从我们开始测试就要利用多角度的思维来分析数据,我把多种思维和方法结合成了5个Sheet,分别是等价划分模板、测试大纲模板、场景模板、判定表+因果图模板、正交表模板,但是每个模板并不代表着一种方法,例如等价类划分模板我只是应用了它的文档格式,再融入其他的思维来进行数据分析,以上5个模板同时使用的可能性不大,但是场景法模板(考虑实际业务场景的方法)必须使用,任何软件的测试都离不开场景法的应用,所以基本是场景法模板+其他模板来应用。 好了,现在来看看我模板的作用吧。 等价类划分模板(一般用于软件界面切换少的测试) 测试思维: 等价类划分法 有效等价类划分 无效等价类划分 边界值法 划分输入数据的边界值 探索式测试技术 广度变量,模拟用户输入不同类型的数据 (注意:特殊字符集,会找到隐藏在功能背后的安全性问题) 深度变量,模拟用户输入同一类型数据,但是 数据具有不用的特征、行为、层次 输入,考虑不用输入的方式,特别是粘 贴 复制什么的导 航,界面之间的转换等,Web中链接的导航是否正确 重复操作事件源,重复的点击按钮会怎样?要测吧。 时间/持续时间,软件运行24小时,还能正常吗?响应时间是 多少秒,验证码的持续时间呢? 功能共存与切换,不同软件的功能可以共存吗?你玩手机的时 候,电话来了会怎样?我能切换出去吗?切换回来还正常吗? 等等 。。。。 表单的后面我特意留了一空白格,就是为了可以持续的添加新的思维用以测试。这里特别举例说说广度变量,很简单的假如你要测一个c/s软件,类似于qq,你登陆的时候有输入用户名和密码,这个时候你用广度变量来分析,你就要注意了,我能不能输入数字?英文字母呢?符号呢?可不可以输入一段SQL语句?会不会引起安全性的问题?例如’ or 1=1 -- ,对吧。一些关键字符集要特别留意。 还有深度变量, 以前Excel里面有个bug,在一个表格中,5/(1+2)能正确运行,但是5/(12/(12/(2+1)))就出bug了 ,你怎么找出这类bug?
累了,先吃饭吧。。。后面看心情再写吧。
|