适合做自动化的项目

自动化测试最怕的就是需求不稳定,过高的需求变更频率会导致自动化测试用例的维护成本直线上升。 刚刚开发完成并调试通过的用例可能因为界面变化,或者是业务流程变化,不得不重新开发调试。所以 自动化测试更适用于需求相对稳定的软件项目。
第二,研发和维护周期长,需要频繁执行回归测试。
1. 在我看来,软件产品比软件项目更适合做自动化测试。
首先,软件产品的生命周期一般都比较长,通常会有多个版本陆续发布,每次版本发布都会有大量的回 归测试需求。
同时,软件产品预留给自动化测试开发的时间也比较充裕,可以和产品一起迭代。
其次,自动化测试用例的执行比高于1:5,即开发完成的用例至少可以被有效执行5次以上时,自动化测 试的优势才可以被更好地体现。
2. 对于软件项目的自动化测试,就要看项目的具体情况了。
如果短期的一次性项目,就算从技术上讲自动化测试的可行性很高,但从投入产出比(ROI)的角度看 并不建议实施自动化,因为千辛万苦开发完成的自动化用例可能执行一两次,项目就结束了。我还遇到 过更夸张的情况,自动化测试用例还没开发完,项目都已经要上线了。
所以,对于这种短期的一次性项目,我觉得你应该选择手工探索式测试,以发现缺陷为第一要务。而对 于一些中长期项目,我的建议是:对比较稳定的软件功能进行自动化测试,对变动较大或者需求暂时不 明确的功能进行手工测试,最终目标是用20%的精力去覆盖80%的回归测试。
第三,需要在多种平台上重复运行相同测试的场景。
这样的场景其实有很多,比如:
对于GUI测试,同样的测试用例需要在多种不同的浏览器上执行; 对于移动端应用测试,同样的测试用例需要在多个不同的Android或者iOS版本上执行,或者是同样 的测试需要在大量不同的移动终端上执行;
对于一些企业级软件,如果对于不同的客户有不同的定制版本,各个定制版本的主体功能绝大多数 是一致的,可能只有个别功能有轻微差别,测试也是需要覆盖每个定制版本的所有测试; ……
这些都是自动化测试的最佳应用场景,因为单个测试用例都需要被反复执行多次,能够使自动化测试的 投资回报率最大化。
第四,某些测试项目通过手工测试无法实现,或者手工成本太高。
对于所有的性能和压力测试,很难通过手工方式实现。
比如,某一个项目要求进行一万并发用户的基准性能测试(Benchmark test),难道你真的要找一万个 用户按照你的口令来操作被测软件吗?又比如,对于7×24小时的稳定性测试,难道你也要找一批用户 没日没夜地操作被测软件吗?
这个时候,你就必须借助自动化测试技术了,用机器来模拟大量用户反复操作被测软件的场景。当然对 于此类测试是不可能通过GUI操作来模拟大量用户行为的,你必须基于协议的自动化测试技术,这个我 会在后续的性能测试章节详细叙述。
第五,被测软件的开发较为规范,能够保证系统的可测试性。
从技术上讲,如果要实现稳定的自动化测试,被测软件的开发过程就必须规范。比如,GUI上的控件命 名如果没有任何规则可寻,就会造成GUI自动化的控件识别与定位不稳定,从而影响自动化测试的效 率。
另外,某些用例的自动化必须要求开发人员在产品中预留可测试性接口,否则后续的自动化会很难开 展。
比如,有些用户登录操作,需要图片验证码,如果开发人员没有提供绕开图片验证码的路径,那么自动 化测试就必须借助光学字符识别(OCR)技术来对图片验证码进行模式识别,而它的设计初衷是为了防 止机器人操作,可想而知OCR的识别率会很低,就会直接影响用例的稳定性。
第六,测试人员已经具备一定的编程能力。
如果测试团队的成员没有任何开发编程的基础,那你想要推行自动化测试就会有比较大的阻力。这个阻 力会来自于两个方面:
前期的学习成本通常会比较大,很难在短期内对实际项目产生实质性的帮助,此时如果管理层对自 动化测试没有正确的预期,很可能会叫停自动化测试; 测试工程师通常会非常热衷于学习使用自动化测试技术,以至于他们的工作重点会发生错误的偏 移,把大量的精力放在自动化测试技术的学习与实践上,而忽略了测试用例的设计,这将直接降低 软件整体的质量。

=============================================================================================================

PO(Persistent Object):
persistant object持久对象
最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
通俗解释一下就是每个页面当成一个对象,给这些页面写一个类,主要就是完成元素定位和业务操作;至于测试脚本要和ta区别开来,需要什么去这些页面类去调用即可。这样的好处就是如果页面元素发生变化,你去维护页面类即可,测试类你基本不用管。

所有用到的页面都定义称为一个类
把页面用到的元素定义成方法
把页面上一些操作定义成方法
PO是什么:
1、页面对象模型(PO)是一种设计模式,用来管理维护一组web元素的对象库
2、在PO下,应用程序的每一个页面都有一个对应的page class
3、每一个page class维护着该web页的元素集和操作这些元素的方法
4、page class中的方法命名最好根据对应的业务场景进行,例如通常登录后我们需要等待几秒钟,

po的优点
1、PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰。

2、页面对象与用例分离,使得我们更好的复用对象。

3、可复用的页面方法代码会变得更加优化

4、更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,

原文地址:https://www.cnblogs.com/zhichao123/p/11706989.html

时间: 2024-10-08 16:11:53

适合做自动化的项目的相关文章

什么样的项目适合做自动化测试

一般具有如下几个特征的项目,就被叫适合做自动化. 1)任务测试明确,不会频繁变动2)每日构建后的测试验证3)比较频繁的回归测试4)软件系统界面稳定,变动少5)需要在平台上运行相同的测试案例.组合遍历型的测试,大量的重复测试任务6)软件的维护周期长7)项目的进度压力不大8)被测系统开发较为规范,能保证系统的可测性9)具备大量的自动化测试平台10)测试人员具备较强的编程能力 当然并不需要都满足以上10中情况才能开展自动化测试工作.一般满足以下三点就可以对项目开展自动化测试. 1.软件需求不频繁变动自

AppVeyor-CI为GitHub项目做自动化集成(dotnet为主)

travis-ci对dotnet的项目做自动化集成不太友好,尤其是使用mono的编译和不能使用MSTest进行自动化测试,所以转到appveyor进行. appveyor的配置非常简单,有两种方式: 一.全部使用appveyor的后台进行,不需要配置一个yml文件,之后自动下载yml文件上传到项目,或者省略这部,手动点击build. 二.手动编写yml文件,然后结合后台进行,自由度比较高. 主要做法: 1.关联github账号 2.添加github上的项目 3.编写yml项目,只需要置顶.sln

写给想做自动化的我和我们

写在前面 进入测试行业多年,一直都是在做手工测试或者半自动测试.也接触了很多同行,都很迫切的希望能做自动化测试,其中不乏工作5年以上的人群. 我也做测试多年,因没有编程能力,没有拿得出手的测试高技能,经常为换工作苦苦挣扎,切身体会到没有自动化技能的痛楚.在此,借鉴下前辈们大牛们的经验,总结些个人体验和所得. 想做自动化,首先得了解自动化测试一些常见的问题 1.什么叫自动化? 自动化测试,就是把以人为驱动的测试行为转化为机器执行的一种过程.即模拟手工测试步骤通过执行程序语言编制的测试脚本自动地测试

并不是所有程序员都适合做管理

很多程序员都想转管理.做管理表面很风光,因为社会普遍会对管理者会高看一眼,工作内容也多是让别人干活,不用自己亲自动手那么辛苦,最后拿的薪水却比实际干活的人还高. 但权力有多大,责任压力就有多大,管理者要每天面对各种杂事,经常被各种电话邮件打断,很难一门心思的专注做事,团队项目失败,管理者要承担责任,团队成员犯错,管理者要承担连带责任. 那么程序员如何判断自己是否适合做管理呢? 1.要有大局观,团队意识,不能只关心技术细节. 2.习惯做发动机,做整个团队的引擎,驱动着下面成员转动,给团队成员安排任

手把手教你做关键词匹配项目(搜索引擎)---- 第六天

第六天 小帅帅周五休息后,精神估计太旺盛了,周末两天就狂欢去了,酒喝高了,把一件重要的事儿给忘记了. 周一重新整装 刺骨上战场. 一来公司,小帅帅终于记得他要做的事情,就迫不及待的整理会议报告(工作总结). 1.上周工作任务: 1) 页面提交关键词到关键词词库 2) 文件导入到关键词词库 3) 自动抓取关键此到关键词词库 2.能力的提升 1) 学会了如何读csv文件 2)  学会了curl 3)  学会了Html Dom parse 3.下周工作任务: 1) 了解下关键词词库的应用 刚写到这儿,

测测你适不适合做销售

我们在很早以前就已经明白了,不是所有的人都适合做销售,销售职员必需具有一些基础的特质,这些特质有些与个人的天赋.个性有关系,有些与个人的履历.经验有关,关于个人特质方面我们在以前的良多文章里面已经分析过多次,在这里我们主要讨论春秋这一比较刚性.也比较轻易判别的要素,来进一步分析什么样的人适合作销售,通过这些分析,以期进一步增强企业选才的正确性.   所有的销售基本上都可以分成效率.效能型两种,这一点已经在以前的文章里面讨论过了,下面就他们的最佳春秋进行分析:    适应“效能型”销售的春秋  

5种人不适合做JAVA程序员的,要不改不完的Bug!

java程序员确实收入高.生活滋润,有不少的人想转行做程序员. 但,毕竟要当上一名程序员,也不是一件轻松的事.有些小伙伴就是天生没有自带程序员的一些"属性". 那么,哪几种人可能不适合做程序员呢?下面就来总结一下: 1.对编程没有兴趣 其实,说实话,最后一点是最重要的.因为你观察身边大部分的程序员,你会发现,他们能够继续坚持编程,或多或少是对编程有一定的兴趣的. 不然,他们很快就会逃离编程这块"领地". 如果你对编程完全无感,写个hello world都觉得非常乏味

为什么做自动化,什么情况下做

1.减少人力成本 2.完成大量重复性工作 3.提高测试效率 4.保证工作的一致性,增加信任度 5.完成手工不能完成的工作 什么情况下做? 单元测试 集成测试 接口测试 UI测试? 什么样的项目做自动化? 1.需求变更慢 2.周期长 3.脚本可重复利用 ? 原文地址:https://www.cnblogs.com/askill/p/10373587.html

ZooKeeper 并不适合做注册中心

zookeeper 的 CP 模型不适合注册中心 zookeeper 是一个非常优秀的项目,非常成熟,被大量的团队使用,但对于服务发现来讲,zookeeper 真的是一个错误的方案. 在 CAP 模型中,zookeeper 是 CP,意味着面对网络分区时,为了保持一致性,他是不可用的. 因为 zookeeper 是一个分布式协调系统,如果使用最终一致性(AP)的话,将是一个糟糕的设计,他的核心算法是 Zab,所有设计都是为了一致性. 对于协调系统,这是非常正确的,但是对于服务发现,可用性是第一位