Hoʻi i ke kula: pehea e hoʻomaʻamaʻa ai i nā mea hoʻāʻo manual e hana i nā hoʻokolohua automated

ʻEhā o ʻelima mau mea noi QA makemake e aʻo pehea e hana ai me nā hoʻokolohua automated. ʻAʻole hiki i nā hui āpau ke hoʻokō i nā makemake o nā mea hōʻike manual i nā hola hana. Ua mālama ʻo Wrike i kahi kula automation no nā limahana a ʻike i kēia makemake no nā mea he nui. Ua komo au i kēia kula ma ke ʻano he haumāna QA.

Ua aʻo au pehea e hana pū ai me Selenium a i kēia manawa ke kākoʻo kūʻokoʻa i kekahi helu o nā autotest me ka ʻole o ke kōkua o waho. A, ma muli o nā hopena o kā mākou ʻike hui a me kaʻu mau hopena pilikino, e hoʻāʻo wau e kiʻi i ke ʻano kumu no ke kula ʻoi loa o ka automation.

ʻO ka ʻike o Wrike i ka hoʻonohonoho kula

I ka maopopo ʻana o ka pono o kahi kula automation, ua hāʻule kāna hui iā Stas Davydov, ke alakaʻi ʻenehana o ka automation. ʻO wai ka mea ʻē aʻe akā ʻo ia ka mea hiki ke wehewehe i ke kumu i hoʻomaka ai lākou i kēia hana, inā paha i loaʻa iā lākou nā hopena a inā mihi lākou i ka manawa i hala? E hāʻawi aku iā ia i ka papahele:

- I ka makahiki 2016, ua kākau mākou i kahi hoʻolālā hou no nā autotests a ua maʻalahi ia e kākau i nā hoʻokolohua: ʻike ʻia nā pae maʻamau, ʻoi aku ka maʻalahi o ka hoʻolālā. Ua loaʻa iā mākou kahi manaʻo: pono mākou e hoʻokomo i nā mea a pau e makemake e kākau i nā hoʻokolohua hou, a i mea e maʻalahi ai ka hoʻomaopopo ʻana, ua hana mākou i kahi ʻano o nā haʻiʻōlelo. Ua hui pū mākou me kahi kumumanaʻo o nā kumuhana, lawe kēlā me kēia o nā kumu aʻo e hiki mai ana no lākou iho a hoʻomākaukau i kahi hōʻike no ia mea.

— He aha nā pilikia i loaʻa i nā haumāna?

— ʻO ka mea nui, ʻoiaʻiʻo, hoʻolālā. Nui nā nīnau e pili ana i ke ʻano o kā mākou hoʻokolohua. Ma ka manaʻo manaʻo, nui nā mea i kākau ʻia ma kēia kumuhana a pono mākou e hoʻopaʻa i nā haʻiʻōlelo hou e wehewehe i nā kikoʻī.

— Ua uku anei ke kula?

- ʻAe, maopopo. Mahalo iā ia, nui ka poʻe i komo i ka kākau ʻana i nā hoʻokolohua, a, ma ka awelika, i ka haukapila, hoʻomaka nā mea a pau e hoʻomaopopo maikaʻi i ke ʻano o nā autotests, pehea i kākau ʻia ai a pehea e hoʻomaka ai. Ua emi iho ka ukana ma luna o nā ʻenehana automation: loaʻa iā mākou i kēia manawa he mau manawa liʻiliʻi i nā noi no ke kōkua me ka nānā ʻana i nā hoʻokolohua, ʻoiai ua hoʻomaka nā mea hoʻāʻo a me nā mea hoʻomohala e hoʻokō iā lākou iho i nā kūlana āpau. ʻAe, aia kekahi mau pono kūloko no ke keʻena: ua loaʻa iā mākou ka ʻike i nā hōʻikeʻike a me nā haʻiʻōlelo, e hoʻomaikaʻi i ka mea i hoʻokele mua ʻia e kekahi mau ʻenekini automation e hana i nā hōʻikeʻike ma nā hālāwai kūkā, a ua loaʻa pū kekahi pūʻulu mana o nā wikiō a me nā hōʻike no ka poʻe hou.

Ma koʻu inoa ponoʻī, e hoʻohui au ua maʻalahi ka kamaʻilio ma waena o kā mākou mau keʻena i kahi pae maʻalahi loa. No ka laʻana, i kēia manawa ʻaʻole pono wau e noʻonoʻo e pili ana i nā hihia a me ke kiʻekiʻe o ka atomicity e automate. ʻO ka hopena, mālama pono nā poʻe hoihoi āpau i ka uhi hoʻāʻo, e ulu mau nei. ʻAʻohe mea e koi i ka mea hiki ʻole mai nā poʻe ʻē aʻe.

Ma keʻano laulā, maikaʻi loa ka hopena i ka hana o nā hui. Ke noʻonoʻo nei paha nā hoa hana e heluhelu nei i kēia ʻatikala e hana i kahi mea like? A laila e maʻalahi ka ʻōlelo aʻo: pono ia inā he mea nui nā hoʻokolohua automated no ʻoe. A laila, e kamaʻilio mākou e pili ana i kahi nīnau paʻakikī: pehea e hoʻonohonoho pono ai i kēia mau mea a pau e like me ka hiki, i mea liʻiliʻi nā kumukūʻai o nā ʻaoʻao āpau a ʻoi aku ka nui o ka hopena.

Nā kōkua no ka hoʻonohonoho ʻana

He mea pono ke kula, akā, e like me kā Stas i ʻae ai, aia kekahi mau pilikia, no laila pono e hoʻonohonoho i nā haʻi'ōlelo hou. A ma ke ʻano he haumāna hou e hoʻohālikelike ana iaʻu iho-i ka naʻaupō a me aʻu iho-i kēia manawa ua hoʻokumu au i kēia mau ʻanuʻu e hana, i koʻu manaʻo, ke ala kūpono e aʻo ai i nā mea hoʻāʻo e hoʻomaopopo i nā hoʻokolohua automated.

KaʻAnuʻu 0. E hana i kahi puke wehewehe'ōlelo

ʻOiaʻiʻo, pono kēia ʻanuʻu ʻaʻole wale no QA. Eia nō naʻe, makemake wau e wehewehe: pono e mālama ʻia ka codebase automation ma kahi ʻano heluhelu. Nā ʻōlelo papahana - ʻaʻole liʻiliʻi loa nā ʻōlelo, a mai kēia hiki iā ʻoe ke hoʻomaka i kāu luʻu.

Hoʻi i ke kula: pehea e hoʻomaʻamaʻa ai i nā mea hoʻāʻo manual e hana i nā hoʻokolohua automated

Eia ke kiʻi paʻi kiʻi o kahi ʻike hana me nā inoa o nā mea. E noʻonoʻo ʻoe ke hoʻāʻo nei ʻoe i ka taskview ma ke ʻano he pahu ʻeleʻele a ʻaʻole ʻoe i ʻike iā Selenium i kou ola. He aha ka hana a kēia code?

Hoʻi i ke kula: pehea e hoʻomaʻamaʻa ai i nā mea hoʻāʻo manual e hana i nā hoʻokolohua automated

(Spoiler - holoi ʻia ka hana ma o ka hoʻomaha ma ka inoa o ka luna, a laila ʻike mākou aia kahi moʻolelo o kēia ma ke kahawai.)

ʻO kēia kaʻina wale nō e hoʻopili i nā ʻōlelo QAA a me QA. ʻOi aku ka maʻalahi o nā hui automation e wehewehe i nā hopena o kahi holo; pono e hoʻemi nā mea hoʻāʻo manual i ka hana ʻana i nā hihia: hiki ke hōʻemi ʻia lākou. Eia naʻe, hoʻomaopopo nā kānaka a pau. Ua loaʻa iā mākou nā lanakila ma mua o ka hoʻomaka ʻana o ke aʻo maoli.

KaʻAnuʻu 1. E hana hou i nā huaʻōlelo

E hoʻomau kākou i ka like me ka ʻōlelo. Ke aʻo mākou i ka ʻōlelo ma ke ʻano he kamaliʻi, ʻaʻole mākou e hoʻomaka mai ka etymology a me ka semantics. Hoʻopuka hou mākou i ka "mom", "kūʻai i kahi mea pāʻani", akā mai hele koke i loko o nā aʻa Proto-Indo-European o kēia mau huaʻōlelo. No laila eia: ʻaʻohe kumu o ka luʻu ʻana i ka hohonu o nā hiʻohiʻona ʻenehana o nā autotests me ka ʻole o ka hoʻāʻo ʻana e kākau i kahi mea e hana ai.
He ʻano kūʻē iki ia, akā hana.

I ka haʻawina mua, pono e hāʻawi i kumu no ke kākau pololei ʻana i nā autotests. Kōkua mākou i ka hoʻonohonoho ʻana i ke kaiapuni hoʻomohala (i koʻu hihia, Intellij IDEA), wehewehe i nā lula ʻōlelo liʻiliʻi e pono ai e kākau i kahi ʻano hana ʻē aʻe i loko o kahi papa e kū nei me ka hoʻohana ʻana i nā ʻanuʻu e kū nei. Kākau mākou i hoʻokahi a ʻelua paha mau hoʻāʻo me lākou a hāʻawi iā lākou i nā haʻawina home, aʻu e hoʻohālikelike ai e like me kēia: kahi lālā i hoʻokaʻawale ʻia mai ka haku, akā ua hoʻoneʻe ʻia nā hoʻokolohua mai ia mea. ʻO kā lākou wehewehe wale nō i koe. Noi mākou i nā mea hoʻāʻo e hoʻihoʻi i kēia mau hoʻāʻo (ʻaʻole ma o show diff, ʻoiaʻiʻo).

ʻO ka hopena, ʻo ka mea i hoʻolohe a hana i nā mea āpau e hiki ke:

  1. e aʻo e hana me ke kaiapuni hoʻomohala: ka hana ʻana i nā lālā, nā kī wela, nā hana a me nā pahu;
  2. e aʻo i nā kumu o ke ʻano o ka ʻōlelo a me nā papa: kahi e hoʻokomo ai i nā injections a me kahi e lawe mai ai, no ke aha e pono ai nā hōʻailona, ​​​​a me ke ʻano o nā hōʻailona i loaʻa ma laila, ma waho o nā ʻanuʻu;
  3. hoʻomaopopo i ka ʻokoʻa ma waena o ka hana, kali a nānā, kahi e hoʻohana ai i ka mea;
  4. e ʻike i ka ʻokoʻa ma waena o nā autotests a me nā loiloi manual: i nā autotests hiki iā ʻoe ke huki i kekahi a i ʻole kekahi mea lawelawe ma mua o ka hana ʻana i nā hana ma o ka interface. No ka laʻana, e hoʻouna pololei i kahi manaʻo i ke kua hope ma mua o ka wehe ʻana i kahi hiʻohiʻona hana, ke koho ʻana i ka hoʻokomo, ke kākau ʻana i ka kikokikona a me ke kaomi ʻana i ke pihi Hoʻouna;
  5. e hoʻokumu i nā nīnau e pane ʻia ma ka pae aʻe.

He mea nui ka helu hope. Hiki ke hāʻawi maʻalahi i kēia mau pane ma mua o ka manawa, akā he kumu aʻo koʻikoʻi ia ʻaʻole e hoʻomanaʻo ʻia nā pane me ka ʻole o nā nīnau i kūkulu ʻia a ʻaʻole hoʻohana ʻia i ka wā e pono ai.

He mea maikaʻi inā i kēia manawa i hāʻawi ʻia kahi ʻenekini automation mai ka hui QA i kahi hana me ke kākau ʻana i ʻelua mau hoʻokolohua i ke kaua a ʻae iā ia e hoʻokomo i kāna lālā.

He aha e hāʻawi ʻole ai:

  1. ʻike hohonu hou aku i ka hana o ke kaiapuni hoʻomohala a me ka ʻōlelo hoʻonohonoho ponoʻī, e pono wale nō ke hana me nā lālā kūʻokoʻa. ʻAʻole ia e hoʻomanaʻo ʻia, pono ʻoe e wehewehe ʻelua a ʻekolu paha, akā mahalo mākou i ka manawa o nā mea ʻenehana automation, ʻaʻole? Nā laʻana: hoʻoholo i nā paio, hoʻohui i nā faila i git, hana i nā papa mai ka wā ʻōpala, hana me nā mea hilinaʻi;
  2. nā mea a pau e pili ana i ka xpath. Koʻikoʻi. Pono ʻoe e kamaʻilio kaʻawale, hoʻokahi a ma ke ʻano koʻikoʻi.

KaʻAnuʻu 2. E nānā pono i ka grammar

E hoʻomanaʻo kākou i ke kiʻi kiʻi taskview mai ka ʻanuʻu #0. Loaʻa iā mākou kahi hana i kapa ʻia ʻo checkCommentWithTextExists. Ua hoʻomaopopo mua kā mākou mea hōʻike i ka hana a kēia ʻanuʻu a hiki iā mākou ke nānā i loko o ka ʻanuʻu a hoʻoheheʻe iki.

A i loko, loaʻa iā mākou nā mea penei:

onCommentBlock(userName).comment(expectedText).should(displayed());

Aia maCommentBlock

onCommonStreamPanel().commentBlock(userName);

I kēia manawa ke aʻo nei mākou e ʻōlelo ʻaʻole "kūʻai i kahi mea pāʻani," akā "kūʻai i kahi mea pāʻani mai ka hale kūʻai Detsky Mir, aia i loko o ke keʻena polū ma ke kolu o ka papa mai luna." Pono e wehewehe e kuhikuhi mākou i kahi mea ma ke kaʻina, mai nā mea nui (stream -> block me nā manaʻo mai kekahi kanaka -> kēlā ʻāpana o kēia poloka kahi e noho ai ka kikokikona i kuhikuhi ʻia).

ʻAʻole, ʻaʻole ia ka manawa e kamaʻilio e pili ana i ka xpath. E haʻi pōkole wale nō ua wehewehe ʻia kēia mau ʻōlelo aʻoaʻo e lākou a hele ka hoʻoilina ma o lākou. Akā pono mākou e kamaʻilio e pili ana i kēia mau mea hoʻokūkū a me nā mea kali; pili lākou i kēia kaʻina a pono e hoʻomaopopo i ka mea e hana nei. Mai hoʻonui: hiki i kāu haumāna ke aʻo i nā ʻōlelo paʻakikī iā ia iho ma hope. ʻO ka mea nui paha, pono, kaliAhiki, hōʻike ʻia ();, noho ();, ʻaʻole (); pono e lawa.

ʻIke ʻia ka haʻawina home: kahi lālā kahi i wehe ʻia ai nā ʻike o nā ʻanuʻu e pono ai no kekahi helu o nā hoʻokolohua. E hoʻihoʻi hou nā mea hoʻāʻo iā lākou a e ʻōmaʻomaʻo hou ka holo.

Eia hou, inā ʻaʻole i loaʻa i ka hui hoʻāʻo nā hiʻohiʻona hou i kāna hana, akā kekahi mau hoʻoponopono bug, hiki iā ʻoe ke noi iā ia e kākau koke i nā hoʻokolohua no kēia mau pōpoki a hoʻokuʻu iā lākou. ʻO ka mea maʻamau, ua wehewehe ʻia nā mea āpau; ʻelua mau ʻanuʻu wale nō e nalowale. ʻO kēia ka hana kūpono loa.

KaʻAnuʻu 3. Hoʻopiha piha

E like me ka mea hiki i ka mea hoʻāʻo e hoʻomau i kāna hana pololei. ʻO ka hope, pono mākou e kamaʻilio e pili ana i ka xpath.

ʻO ka mea mua, e wehewehe mākou i kēia mau mea āpau maCommentBlock a me nā ʻōlelo i wehewehe ʻia e lākou.

Hoʻi i ke kula: pehea e hoʻomaʻamaʻa ai i nā mea hoʻāʻo manual e hana i nā hoʻokolohua automated

Hōʻuluʻulu:

"//div[contains(@class, ‘stream-panel’)]//a[contains(@class,'author') and text()='{{ userName }}’]//div[contains(@class,'change-wrapper') and contains(.,'{{ text }}’)]"

He mea nui ka hoʻonohonoho o ka moʻolelo. ʻO ka mea mua, lawe mākou i nā xpath i loaʻa a hōʻike i ke ʻano o ka ʻāpana element i hoʻokahi a hoʻokahi wale nō mea. A laila, e kamaʻilio mākou e pili ana i ke ʻano: i ka wā e pono ai ʻoe e hoʻohana i ka WebElement, a i ka wā e pono ai ʻoe e hana i kahi faila kaʻawale no kahi mea hou. E ʻae kēia iā ʻoe e hoʻomaopopo maikaʻi i ka hoʻoilina.

Pono e ʻōlelo maopopo ʻia ʻo kahi mea hoʻokahi ka ʻike hana holoʻokoʻa, aia kahi ʻano keiki - ke kahawai holoʻokoʻa, aia kahi ʻāpana keiki - kahi ʻōlelo ʻokoʻa, etc. Aia nā mea keiki i loko o nā mea makua ma ka ʻaoʻao a ma ke ʻano o ka ʻōnaehana autotest.

I kēia manawa, pono e hoʻomaopopo pono ka poʻe i ke ʻano o ka hoʻoilina a me ka mea hiki ke hoʻokomo ma hope o ke kiko ma onCommentBlock. I kēia manawa, wehewehe mākou i nā mea hana a pau: /, //, ., [] a pēlā aku. Hoʻohui mākou i ka ʻike e pili ana i ka hoʻohana ʻana i ka ukana @class a me na mea e ae e pono ai.

Hoʻi i ke kula: pehea e hoʻomaʻamaʻa ai i nā mea hoʻāʻo manual e hana i nā hoʻokolohua automated

Pono nā haumāna e hoʻomaopopo i ka unuhi ʻana i ka xpath ma kēia ala. No ka hoʻohui ʻana - pololei, haʻawina home. Hoʻopau mākou i nā wehewehe o nā mea, e hoʻihoʻi lākou i ka hana o nā hoʻokolohua.

No ke aha kēia ala kūikawā?

ʻAʻole pono mākou e hoʻonui i ke kanaka me ka ʻike paʻakikī, akā pono mākou e wehewehe i nā mea āpau i ka manawa hoʻokahi, a he pilikia paʻakikī kēia. ʻO kēia ala e hiki ai iā mākou ke hana mua i ka poʻe hoʻolohe e nīnau i nā nīnau a maopopo ʻole i kekahi mea a pane iā lākou i ka manawa aʻe. Inā ʻoe e kamaʻilio e pili ana i ka hoʻolālā holoʻokoʻa, a laila ma ka manawa e loiloi ʻia ke kumuhana o nā ʻanuʻu a i ʻole xpath, e poina ʻia nā ʻāpana koʻikoʻi ma muli o ko lākou ʻike ʻole.

Eia nō naʻe, hiki i kekahi o ʻoukou ke kaʻana like i kāu ʻike e pili ana i ke kaʻina hana e hiki ke hoʻonui ʻia. E hauʻoli wau e heluhelu i nā manaʻo like i nā manaʻo!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka