手动測试和自己主动化測试永远是一个非常热门的话题。自己主动化也一直被人们捧上神坛。自己主动化測试和手动測试从技术上来说本质事实上都是測试用例设计。仅仅只是终于形式一个是人工运行,一个是代码运行罢了。这两者就如白盒測试和黑盒測试一样在项目中都是不可或缺的。

我们来看两个场景。

案例一:某企业招聘软件測试project师,并组建了各自分工明白的自己主动化和手动測试部门,在项目中两个測试团队分工明白并互相分享经验。终于项目产品的质量得到了良好的保证。

案例二:小陈同学想应聘软件測试project师的岗位。投了非常多简历之后也得到了若干面试的机会,但在面试过程中却频频由于自己之前都是手动測试而导致失败甚至被别人看不起。经过了一段时间之后,小陈同学也心灰意冷,也開始认为手动測试就是没有价值的活动。

上面列举的场景在行业中很常见。那么我们应该怎样正确的在项目的測试活动中实施手动測试或自己主动化測试呢?主要有下面几个因素决定:

1.      回归和探索

我们在项目的測试过程中,回归測试是不可缺少的一个环节,它可以使得我们的产品尽量不会出现反复的缺陷。比方測试输入法产品,不管功能和设计怎样变化。其主要的字符输入功能总是不会改变的。

在长期的项目迭代过程中,測试人员多少都会由于每次验证相同的问题而掉以轻心,同一时候也浪费了project师的时间在反复的工作上。

往往这类每一个迭代版本号都须要验证的重要核心的功能就被贴上了自己主动化測试的标签。自己主动化測试既可以节省回归的成本也可以增加持续集成的平台。而每次版本号新增的功能的单独模块和集成測试很多其它的须要手动的探索性測试。手动測试很多其它的须要基于測试人员对于产品的了解和经验而进行的,一个经验丰富的手动測试project师可以在短时间内发现非常多的功能上的缺陷。这绝对是自己主动化測试无法达到的高度。

2.      压力測试

測试活动的目的决定了选择手动測试还是自己主动化測试。

就比方压力測试。本身測试的目的在于查看软件功能在被长时间使用之后是否会有内存泄漏、溢出等问题。这类測试活动假设手动来做的话。或许一个測试project师一天八小时得所有放在这个上面。还未必可以达到測试得效果。

所以这类測试就贴上了自己主动化測试得标签。仅仅要有针对性得编写脚本去不停得使用产品。在自己主动化測试得过程中可监控功能的异常情况从而获取有效的信息。在这类測试活动中,手动測试是无法正常支持的。

3.场景模拟測试

在測试活动中有非常多环境是我们通过手动測试无法覆盖到的。

包含方法的各种类型的參数、各种边界的模拟等,这类測试活动就更适合用自己主动化来做。

在測试过程中,使用技术手段将各种測试环境、配置等进行模拟之后从而弥补手动測试在有限的測试环境中遗漏的測试点。

SWTBOK測试实践系列(5) -- 项目中使用手动和自己主动化的策略的更多相关文章

  1. SWTBOK測试实践系列(1) -- 測试在项眼下期的评审投入划算吗?

    測试策略:静态測试还是动态測试? [对话场景] 成功公布某个软件版本号之后,项目团队召开了项目的经验教训总结大会.在会议期间,项目经理小项和測试经理小測进行了例如以下的对话: 小项:"小測, ...

  2. SWTBOK測试实践系列(4) -- 软件測试技术的黑白之道

    白盒測试和黑盒測试往往是项目中最受争议的两种測试类型,每一个人偏爱各不同.现实生活中行业人员大多喜欢白盒測试而忽视黑盒測试,那么项目中又应该怎样平衡这两类測试呢?我们先来看两个案例. 案例一: 某移动 ...

  3. atitit.jndi的架构与原理以及资源配置and单元測试实践

    atitit.jndi的架构与原理以及资源配置and单元測试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin  <database> ...

  4. ES6系列之项目中常用的新特性

    ES6系列之项目中常用的新特性 ES6常用特性 平时项目开发中灵活运用ES6+语法可以让开发者减少很多开发时间,提高工作效率.ES6版本提供了很多新的特性,接下来我列举项目中常用的ES6+的特性: l ...

  5. Android开发和測试实践 - 接入友盟统计

    这两年一直在做无线的測试,兴许还会继续去做无线的測试,可是之前由于时间的原因一直都没有非常细致的了解到代码层面. 最近抽出时间自己做了些app的开发,决定假设想把移动的測试做好做深入.有一定的app开 ...

  6. .net Dapper 实践系列(1) ---项目搭建(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 一.前期准备 1.在MySQL创建数据库 2.创建项目 3.安装程序包 4.添加插件 5.添加DbOption文件夹 6.添加实体类 写在前面 学习并实践使用Dapper 这个小型的O ...

  7. CJCMS系列---说说项目中的缓存实现(1)

    缓存者,临时文件交换区也.主要就是方便查找,提高查找效率(效率在于读内存速度比读硬盘快).  大多数的项目的缓存都是通过设定过期时间来做的,可是我对于这样的替换策略不以为然,而且会导致混乱. 有人说: ...

  8. 关于vue项目中,手动定义的scrollTop的值

    在项目中,有时需要控制scrollTop的值,比如有一个列表页,点击任意一个列表可以进入其详情页,这时如果你要返回的话, 肯定是希望还回到刚刚点击的地方,我当时的解决办法是,本地存下点击那一刻的scr ...

  9. 【2018.05.09 Python学习及实践】个人项目中使用的Python库备忘-持续更新

    科研中无论是使用C/C++.Python.Matlab,如果能找到合适的库可谓是事半功倍: 有时候忙活半天才发现本身就有成熟的库可用,自己实现的在功能.性能.安全性上都远远不及,虽然锻炼了能力,但存在 ...

随机推荐

  1. RIP 路由协议

    RIP动态路由选择协议 routing information protocol     IGP   小范围   路由器限制为15台  超过可能无法收敛   收敛概念  在一个域内  各个路由器知道各 ...

  2. 101 Hack 50

    101 Hack 50 闲来无事.也静不下心,打个代码压压压惊 Hard Questions by kevinsogo Vincent and Catherine are classmates who ...

  3. 如何正确遍历删除List中的元素

    遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题.下面主要看看以下几种遍历删除List中元素的形式: 1.通过增强的for循环删除符合条件的多个元素 2.通过增强的for循环删除符合 ...

  4. Vmware占用宿主机硬盘越来越大

    Vmware占用宿主机硬盘越来越大 root /usr/bin/vmware-toolbox-cmd disk shrink /

  5. No entity found for query异常

    错误为getSingleResult();获取值时获取不到报异常. getSingleResult的源码有一句: @throws EntityNotFoundException if there is ...

  6. php中 ob_start()有什么作用

    <?php ob_start(); //开启缓冲区 echo "这是第一次输出内容!\n"; $ff[1] = ob_get_contents() ; //获取当前缓冲区内容 ...

  7. [luoguP2526] [SHOI2001]小狗散步(二分图最大匹配)

    传送门 简直就是模板题啊! #include <cmath> #include <cstdio> #include <cstring> #include <i ...

  8. centons7编译安装zabbix3.4【转https://www.cnblogs.com/kowloon/p/7771495.html】

    或者参考官方文档:https://www.zabbix.com/documentation/3.4/manual/installation/install 一.预编译环境准备 1.lamp安装和启动 ...

  9. 洛谷 [P2886] 牛继电器Cow Relays

    最短路 + 矩阵快速幂 我们可以改进矩阵快速幂,使得它适合本题 用图的邻接矩阵和快速幂实现 注意 dis[i][i] 不能置为 0 #include <iostream> #include ...

  10. configure: error: C++ preprocessor "/lib/cpp" fails sanity check

    configure: error: C++ preprocessor "/lib/cpp" fails sanity check 参考链接: error: C++ preproce ...