探索式测试之隐喻(种植)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zimingzim/article/details/82593379

探索式测试是需要探索的测试方法。如果通过隐喻的方式让探索式测试方法理解起来更加直观方便的话,这样应用的难度就会降低。本文参照探索式软件测试(James A.Whittaker著)一书,书中以旅游者要去新的目的地探险隐喻,称为“漫游测试”,来阐述探索式测试的方法,非常的诙谐幽默,大家同样可以参照。

1、先简述下漫游测试:

局部探索式测试:主要将决策分为5部分,分别为输入、状态、代码路径、用户数据和执行环境。

输入:用户输入可能有无穷大,判断合法输入和非法输入,输入筛选器(防止非法输入),输入检查(牢牢抓住错误显示信息),使用异常(异常消息可以给测试非常多的思路),常规输入还是非常规输入(都比较重要),默认输入或用户提供的输入(加强测试并改变测试思路),使用输出指导输入(逆向思考)。

状态:软件接收输入后状态变化,注意累计效应;状态可以临时,也可以长期;状态变化及其关联;输入和状态之间关系相当关键。

代码路径:路径总量非常大;知道程序分支,理解代码走向;分支未测试到即可能有缺陷;

用户数据:真实数据量大;真实数据结构和关系;数据存储可能有问题;注意用户隐私的问题;

执行环境:环境本身就是输入源;新环境下可能失效;提供输入,接收输出;

全局探索式测试:各种测试类型,分别为商业区(测试核心及重要特性)、历史区(测试遗留代码)、旅游区(快速测试各个特性,重在广度)、娱乐区(测试辅助特性)、旅馆区(测试被忽略或次要的特性)和破旧区(破坏软件特性)一共六个部分。

商业区测试类型包括指南测试法(重在文档测试,如各种手册)、卖点测试法(重要销售特性的测试)、地标测试法(关键特性指标测试,隐喻为地标)、极限测试法(提困难/找麻烦测试法)、快递测试法(重在数据的测试)、深夜测试法(夜间各种维护任务等测试)、遍历测试法(A最短路径的所有对象);

历史区测试类型包括恶邻测试法(缺陷横行代码段测试)、博物馆测试法(遗留代码测试)、上一版测试法(向上-向下兼容性测试);

娱乐区测试类型包括配角测试法(测试辅助特性尤其是紧邻主要功能的特性)、深巷测试法(测试最不可能被用到或最不吸引用户的特性)、通宵测试法(长时间测试,不要关闭程序);

旅游区测试类型包括收藏家测试法(最多收集输出)、长路径测试法(A到B的最长路径)、超模测试法(只关注外面/界面)、测一送一测试法(程序不断拷贝);

旅馆区测试类型包括取消测试法(取消操作攻击软件)、懒汉测试法(啥也不干);

破旧区测试类型包括破坏者测试法(操纵环境,破坏程序)、反叛测试法(恶意数据输入,其中反叛测试法引申出逆向测试法--输入最不可能的数据、歹徒测试法--非法输入、错序测试法--错误顺序)、强迫症测试法(重复同样操作);

混合探索式测试:把探索式测试与传统测试场景相结合,有两类,分别是通过场景操作引入变化和通过故事漫游引入操作。

通过场景操作引入变化重在场景变化,主要包括插入步骤、删除步骤、替换步骤、重复步骤、替换数据、替换环境;

通过故事漫游引入操作类似顺路游,在原有基础上调整或改变测试场景,主要包括卖点测试法(加入一个或多个功能,不断探索)、地标测试法(打乱场景地标顺序)、极限测试法(提出困难)、深巷测试法(最不可能或没用到的功能)、强迫症测试法(重复多次)、通宵测试法(不断运行)、破坏测试法(破坏资源调用)、收藏家测试法(不断收藏输出)、超模测试法(关注界面)、配角测试法(测试最近的邻居功能)、取消测试法(取消/启动/停止)、混票测试法(跟随场景);

2、简述下种植测试:

局部探索式测试(类包产到户):主要分为五部分,分别为种子(类用户输入,包括类型、质量、饮食结构、气候、地理位置等)、长势(类状态,包括芽、苗、杆、长高成熟等)、成长路径(类代码路径,包括耕种、浇水、除草、施肥、收获、晾晒、加工等)、成长过程和结果数据(类用户数据,包括种植密度、面积、种类、产量、价格、特性、用途等)、成长环境(类运行环境,包括自然环境、土地环境、政策环境等,主要有阳光、水分、土质、耕作方式、肥料、自然变化等)。

全局探索式测试(类集体劳作):

主粮测试类型(类商业区测试类型):包括水稻、小麦和玉米等作物,是我们种植的主要粮食作物,也是基本的战略农作物。

种植要求测试法(类指南测试法):以文档测试为主,包括经验传授、模仿学习等,按照要求进行种植,包括播种、日常培育、收割、加工等一系列环节。

种植理由测试法(类卖点测试法):以重要特征测试为主,偏对外特性,如营养特性(能量/热量/碳水化合物/维生素等)、销售特性(价格合理/品种多样/老少皆宜/便于携带/利于存储等)、用途特性(应用广泛/产量高/代价小等)等;

关键特性测试法(类地标测试法):以关键特性测试为主,偏对内特性,如成长特性(外观/状态/检测属性等)、作物特性(耐寒/耐汗/盐碱地等)、自然特性(温度/湿度/土壤特性等)、果实特性(能量/热量/碳水化合物/维生素等)、性能特性(产量/品质等、用途特性:人食用/动物食用/回归土地等)。

极限种植测试法(类极限测试法):思路拓展如下,一块地只种1颗种子/N颗种子、集体全部种植某一种类型农作物、浇水(不浇水/吃当浇水/浇水过量)、除草(不除草/经常除草/除草过量)、施肥(不施肥/适当施肥/施肥过量)、喷药(不喷药/适当喷药/喷药过量)、天气(天气很差/天气适当/天气很好)、无土栽培|温室种植|气候复杂地区种植等。

养料水分测试法(类快递测试法):思路拓展如下,N块地/N种作物/N个作物都需要看护、全周期内定期检测成长状况、全周期内不定期维护(施肥/打药/除草/浇水等,记录数据)、记录对比产量/类型/投入产出比等。

清晨黑夜测试法(类深夜测试法):思路拓展如下,清晨/深夜定期检测成长状况、清晨/深夜不定期维护(施肥/打药/除草/浇水等)、记录对比深夜/白天数据情况等

全部访问测试法(类遍历测试法):思路拓展如下,所有作物/所有阶段/所有状态等、遍历维护(施肥/打药/除草/浇水等);

谷物测试类型(类历史区测试类型):包括小米等种植量小的植物,因为我们国家谷物的种植时间很久,另外此类谷物的产量小,耕作困难,相对主粮来说,比较小众,故以此类比。

招鸟测试法(类恶邻测试法):种植小米有几个非常明显的特点,招鸟、假人、招虫、坏东西多、种植收割加工等麻烦、需要加强保护等等;鸟类容易积聚,种子经常被吃,所以会做一些假人来吓唬鸟类;谷子本身种子比较小,抗自然能力比较差,外加上种植收割加工等等比主粮麻烦多了;所以这块的问题经常比较多,需要加强对待耐心保护;

稀罕测试法(类博物馆测试法):特点是易储存、不易坏、便于携带、补充营养、稀罕作物;加强种植维护(施肥/打药/除草/浇水等,保证与主粮待遇一样);

老身测试法(类上一版本测试法):以前怎么种植的,以后也怎么种植,前后都能适配上。

油类蔬菜测试类型(类娱乐区测试类型):主要包括花生、大豆等油类植物和各种蔬菜,因为他们是饮食中的配角,也是种植作物里不可缺少的一部分。

辅料测试法(类配角测试法):辅料必不可少,与主粮一起,构成了美味的饭食;有几个特点(油类、必需品、需要爱护、门面、有时盖过主粮、价格贵、投入大等);

白菜测试法(类深巷测试法):白菜是最不吸引人的东西,但是论营养论性价比也许是各种蔬菜里最好的,最流行和最不流行的一起测试;

长期测试法(类通宵测试法):经常吃同一种油类或者同一种蔬菜;

花草树木测试类型(类旅游区测试类型):目标非常明确,就是游玩,所以以此类比。

标本测试法(类收藏家测试法):珍藏、收藏所有花朵;

满园测试法(类长路径测试法):欣赏满园所有风光,不惜长途跋涉,也要欣赏到所有美景;

花瓶测试法(类超模测试法):只能欣赏外表,不可触摸太多;隐喻界面测试;

一花一木测试法(类测一送一测试法):采花一朵送一个枝叶;隐喻运行多个拷贝程序测试;

薯类测试类型(类旅馆区测试类型):红薯、山药等在日常中经常被忽略或者不重视,其实是日常饮食中必不可少的,甚至在抵御一些疾病时非常重要。红薯在种植的过程中有两个非常明显的特点,作为隐喻再适合不过了。

翻秧测试法(类取消测试法):红薯秧长到一段时间时,必须进行翻秧,这样才能保证营养一直输送到果实那;正如测试中经常进行程序的取消操作,不断的启动/停止;如此隐喻非常适合;

放置测试法(类懒汉测试法):红薯种植还有一个非常重要的特点,就是成长过程中基本不用管它;这就类似于程序运行过程中测试人员尽量少的干预;如此隐喻也非常适合;

高粱青稞测试类型(类破坏测试类型):高粱以前耕作的很多,大多是喂牲口食用,人也可以吃,比较粗糙;青稞是高原地区的一种作物,比较耐寒,产量也比较少;现在的人很少接触这些作物了。

强迫测试法(类破坏者测试法):强迫食用高粱,使得饮食变得更差;强迫软件处理一些更为恶劣的情况;

糟糠测试法(类反叛测试法):也许在极度饥寒的情况下,我们会吃树皮,吃野草,做出一些逆人类的举动,这就是糟糠测试法:我们逆向测试软件、输入非常数据、按照不同顺序输入数据等;

巡回测试法(类强迫症测试法):不断重复地处理事情,如高粱仔磨粉;测试软件对待重复动作时的反应;

混合探索式测试(类两者混合):在传统种植的基础上,做适当的改变和修正。

秧苗种植(类通过场景操作引入变化):插入秧苗(类插入步骤)、荐秧苗(类删除步骤)、换补秧苗(类替换步骤)、重复种苗(类重复步骤)、替换秧苗品种(类替换品种)、替换土地种植(类替换环境)等

种植成长(通过漫游测试引入操作):在原有的种植方式上稍作调整。参考全局探索式测试。

3、总结:

以种植作为隐喻,是比较直观的一种,尤其是亲自在农村呆过的,已经熟悉这些作物及其日常的耕作方式,就会对这些隐喻有更深的理解。在这里也没有贬低那种作物好与不好,只是为了隐喻方便,有些隐喻也未必合理恰当,大家权做拓展测试思路。测试工作本身是极具思考力的,而探索式测试又是测试技术中思考最灵活的,这里面可以隐喻到多个领域,最主要的还是通过这种方式来保证软件的质量,这是最终的目的。

猜你喜欢

转载自blog.csdn.net/zimingzim/article/details/82593379