下午好,亲爱的读者们。
我想谈谈在项目上根本没有测试或程度很小的情况下构建测试自动化系统的经验。
我希望本文对初学者自动测试有用。
- 在第一部分中,我们赞成通用方法。
- 在第二部分( 第1部分 )中,通过示例,我们将在JAVA +上进行自动测试项目,并讲授如何快速测试API。
- 在第三部分中,我们将对项目进行UI测试的补充,我们将进行并行测试。
何时进行自动测试?
简短的答案是尽早。
完整内容将在下面显示。 无论如何,当该项目工作3年并且手动检查所有内容时,生活变得非常单调。 5000个方案的团队在一个月或两个月内实现自动化是有问题的。 通常,在此类项目中,您将不得不重新开始编写脚本。 因为它会更快。 事实并非如此,旧版本无需进行重大更改就可以实现自动化。
怎么了
因为autotets:
- 积累方案以进行回归
- 无偏见
- 快的
累计方案
自动化方案的数量越多,找到回归的可能性就越大,尤其是在每次运行数据都发生变化的情况下。
如果自动测试稳定通过并落在某个分支上,则他们要么更改了需求,要么更改了错误,或者基础架构失败。
公正
如果需求发生变化,则自动测试应随主要功能的变化一起进行。 这就是测试人员参加传统知识批准的原因。
如果测试运行自动链接到一项任务,那么没有人可以说它尚未经过测试。 反之亦然,他可以。 通常,问题肯定很少。
速度
如果每个测试都满足乏味的条件:
前提条件-测试-后置条件
这样的测试很容易实现自动化。
然后很容易并行化。 因为他们是独立的。
线程数-可承受的测试服务器数量,以免打扰其他服务器。
第二点是速度本身。 在手动模式下,单击产品的创建,其在在线商店中的搜索和购买时间为5分钟。 4个浏览器。 总共20分钟。 在一个很小的情况下。
在这种情况下,自动测试需要1.5分钟。 但是在8个浏览器上。 (每个浏览器的最新和倒数第二个版本)。
从哪里开始?
使用自定义脚本。
原子测试的价值一直在下降,特别是在微服务上。 通常,在理想情况下,这是程序员的职责范围。 此类错误应在单元测试阶段检测到。
质量检查应该从用户故事出发。 因为程序员通常不认识她,也不想知道。
因此,逻辑1测试-1用户案例(业务场景)最接近现实。
当然,在数据准备方面存在困难,例如,在在线商店的情况下,卡支付过程要求篮子中有东西,并且要么是针对新用户的数据,要么是针对现有用户的授权数据。
是的,有时候前提条件比测试要花更长的时间,但是重用脚本并不难。
哪些脚本可以自动化
短期内最不容易发生变化。 为了自动化,至少有人生活了。
还是最常用的。 帮助手动测试生成测试数据很有意义。 例如,在公告板上,自动创建公告是有意义的,因为 此外,任何情况都需要创建一个广告。
到底是做什么的?
通常在那里的项目中
最后两点-通常分开居住。 手机是在自己的脚本上进行测试的,很少有人能够不经准备就根据JTAG进行熨斗的调试。
因此,我建议处理后端和前端。
选择一个场景
假设我们有一个在线商店。
有一个管理面板,有一个客户端和管理员前台。
有一个API可以满足所有这些要求。
从哪里开始自动化?
看吧
有客户,有员工。
客户有第一种情况-查看和搜索产品,将其添加到购物篮中并进行设计。
员工最常见的情况是添加产品卡。
哪种情况将首先自动执行? 又如何?
对于商店来说,最重要的是销售。
因此,客户历史记录对业务最重要。 因此,找到货物,将它们放在购物篮中并使用任何付款方式完成结帐是第一件事。
通过API。 但是没有前线。 在这里您可以争论,但最有可能的设计更改将增加2-3倍,但后端的可能性不大。 因此,在第1阶段,您必须手动检查界面。
接下来,检查编辑产品卡及其正面的API。
并返回给客户。 在此阶段,已经有关于最频繁的用户操作和最频繁的客户端路径的统计信息。 是的,Yandex Metric和Webvisor也可以帮助测试人员。
在第一阶段,检查是否有0.5%的访客使用该功能通过生成的支付系统向公司帐户支付功能是否有效。 当然,您可以问经理一个问题,为什么在这里需要这样做,但这不是关于这个的。
假设我们有40%的人使用卡在网站上付款,30%的现金,20%的货到付款以及10%的所有其他方式。
我们将首先检查哪种付款方式? 当然是地图。
也就是说,我们必须清楚地了解当前哪种情况对业务最重要。 其质量是第一位的。
后置条件
我们在测试中创建了所有内容。 乱扔垃圾。 您需要自己进行清理。 有必要预先预见我们将在自己身上进行哪些测试,而在没有的情况下进行。
如果可以将商品留在商店中,并且不会发生任何不良情况,则需要返回为常规用户添加管理员权限。 然后与权利有关的下一个考验可能会下降。 或更糟糕的是-积极向上,尽管它本来应该下降的。
奇数
当他们使用户发现错误的脚本自动化时,这是一种奇怪的方法。 通常,这些都是非常特殊的场景,在这些场景上花费资源是没有意义的。 有时会出现更新交易对手银行数据的功能中断的情况。 与BIC目录的同步失败。
也就是说,新的BIC尚未更新。 但是新银行正常启动。
自动化此方案是否有意义? 如果承包商每天都在变化-也许是。 然后这是计划中的缺陷。
如果每年执行5-6次,那么做一个更高优先级的任务会更好吗?
接下来会发生什么?
在下一篇文章中,我将告诉您如何快速启动测试API,将这些测试嵌入发行版,并行化测试,如何为测试选择数据以及它将为我们提供什么。
让我提醒您有关杀虫剂的作用,以及如何将其最小化。
技术:Java + Maven + Testng +魅力+ RestAssured + Pict。