{"id":28294,"date":"2024-07-05T05:00:00","date_gmt":"2024-07-05T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=28294"},"modified":"2024-07-03T09:50:17","modified_gmt":"2024-07-03T07:50:17","slug":"gdzie-tester-poradzic-nie-moze-tam-vision-ai-posle","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/gdzie-tester-poradzic-nie-moze-tam-vision-ai-posle\/","title":{"rendered":"Gdzie tester poradzi\u0107 nie mo\u017ce, tam Vision AI po\u015ble"},"content":{"rendered":"\n<p><em>\u201eCzy narz\u0119dzi do automatyzacji test\u00f3w mo\u017cemy nauczy\u0107 interfejsu aplikacji, w taki sam spos\u00f3b, jak uczmy tego realnych u\u017cytkownik\u00f3w?\u201d<\/em> \u2013 to pytanie postawi\u0142 sobie Tricentis, zaczynaj\u0105c prac\u0119 nad Vision AI.<\/p>\n\n\n\n<p><strong>Vision AI <\/strong>mo\u017cemy zdefiniowa\u0107 jako \u201einteligentny\u201d silnik do automatyzacji test\u00f3w interfejsu u\u017cytkownika (UI), pozwalaj\u0105cy na automatyzacj\u0119 skrypt\u00f3w testowych bez u\u017cycia kodu. &nbsp;B\u0119d\u0105 to m.in.: sytuacje, w kt\u00f3rych definiowanie selektor\u00f3w na potrzeby automatyzacji jest niemo\u017cliwe ze wzgl\u0119du na wczesn\u0105 faz\u0119 developmentu aplikacji (dost\u0119pno\u015b\u0107 jedynie mockup\u00f3w) lub wymagana jest weryfikacja skomplikowanych struktur i element\u00f3w graficznych na stronie (np.: map, diagram\u00f3w). Narz\u0119dzie to pozwoli tak\u017ce na zaanga\u017cowanie w proces testowania os\u00f3b nietechnicznych, ale posiadaj\u0105cych kluczow\u0105 w procesie wiedz\u0119 domenow\u0105.<\/p>\n\n\n\n<p>Przy tworzeniu Vision AI Tricentis wykorzysta\u0142 jako metod\u0119 analizy danych uczenie maszynowe, dzi\u0119ki czemu silnik narz\u0119dzia, podobnie jak u\u017cytkownik ko\u0144cowy, ma zdolno\u015b\u0107 interpretowania r\u00f3\u017cnych ekran\u00f3w i&nbsp;obiekt\u00f3w dost\u0119pnych w aplikacji. Ponadto, dzi\u0119ki modu\u0142owi \u201eVision AI Self Healing\u201d, w przypadku zmian w&nbsp;aplikacji, kt\u00f3re w tradycyjnych testach spowodowa\u0142yby niepowodzenie egzekucji, Vision AI podejmie pr\u00f3b\u0119 \u201esamonaprawy\u201d skryptu, bazuj\u0105c na swojej wyuczonej \u201einteligencji\u201d.<\/p>\n\n\n\n<p>Silnik Vision AI jest zintegrowany z narz\u0119dziem Tricentis Tosca, o czym dowiesz si\u0119 wi\u0119cej z artyku\u0142u: <a href=\"https:\/\/sii.pl\/blog\/czy-tosca-i-podobne-rozwiazania-codeless-sa-przyszloscia-testowania\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Czy Tosca i podobne rozwi\u0105zania codeless s\u0105 przysz\u0142o\u015bci\u0105 testowania?<\/a> <\/p>\n\n\n\n<p>W niniejszym artykule postaramy si\u0119 szerzej om\u00f3wi\u0107 wymienione na wst\u0119pie przypadki u\u017cycia Vision AI w&nbsp;projektach informatycznych, zwracaj\u0105c szczeg\u00f3ln\u0105 uwag\u0119 na aspekty wyr\u00f3\u017cniaj\u0105ce to narz\u0119dzie na tle \u201eklasycznych\u201d framework\u00f3w do automatyzacji test\u00f3w.&nbsp; <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Konfiguracja<\/strong><\/h2>\n\n\n\n<p>Jak z ka\u017cdym narz\u0119dziem \u2013 prac\u0119 z Vision AI nale\u017cy rozpocz\u0105\u0107 od konfiguracji. Przygotowanie do pracy nale\u017cy poprzedzi\u0107 kilkoma etapami:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rejestracj\u0105,<\/li>\n\n\n\n<li>logowaniem,<\/li>\n\n\n\n<li>instalacj\u0105,<\/li>\n\n\n\n<li>konfiguracj\u0105 po\u0142\u0105czenia.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Rejestracja<\/strong><\/h3>\n\n\n\n<p>Dla danej firmy\/instytucji\/projektu powinno zosta\u0107 za\u0142o\u017cone <a href=\"https:\/\/vision-ai.app.tricentis.com\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >\u015brodowisko \u2013 Nexus Server<\/a>. Dost\u0119pu do niego udziela administrator na pro\u015bb\u0119 przysz\u0142ego u\u017cytkownika. Po otrzymaniu informacji o przyznaniu dost\u0119pu mo\u017cemy si\u0119 zalogowa\u0107.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Logowanie<\/strong><\/h3>\n\n\n\n<p>Aby si\u0119 zalogowa\u0107 korzystamy z adresu: <a aria-label=\" (opens in a new tab)\" href=\"https:\/\/authentication.app.tricentis.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >https:\/\/authentication.app.tricentis.com\/<\/a> . W pierwszym kroku podajemy Account Name (jest to nazwa zarejestrowanej firmy), np.: SII i klikamy \u201eContinue\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_1.png\"><img decoding=\"async\" width=\"498\" height=\"410\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_1.png\" alt=\"Widok strony logowania \u2013 pole \u201eWpisz nazw\u0119 swojej firmy\u201d\" class=\"wp-image-28295\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_1.png 498w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_1-300x247.png 300w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Widok strony logowania \u2013 pole \u201eWpisz nazw\u0119 swojej firmy\u201d<\/figcaption><\/figure>\n\n\n\n<p>W kolejnym kroku uzupe\u0142niamy nasz adres e-mail i has\u0142o, dodatkowo mo\u017cemy zaznaczy\u0107 opcj\u0119 \u201eRemember me\u201d, a na ko\u0144cu klikamy \u201eLogin\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_2.png\"><img decoding=\"async\" width=\"587\" height=\"555\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_2.png\" alt=\"Widok strony logowania dla usera\" class=\"wp-image-28297\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_2.png 587w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_2-300x284.png 300w\" sizes=\"(max-width: 587px) 100vw, 587px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Widok strony logowania dla usera<\/figcaption><\/figure>\n\n\n\n<p>Po zalogowaniu, warto przygotowa\u0107 Token, kt\u00f3ry b\u0119dzie potrzebny do po\u0142\u0105czenia z&nbsp;Vision AI agent \u2013 zapewni to nam stabilno\u015b\u0107 po\u0142\u0105czenia podczas skanowania modu\u0142\u00f3w z&nbsp;Vision AI oraz egzekucji test\u00f3w.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_3.png\"><img decoding=\"async\" width=\"1024\" height=\"663\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_3-1024x663.png\" alt=\"Widok konta u\u017cytkownika z sekcj\u0105 dla Token\u00f3w\" class=\"wp-image-28299\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_3-1024x663.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_3-300x194.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_3-768x498.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_3.png 1062w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 Widok konta u\u017cytkownika z sekcj\u0105 dla Token\u00f3w<\/figcaption><\/figure>\n\n\n\n<p>Pami\u0119tajmy, \u017ce dane Tokena s\u0105 widoczne tylko w momencie wygenerowania, wi\u0119c warto zapisa\u0107 je w&nbsp;notatniku na przysz\u0142e potrzeby. Je\u015bli tego nie zrobimy \u2013 nie b\u0119dziemy mogli u\u017cy\u0107 Tokena i zaistnieje konieczno\u015b\u0107 wygenerowania nowego oraz zapisania jego danych od pocz\u0105tku. Pami\u0119tajmy te\u017c, \u017ce Token ma sw\u00f3j czas przydatno\u015bci i po wyga\u015bni\u0119ciu musimy utworzy\u0107 nowy oraz ustanowi\u0107 po\u0142\u0105czenie z us\u0142ugami na nowo. Jest to i tak o wiele mniejsza niedogodno\u015b\u0107 w por\u00f3wnaniu z wpisywaniem codziennie loginu i has\u0142a w ramach autentykacji \ud83d\ude09<\/p>\n\n\n\n<p>Poni\u017cej pogl\u0105dowo screen z Tokenem \u201etest\u201d i informacjami, jakie dane s\u0105 generowane \u2013 te dane nale\u017cy skopiowa\u0107 (u\u0142atwia to ikona \u201ekopiuj\u201d przy ka\u017cdej warto\u015bci) i zapisa\u0107 na potrzeby dalszego u\u017cytku.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_4.png\"><img decoding=\"async\" width=\"809\" height=\"467\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_4.png\" alt=\"Token \u201ctest\u201d \u2013 przyk\u0142ad\" class=\"wp-image-28301\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_4.png 809w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_4-300x173.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_4-768x443.png 768w\" sizes=\"(max-width: 809px) 100vw, 809px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 4 Token \u201ctest\u201d \u2013 przyk\u0142ad<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Instalacja<\/strong><\/h3>\n\n\n\n<p>Je\u015bli nie instalowali\u015bmy komponentu Vision AI podczas instalacji Tosca Commander, to powinni\u015bmy ponownie \u015bci\u0105gn\u0105\u0107 plik instalacyjny dla Tosca Commander (zgodny z nasz\u0105 wersj\u0105) i go uruchomi\u0107. Nast\u0119pnie, wybra\u0107 opcj\u0119 \u201eModify\u201d &gt; \u201eCustom Instalation\u201d oraz \u201eNext\u201d, a na kolejnym ekranie zaznaczy\u0107 checkbox dla Vision AI:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_5.png\"><img decoding=\"async\" width=\"900\" height=\"600\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_5.png\" alt=\"Tricentis Tosca Setup \u2013 instalacja Vision AI\" class=\"wp-image-28303\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_5.png 900w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_5-300x200.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_5-768x512.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 5 Tricentis Tosca Setup \u2013 instalacja Vision AI<\/figcaption><\/figure>\n\n\n\n<p>Kolejno klikamy przycisk \u201eNext\u201d oraz potwierdzamy ch\u0119\u0107 zmiany przyciskiem \u201eModify\u201d. Po zako\u0144czeniu procesu instalacji Vision AI otrzymamy stosowny komunikat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Konfiguracja po\u0142\u0105czenia<\/strong><\/h3>\n\n\n\n<p>Uruchamiamy Vision AI agent, kt\u00f3ry zosta\u0142 dodany do Tosca Commander \u2013 jest to r\u00f3wnie\u017c samodzielna aplikacja, kt\u00f3ra b\u0119dzie si\u0119 w\u0142\u0105cza\u0107 w ka\u017cdym momencie uruchamiania skanowania aplikacji przez silnik Vision AI, jak r\u00f3wnie\u017c podczas egzekucji test\u00f3w z&nbsp;modu\u0142ami przygotowanymi dla Vision AI\/przez Vision AI.<\/p>\n\n\n\n<p>Vision AI jest dla nas dost\u0119pny z zasobnika systemowego \u2013 aby ustanowi\u0107 stabilne po\u0142\u0105czenie, klikamy prawym przyciskiem myszy na ikon\u0119 Vision AI i wybieramy \u201eSettings\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_6.png\"><img decoding=\"async\" width=\"348\" height=\"319\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_6.png\" alt=\"Widok Vision AI agent menu z zasobnika systemowego\" class=\"wp-image-28305\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_6.png 348w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_6-300x275.png 300w\" sizes=\"(max-width: 348px) 100vw, 348px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 6 Widok Vision AI agent menu z zasobnika systemowego<\/figcaption><\/figure>\n\n\n\n<p>Ustawiamy odpowiedni Nexus Server Endpoint. Dla stabilnego dzia\u0142ania podczas egzekucji test\u00f3w warto po\u0142\u0105czy\u0107 si\u0119 z przygotowanym wcze\u015bniej Tokenem. Mo\u017cemy to zrobi\u0107 za pomoc\u0105 przycisku \u201eSet Token\u201d. Dalsze etapy s\u0105 intuicyjne i polecenia wy\u015bwietlane s\u0105 na ekranie \u2013 je\u015bli Token zosta\u0142 wcze\u015bniej przygotowany, a dane do niego zapisane, to pod\u0142\u0105czenie nie powinno stanowi\u0107 \u017cadnego problemu.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_7.png\"><img decoding=\"async\" width=\"660\" height=\"440\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_7.png\" alt=\"Widok Vision AI agent \u2013 widok ustawie\u0144 wraz z po\u0142\u0105czeniem Tokena\" class=\"wp-image-28307\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_7.png 660w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_7-300x200.png 300w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 7 Widok Vision AI agent \u2013 widok ustawie\u0144 wraz z po\u0142\u0105czeniem Tokena<\/figcaption><\/figure>\n\n\n\n<p>Po konfiguracji po\u0142\u0105czenia za pomoc\u0105 Tokena nasz Vision AI Agent powinien zosta\u0107 zamkni\u0119ty i&nbsp;uruchomiony ponownie.<\/p>\n\n\n\n<p>Je\u015bli planujemy uruchamia\u0107 testy na DEX-ie, powinni\u015bmy dla usera, na kt\u00f3rym testy b\u0119d\u0105 uruchamiane, r\u00f3wnie\u017c za\u0142o\u017cy\u0107 konto dla Vision AI (poprosi\u0107 o to administratora), wygenerowa\u0107 Token oraz zainstalowa\u0107 Vision AI agenta w lokalizacji, gdzie b\u0119d\u0105 uruchamiane testy. Nast\u0119pnie po\u0142\u0105czy\u0107 z Tokenem \u2013 tak jak dla ka\u017cdego innego u\u017cytkownika. Musimy te\u017c pami\u0119ta\u0107 o tym, aby Vision AI agent by\u0142 uruchamiany tu\u017c po uruchomieniu systemu Windows na tej lokalizacji.<\/p>\n\n\n\n<p><strong>Wa\u017cna informacja \u2013 Vision AI b\u0119dzie dzia\u0142a\u0142 tylko je\u015bli mamy po\u0142\u0105czenie z Internetem.<\/strong> <\/p>\n\n\n\n<p>Je\u015bli chcemy zg\u0142\u0119bi\u0107 dodatkowe warunki konfiguracji, to zapraszamy do zapoznania si\u0119 z&nbsp;dokumentacj\u0105 \u017ar\u00f3d\u0142ow\u0105 od Tricentis:<em> <\/em><a href=\"https:\/\/vision-ai.app.tricentis.com\/documentation\/tosca\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Vision AI documentation<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Vision AI \u2013 sposoby u\u017cycia<\/strong><\/h2>\n\n\n\n<p>Wyr\u00f3\u017cniamy 3 g\u0142\u00f3wne sposoby u\u017cycia Vision AI:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Budowanie step\u00f3w poprzez modu\u0142 Run Vision Script.<\/li>\n\n\n\n<li>Skanowanie mockup\u00f3w UI \u2013 w celu przygotowania wst\u0119pnych test\u00f3w, zanim napisany b\u0119dzie kod aplikacji, ale kiedy dost\u0119pny jest projekt UI.<\/li>\n\n\n\n<li>Skanowanie obraz\u00f3w, graf\u00f3w, aplikacji trudnych do klasycznej automatyzacji \u2013 Vision AI przydaje si\u0119 wsz\u0119dzie tam, gdzie standardowe metody uzyskiwania\/weryfikacji danych nie s\u0105 stabilne (np.:&nbsp;odczytywanie danych z&nbsp;wykres\u00f3w zapisanych w pliku graficznym).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Modu\u0142 Run Vision Script<\/strong><\/h3>\n\n\n\n<p>Modu\u0142 \u201eRun VisionScript\u201d, kt\u00f3ry znajdziemy w Standard Modules w Tosce, pozwala na sterowanie aplikacj\u0105 przy u\u017cyciu s\u0142\u00f3w kluczowych, wykorzystuj\u0105c konstrukcje bardzo zbli\u017cone do \u201ej\u0119zyka naturalnego\u201d.<\/p>\n\n\n\n<p>Poni\u017cszy przyk\u0142ad (wype\u0142nianie formularza kontaktowego na stronie Sii w celu weryfikacji poprawno\u015bci walidacji) ilustruje prosty przypadek u\u017cycia modu\u0142u \u201eRun VisionScript\u201d w Tosce.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_8.png\"><img decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_8-1024x720.png\" alt=\"Widok przyk\u0142adowego testu z wykorzystanym modu\u0142em \u201eRun VisionScript\u201d\" class=\"wp-image-28309\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_8-1024x720.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_8-300x211.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_8-768x540.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_8.png 1100w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 8 Widok przyk\u0142adowego testu z wykorzystanym modu\u0142em \u201eRun VisionScript\u201d<\/figcaption><\/figure>\n\n\n\n<p>Po uruchomieniu skryptu nast\u0105pi wype\u0142nienie wskazanych p\u00f3l formularza, wybranie kategorii z listy oraz klikni\u0119cie przycisku wys\u0142ania wiadomo\u015bci. Na ko\u0144cu skrypt zweryfikuje tre\u015b\u0107 i kolor komunikatu o b\u0142\u0119dnym wype\u0142nieniu formularza.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_9.png\"><img decoding=\"async\" width=\"1024\" height=\"611\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_9-1024x611.png\" alt=\"Widok testowanego formularza kontaktowego\" class=\"wp-image-28311\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_9-1024x611.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_9-300x179.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_9-768x458.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_9.png 1213w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 9 Widok testowanego formularza kontaktowego<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Struktura modu\u0142u Run VisionScript<\/strong><\/h3>\n\n\n\n<p>Prze\u015bled\u017amy szczeg\u00f3\u0142owo struktur\u0119 u\u017cytego modu\u0142u \u201eRun VisionScript\u201d. Ka\u017cdorazowo, w&nbsp;module, musimy wskaza\u0107 nazw\u0119 testowanej aplikacji. Nast\u0119pnie, u\u017cywaj\u0105c s\u0142\u00f3w kluczowych, wykonujemy okre\u015blone kroki testowe na stronie. Przeanalizujmy przyk\u0142adowe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>&#8222;<strong>TYPE<\/strong> &#8222;Daria&#8221; <strong>IN<\/strong> the 'First name&#8217; <strong>input<\/strong>&#8221; <\/em>\u2013 pozwala na wpisanie frazy &#8222;Daria&#8221; w pole typu input, przy kt\u00f3rym widnieje etykieta &#8222;First name&#8221;.<\/li>\n\n\n\n<li><em>&#8222;<strong>CLICK IN<\/strong> the 'Subject&#8217; <strong>dropdown<\/strong>&#8222;<\/em> \u2013 umo\u017cliwia klikni\u0119cie (w tym przypadku rozwini\u0119cie) elementu typu dropdown o nazwie 'Subject&#8217;.<\/li>\n\n\n\n<li><em>&#8222;<strong>CLICK<\/strong> the 'Send messange&#8217; <strong>button<\/strong>&#8222;<\/em> \u2013 klika w przycisk 'Send message&#8217;.<\/li>\n\n\n\n<li><em>&#8222;<strong>VERIFY color <\/strong>&gt;&nbsp; 25% &#8222;red&#8221; <strong>FOR<\/strong> the 'The field is required&#8217; <strong>text<\/strong>&#8222;<\/em> \u2013 s\u0142owo kluczowe &#8222;VERIFY&#8221; umo\u017cliwia weryfikacj\u0119. W tym przyk\u0142adzie weryfikujemy, czy w wy\u015bwietlanym tek\u015bcie, wi\u0119cej ni\u017c 25% pixeli jest koloru czerwonego.<\/li>\n<\/ul>\n\n\n\n<p>Szczeg\u00f3\u0142owe om\u00f3wienie wszystkich s\u0142\u00f3w kluczowych jest dost\u0119pne w <a href=\"https:\/\/vision-ai.app.tricentis.com\/documentation\/visionscript\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >dokumentacji Vision AI<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Skanowanie mockup\u00f3w<\/strong><\/h3>\n\n\n\n<p>W \u015bwiecie IT, coraz wi\u0119ksz\u0105 popularno\u015b\u0107 zdobywa koncepcja \u201e<a href=\"https:\/\/sii.pl\/blog\/podroz-klienta-shift-left-sztuczna-inteligencja-co-i-jak-bedziemy-testowac\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Shift Left<\/a>\u201d, polegaj\u0105ca na przesuni\u0119ciu zada\u0144 zwi\u0105zanych z zapewnieniem jako\u015bci do pocz\u0105tkowych etap\u00f3w procesu wytwarzania oprogramowania. Dzi\u0119ki takiemu dzia\u0142aniu, mo\u017cemy wcze\u015bniej wykrywa\u0107 i&nbsp;rozwi\u0105zywa\u0107 problemy wynikaj\u0105ce np.:&nbsp;z&nbsp;niesp\u00f3jno\u015bci wymaga\u0144. A jak wiemy, im szybciej odnaleziony i zaadresowany b\u0142\u0105d, tym ta\u0144sza jego naprawa.<\/p>\n\n\n\n<p>Silnik narz\u0119dzia Vision AI, dzi\u0119ki mo\u017cliwo\u015bci interpretacji obiekt\u00f3w graficznych, pozwala nam na stworzenie test\u00f3w, jeszcze zanim gotowa jest realna aplikacja i jej kod, poniewa\u017c do stworzenia pierwszych test\u00f3w wystarcz\u0105 nam mockupy.<\/p>\n\n\n\n<p>W celu zademonstrowania dzia\u0142ania silnika Vision AI, wykorzysta\u0142y\u015bmy grafik\u0119 ze strony freepik.com (&#8222;<a href=\"https:\/\/www.freepik.com\/free-vector\/gradient-ui-ux-elements-collection_16627360.htm\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Gradient ui\/ux elements collection<\/a>&#8222;).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_10.png\"><img decoding=\"async\" width=\"1024\" height=\"537\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_10-1024x537.png\" alt=\"Widok XScan podczas skanowania mockup\u2019a z wykorzystaniem silnika Vision AI\" class=\"wp-image-28313\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_10-1024x537.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_10-300x157.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_10-768x403.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_10-1536x806.png 1536w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_10.png 1917w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 10 <a href=\"https:\/\/www.freepik.com\/free-vector\/gradient-ui-ux-elements-collection_16627360.htm\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Widok XScan podczas skanowania mockup\u2019a z wykorzystaniem silnika Vision AI<\/a><\/figcaption><\/figure>\n\n\n\n<p>Na powy\u017cszym zrzucie ekranu widzimy, jak skutecznie Vision AI poradzi\u0142 sobie z mockupem, bazuj\u0105c jedynie na pliku graficznym. Rozwa\u017cmy przedstawiony przyk\u0142ad \u2013 XScan w Tosce poprawnie rozpozna\u0142 elementy takie, jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>przycisk \u201ebutton\u201d widziany w lewym g\u00f3rnym rogu,<\/li>\n\n\n\n<li>nag\u0142\u00f3wek sekcji \u201ehighlight update\u201d,<\/li>\n\n\n\n<li>nag\u0142\u00f3wek sekcji \u201euser profile\u201d,<\/li>\n\n\n\n<li>grafiki: zdj\u0119cie \u201eRossy\u201d w kontenerze \u201ehighlight update\u201d oraz \u201eAdam Suley\u201d widoczne w \u201euser profile\u201d,<\/li>\n\n\n\n<li>pole typu input \u201csearch something\u201d,<\/li>\n\n\n\n<li>przycisk \u201emessage\u201d do wys\u0142ania wiadomo\u015bci do Adama Suley.<\/li>\n<\/ul>\n\n\n\n<p>Korzystaj\u0105c z silnika Vision AI, zeskanowano przyk\u0142adow\u0105 sekcj\u0119 \u2013 \u201euser profile\u201d i utworzono modu\u0142 w Tosce, a nast\u0119pnie, korzystaj\u0105c z modu\u0142u, utworzono krok testowy.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_11.png\"><img decoding=\"async\" width=\"856\" height=\"429\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_11.png\" alt=\"Przyk\u0142adowy krok testowy \u2013 weryfikacja sekcji User Profile\" class=\"wp-image-28315\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_11.png 856w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_11-300x150.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_11-768x385.png 768w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 11 Przyk\u0142adowy krok testowy \u2013 weryfikacja sekcji User Profile<\/figcaption><\/figure>\n\n\n\n<p>Przeprowadzono weryfikacj\u0119 widoczno\u015bci wszystkich element\u00f3w graficznych i tekst\u00f3w oraz sprawdzono, czy mo\u017cliwe jest klikni\u0119cie przycisk\u00f3w \u201efollow\u201d oraz \u201emessage\u201d. Poni\u017cszy zrzut ekranu przedstawia wyniki wykonania testu zestawione na Execution Li\u015bcie w Tosce.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_12.png\"><img decoding=\"async\" width=\"856\" height=\"583\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_12.png\" alt=\"Widok przyk\u0142adowego kroku testowego z poziomu Execution List\" class=\"wp-image-28317\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_12.png 856w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_12-300x204.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_12-768x523.png 768w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 12 Widok przyk\u0142adowego kroku testowego z poziomu Execution List<\/figcaption><\/figure>\n\n\n\n<p>Przygotowane w ten spos\u00f3b pre-testy, mog\u0105 znacznie u\u0142atwi\u0107 proces komunikacji z&nbsp;analitykami i biznesem, a w kolejnych etapach powstawania aplikacji znacznie przyspieszy\u0107 proces budowy docelowych test\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Skanowanie obraz\u00f3w, graf\u00f3w, aplikacji trudnych do klasycznej automatyzacji<\/strong><\/h2>\n\n\n\n<p>Vision AI mo\u017ce pom\u00f3c w automatyzacji niestandardowych element\u00f3w, np.: w przypadku, je\u015bli potrzebujemy uzyska\u0107 dane z mapy b\u0105d\u017a z grafiki, na kt\u00f3rej mamy wykresy z danymi.<\/p>\n\n\n\n<p>Jedynym warunkiem jest to, aby grafika by\u0142a wyra\u017ana \u2013 Vision AI opiera si\u0119 na rozpoznawaniu obiekt\u00f3w \u201ewzrokowo\u201d, wi\u0119c tak jak w przypadku rozpoznawania obiekt\u00f3w ludzkim okiem \u2013 je\u015bli obiekt b\u0119dzie rozmazany, to nara\u017camy si\u0119 na niemo\u017cno\u015b\u0107 odczytania danych. Tego typu sytuacji nie jeste\u015bmy w stanie obs\u0142u\u017cy\u0107, nawet wspomagaj\u0105c si\u0119 najnowsz\u0105 technologi\u0105 wspieraj\u0105c\u0105 testy.<\/p>\n\n\n\n<p>Vision AI zdecydowanie sprawdzi si\u0119 r\u00f3wnie\u017c w przypadku aplikacji, kt\u00f3re, co tu du\u017co m\u00f3wi\u0107, s\u0105 \u017ale napisane, ich konstrukcja jest zawi\u0142a, nie maj\u0105 powtarzalnych schemat\u00f3w b\u0105d\u017a standardowych element\u00f3w i s\u0105 przez to trudne do automatyzacji pod warstw\u0105 \u0142adnego UI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Dzia\u0142anie w praktyce<\/strong><\/h2>\n\n\n\n<p>Poni\u017cej przyk\u0142ad test case\u2019a z weryfikacj\u0105 danych z grafiki:<\/p>\n\n\n\n<p><strong>\u015arodowisko:<\/strong><\/p>\n\n\n\n<p>Przegl\u0105darka Chrome (wersja 124.0.6367.62), tryb incognito<\/p>\n\n\n\n<p><strong>Dane testowe:<\/strong><\/p>\n\n\n\n<p>Kategoria artyku\u0142u: Development na mi\u0119kko<\/p>\n\n\n\n<p>Subkategoria artyku\u0142u: Salesforce<\/p>\n\n\n\n<p>Tytu\u0142 artyku\u0142u: Odkrywanie potencja\u0142u Salesforce Maps \u2013 przegl\u0105d narz\u0119dzia<\/p>\n\n\n\n<p>Autor artyku\u0142u: Micha\u0142 Najdora<\/p>\n\n\n\n<p>Data publikacji: 23 lutego 2024<\/p>\n\n\n\n<p>Miasto: Gda\u0144sk (na mapie Gdansk)<\/p>\n\n\n\n<p><strong>Stepy:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Otw\u00f3rz stron\u0119 <a href=\"https:\/\/sii.pl\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">https:\/\/sii.pl\/<\/a> w przegl\u0105darce.<\/li>\n\n\n\n<li>Zaakceptuj ciasteczka na stronie.<\/li>\n\n\n\n<li>Zweryfikuj, czy link prowadz\u0105cy do Bloga jest widoczny.<\/li>\n\n\n\n<li>Kliknij w link prowadz\u0105cy do Bloga.<\/li>\n\n\n\n<li>Wybierz odpowiedni\u0105 Kategori\u0119 artyku\u0142u.<\/li>\n\n\n\n<li>Kliknij \u201eZobacz wi\u0119cej\u201d dla sekcji Subkategorii artyku\u0142\u00f3w.<\/li>\n\n\n\n<li>Wybierz odpowiedni\u0105 Subkategori\u0119 artyku\u0142u.<\/li>\n\n\n\n<li>Zweryfikuj, czy oczekiwany artyku\u0142 jest na li\u015bcie.<\/li>\n\n\n\n<li>Kliknij link artyku\u0142u.<\/li>\n\n\n\n<li>Wyszukaj obraz o odpowiednim opisie.<\/li>\n\n\n\n<li>Zweryfikuj, czy obraz jest widoczny.<\/li>\n\n\n\n<li>Zweryfikuj elementy na obrazie: ikona przycisku \u201eLayers\u201d jest widoczna, ikona przycisku \u201eSave Changes\u201d jest widoczna oraz najed\u017a kursorem myszy na podane miasto w buforze.<\/li>\n\n\n\n<li>Zamknij przegl\u0105dark\u0119.<\/li>\n\n\n\n<li>Usu\u0144 wszystkie u\u017cyte bufory.<\/li>\n<\/ol>\n\n\n\n<p>Step 12 ma by\u0107 wykonany podczas egzekucji za pomoc\u0105 modu\u0142u przygotowanego z&nbsp;silnikiem Vision AI.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13.png\"><img decoding=\"async\" width=\"1024\" height=\"449\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13-1024x449.png\" alt=\"Modu\u0142 stworzony z pomoc\u0105 silnika Vision AI\" class=\"wp-image-28319\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13-1024x449.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13-300x132.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13-768x337.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13-1536x674.png 1536w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13-370x162.png 370w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_13.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 13 Modu\u0142 stworzony z pomoc\u0105 silnika Vision AI<\/figcaption><\/figure>\n\n\n\n<p>Podczas skanowania obrazu z pomoc\u0105 Vision AI jeste\u015bmy w stanie rozpozna\u0107 nie tylko sta\u0142e elementy, jak na przyk\u0142ad przyciski (o czym by\u0142o ju\u017c wspomniane w poprzednim podrozdziale), ale r\u00f3wnie\u017c obiekty na&nbsp;mapie. Z racji tego, i\u017c na naszym obiekcie mo\u017cemy odczyta\u0107 kilka nazw miast, st\u0105d nie korelowano nazwy miasta z parametrem \u201ena sztywno\u201d, ale zastosowano bufor \u2013 dzi\u0119ki czemu mo\u017cemy poda\u0107 inn\u0105 nazw\u0119 miasta \u2013 np. \u201eWroclaw\u201d i r\u00f3wnie\u017c zostanie ona odnaleziona na mapie.<\/p>\n\n\n\n<p>Poni\u017cej mo\u017cecie obejrze\u0107 nagranie opisanego testu.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"When the going gets tough, the tough get going with Vision AI\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/DhfTaAa3scA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Egzekucja test case\u2019a ze stepami Vision AI<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Vision AI Self-Healing<\/strong><\/h2>\n\n\n\n<p>Dzi\u0119ki temu, \u017ce Vision AI wykorzystuje jako metod\u0119 analizy danych uczenie maszynowe i&nbsp;potrafi interpretowa\u0107 elementy UI, tak jak \u201eprawdziwy\u201d u\u017cytkownik aplikacji, mo\u017cliwe by\u0142o wprowadzenie do test\u00f3w funkcjonalno\u015bci \u201esamonaprawiania\u201d. Aby w\u0142\u0105czy\u0107 mechanizm Vision AI Self-Healing, nale\u017cy zezwoli\u0107 aplikacji na przechowywanie historii test\u00f3w w&nbsp;chmurze. Pozwoli to Vision AI na analiz\u0119 obraz\u00f3w z&nbsp;uruchomie\u0144 test\u00f3w, \u201enauk\u0119\u201d interfejsu i stworzenie kilku stabilnych alternatyw dla odnalezienia element\u00f3w aplikacji u\u017cywanych w&nbsp;te\u015bcie.<\/p>\n\n\n\n<p>Kolejnym krokiem jest wyszukanie modu\u0142u \u201eVision AI Self-Healing\u201d i dodanie go jako Test Step w Recovery Scenario w Tosce, co zilustrowano na poni\u017cszym zrzucie ekranu.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_15.png\"><img decoding=\"async\" width=\"745\" height=\"160\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_15.png\" alt=\"Dodanie kroku \u201eVision AI Self-Healing\u201d do Recovery Scenario\" class=\"wp-image-28321\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_15.png 745w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_15-300x64.png 300w\" sizes=\"(max-width: 745px) 100vw, 745px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 15 Dodanie kroku \u201eVision AI Self-Healing\u201d do Recovery Scenario<\/figcaption><\/figure>\n\n\n\n<p>Na przyk\u0142adzie przycisku wysy\u0142ania formularza, przedstawionego we wcze\u015bniejszej cz\u0119\u015bci artyku\u0142u, rozwa\u017cmy sytuacj\u0119, w kt\u00f3rej mo\u017ce zadzia\u0142a\u0107 mechanizm \u201esamo-naprawy\u201d testu. Je\u015bli przycisk ten zmieni kolor lub jego po\u0142o\u017cenie ulegnie zmianie, Vision AI w dalszym ci\u0105gu b\u0119dzie w stanie poprawnie rozpozna\u0107 element. Dynamiczne id, czy zmieniaj\u0105ce si\u0119 nazwy klas r\u00f3wnie\u017c nie b\u0119d\u0105 stanowi\u0142y przeszkody dla narz\u0119dzia, aby poprawnie zidentyfikowa\u0107 przycisk.<\/p>\n\n\n\n<p>W celu zademonstrowania dzia\u0142ania mechanizmu \u201esamo-naprawiania\u201d wprowadzili\u015bmy zmiany w wygl\u0105dzie przycisku znajduj\u0105cego si\u0119 na dole formularza, zgodnie z poni\u017cszym zrzutem ekranu.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_16.png\"><img decoding=\"async\" width=\"1024\" height=\"242\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_16-1024x242.png\" alt=\"Wprowadzenie zmian w kodzie HTML formularza kontaktowego\" class=\"wp-image-28323\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_16-1024x242.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_16-300x71.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_16-768x181.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_16-1536x363.png 1536w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_16.png 1845w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 16 Wprowadzenie zmian w kodzie HTML formularza kontaktowego<\/figcaption><\/figure>\n\n\n\n<p>Zmianie uleg\u0142y:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>id,<\/li>\n\n\n\n<li>nazwa,<\/li>\n\n\n\n<li>klasy odpowiedzialne za rozmiar i kolor elementu,<\/li>\n\n\n\n<li>etykieta przycisku.<\/li>\n<\/ul>\n\n\n\n<p>W&nbsp;pierwszej iteracji Tosca nie mog\u0142a odszuka\u0107 przycisku i dosz\u0142o do uruchomienia mechanizmu \u201esamo-naprawiania\u201d. Modu\u0142 \u201eVision AI Self-Healing\u201d zadzia\u0142a\u0142 poprawnie i pomimo wprowadzonych zmian, w&nbsp;drugiej iteracji Tosce uda\u0142o si\u0119 klikn\u0105\u0107 w przycisk.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_17.png\"><img decoding=\"async\" width=\"1024\" height=\"396\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_17-1024x396.png\" alt=\"Widok Execution Listy \u2013 przyk\u0142ad zadzia\u0142ania mechanizmu samo-naprawy testu\" class=\"wp-image-28325\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_17-1024x396.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_17-300x116.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_17-768x297.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_17.png 1122w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 17 Widok Execution Listy \u2013 przyk\u0142ad zadzia\u0142ania mechanizmu samo-naprawy testu<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Sandbox (VisionAI assistant)<\/strong><\/h2>\n\n\n\n<p>Je\u015bli nie jeste\u015bmy zaznajomieni z mo\u017cliwo\u015bciami Vision AI, to Tricentis wychodzi nam naprzeciw, oferuj\u0105c Sandbox \u2013 VisionAI assistant, dzi\u0119ki kt\u00f3remu mo\u017cemy wypr\u00f3bowa\u0107 r\u00f3\u017cne dost\u0119pne opcje i rozwi\u0105zania. Do&nbsp;\u015brodowiska mamy dost\u0119p tak samo, jak do innych element\u00f3w Vision AI \u2013 po za\u0142o\u017ceniu nam konta przez administratora (<a href=\"https:\/\/vision-ai.app.tricentis.com\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >link do \u015brodowiska<\/a>).<\/p>\n\n\n\n<p>Po wej\u015bciu w link klikamy w \u201eStart Assistant\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_18.png\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_18-1024x486.png\" alt=\"Vision AI assistant \u2013 strona pocz\u0105tkowa\" class=\"wp-image-28327\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_18-1024x486.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_18-300x142.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_18-768x364.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_18-1536x729.png 1536w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_18.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 18 Vision AI assistant \u2013 strona pocz\u0105tkowa<\/figcaption><\/figure>\n\n\n\n<p>Nast\u0119pnie wybieramy Vision AI agenta z listy (b\u0119dzie skorelowany z nazw\u0105 naszego komputera).<\/p>\n\n\n\n<p>Po uruchomieniu odpowiedniego Vision AI agenta zostaj\u0105 zaczytane wszystkie okna z&nbsp;uruchomionymi aplikacjami, wszystkie \u201ewidzialne\u201d elementy dla Vision AI \u2013 mo\u017cemy wybra\u0107 jedno z nich i na podstawie danego okna i wy\u015bwietlanych zawarto\u015bci budowa\u0107 skrypt.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_19.png\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_19-1024x486.png\" alt=\"Widok Vision AI agenta \u2013 przyk\u0142ad widoczno\u015bci okien aplikacji przez silnik Vision AI\" class=\"wp-image-28329\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_19-1024x486.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_19-300x142.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_19-768x364.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_19-1536x729.png 1536w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_19.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 19 Widok Vision AI agenta \u2013 przyk\u0142ad widoczno\u015bci okien aplikacji przez silnik Vision AI<\/figcaption><\/figure>\n\n\n\n<p>Po wyborze interesuj\u0105cego nas elementu mo\u017cemy edytowa\u0107 zaczytane warto\u015bci, mo\u017cemy r\u00f3wnie\u017c doda\u0107 stepy przed, jak i po danym stepie. Mamy dost\u0119pne opcje takie jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wybierz okno,<\/li>\n\n\n\n<li>prze\u0142aduj widok,<\/li>\n\n\n\n<li>skanuj obraz,<\/li>\n\n\n\n<li>importuj skrypt,<\/li>\n\n\n\n<li>ustaw tryb interaktywny dla elementu (kliknij, wpisz, zaznacz),<\/li>\n\n\n\n<li>weryfikuj,<\/li>\n\n\n\n<li>a tak\u017ce uruchom skrypt i zapisz skrypt.<\/li>\n<\/ul>\n\n\n\n<p>Do naszego Sandboxa (VisionAI assistant) mo\u017cemy wr\u00f3ci\u0107 w ka\u017cdej chwili. Przygotowane stepy nie znikn\u0105.<\/p>\n\n\n\n<p>Ka\u017cdy dodany step mo\u017cemy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>edytowa\u0107,<\/li>\n\n\n\n<li>usun\u0105\u0107,<\/li>\n\n\n\n<li>skopiowa\u0107,<\/li>\n\n\n\n<li>wyci\u0105\u0107,<\/li>\n\n\n\n<li>przesun\u0105\u0107 wy\u017cej\/ni\u017cej.<\/li>\n<\/ul>\n\n\n\n<p>Mo\u017cemy dodawa\u0107 r\u00f3\u017cne typy step\u00f3w jak p\u0119tle:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>IF,<\/li>\n\n\n\n<li>WHILE,<\/li>\n\n\n\n<li>REPEAT UNTIL,<\/li>\n\n\n\n<li>WAIT UNTIL,<\/li>\n\n\n\n<li>TRY FAILURE,<\/li>\n\n\n\n<li>WITH.<\/li>\n<\/ul>\n\n\n\n<p>Mamy mo\u017cliwo\u015b\u0107 r\u00f3wnie\u017c importu gotowego skryptu w formacie \u201c.vs\u201d jako stepu. Mo\u017cliwo\u015bci jest wiele &#8211; warto si\u0119 z nimi zapozna\u0107 samodzielnie poprzez eksploracj\u0119 narz\u0119dzia, aby bardziej zrozumie\u0107 ide\u0119 Vision&nbsp;AI.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_20.png\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_20-1024x486.png\" alt=\"Przyk\u0142ad rozpoznawania element\u00f3w na stronie przez Vision AI\" class=\"wp-image-28331\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_20-1024x486.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_20-300x142.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_20-768x364.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_20-1536x729.png 1536w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/VisionAI_20.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 20 Przyk\u0142ad rozpoznawania element\u00f3w na stronie przez Vision AI<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ograniczenia dla Vision AI<\/strong><\/h2>\n\n\n\n<p>Jak ka\u017cde narz\u0119dzie \u2013 r\u00f3wnie\u017c Vision AI ma swoje ograniczenia. Tricentis wyr\u00f3\u017cnia ich kilka:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rozpoznawanie tekstu wsp\u00f3\u0142pracuje najlepiej z j\u0119zykiem angielskim \u2013 w zwi\u0105zku z&nbsp;tym znaki nietypowe dla j\u0119zyka angielskiego niekoniecznie b\u0119d\u0105 interpretowane prawid\u0142owo: przyk\u0142adem s\u0105 polskie: \u0105, \u0119, \u0142, \u00f3, \u015b, \u0107, \u017c, \u017a, d\u017a, d\u017c. Znaki ca\u0142kiem inne ni\u017c \u0142aci\u0144skie (np.: arabskie, cyrylica, kanji, hanji) \u2013 nie b\u0119d\u0105 w og\u00f3le czytane.<\/li>\n\n\n\n<li>Za pomoc\u0105 Vision AI nie mo\u017cemy sterowa\u0107 oknami zarezerwowanymi dla administratora Windows.<\/li>\n\n\n\n<li>Elementy poza widokiem strony nie b\u0119d\u0105 r\u00f3wnie\u017c widoczne dla Vision AI \u2013 nale\u017cy najpierw przeskrolowa\u0107 stron\u0119, aby Vision AI mia\u0142 szans\u0119 zweryfikowa\u0107 elementy, lub wspom\u00f3c si\u0119 tradycyjnymi metodami automatyzacji, aby obra\u0107 punkt na stronie, gdzie zostanie wycentrowany obraz na potrzeby dalszych step\u00f3w dla Vision AI.<\/li>\n\n\n\n<li>Vision AI mo\u017ce mie\u0107 problem z sterowaniem tabel\u0105 \u2013 zw\u0142aszcza je\u015bli nie wszystkie jej kolumny\/wiersze s\u0105 widoczne na jednym widoku.<\/li>\n\n\n\n<li>Vision AI uczy si\u0119 na podstawie podawanych mu danych, st\u0105d na pocz\u0105tku mo\u017ce cz\u0119\u015bciej rozpoznawa\u0107 obiekty nieprawid\u0142owo i trzeba mie\u0107 to na uwadze \u2013 im wi\u0119cej egzekucji b\u0119dzie wykonywanych \u2013 tym rezultaty rozpoznawania ulegn\u0105 poprawie.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>Vision AI jest obiecuj\u0105cym narz\u0119dziem, kt\u00f3re pomaga w budowaniu test\u00f3w tam, gdzie jest to utrudnione. Oczywi\u015bcie, \u017ce nie wsz\u0119dzie si\u0119 sprawdzi i nie zast\u0105pi testera, poniewa\u017c kroki testowe oparte na pozosta\u0142ych silnikach dost\u0119pnych w&nbsp;Tosca Commander (lub klasycznych frameworkach testowych) s\u0105 szybsze i pewniejsze w&nbsp;przypadku \u201estandardowych\u201d sytuacji. Vision AI stanowi raczej form\u0119 wsparcia dla tych rozwi\u0105za\u0144, kt\u00f3re daje nam mo\u017cliwo\u015bci automatyzacji niekt\u00f3rych obszar\u00f3w, gdzie do tej pory testowanie manualne pozostawa\u0142o jedyn\u0105 opcj\u0105.<\/p>\n\n\n\n<p>R\u00f3wnie\u017c dzi\u0119ki Vision AI budowanie test\u00f3w staje si\u0119 realne w momencie, kiedy UI aplikacji nie jest jeszcze sko\u0144czony, ale projekt graficzny ju\u017c tak. Owszem \u2013 mo\u017cliwe, \u017ce modu\u0142y przygotowane na mockupach b\u0119d\u0105 do poprawy w kolejnych iteracjach procesu wytwarzania oprogramowania, ale du\u017co czasu zostanie zaoszcz\u0119dzone. W niekt\u00f3rych projektach tego typu narz\u0119dzie b\u0119dzie wybawieniem i game-changerem dla testera.<\/p>\n\n\n\n<p>Warto sprawdzi\u0107 mo\u017cliwo\u015bci Vision AI \u2013 i przekona\u0107 si\u0119 na w\u0142asnej sk\u00f3rze, \u017ce AI mo\u017ce by\u0107 oswojonym przyjacielem, kt\u00f3ry wspiera w codziennej pracy.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;28294&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;13&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.8&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;4.8\\\/5 ( votes: 13)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Gdzie tester poradzi\u0107 nie mo\u017ce, tam Vision AI po\u015ble&quot;,&quot;width&quot;:&quot;133.7&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 133.7px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            4.8\/5 ( votes: 13)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u201eCzy narz\u0119dzi do automatyzacji test\u00f3w mo\u017cemy nauczy\u0107 interfejsu aplikacji, w taki sam spos\u00f3b, jak uczmy tego realnych u\u017cytkownik\u00f3w?\u201d \u2013 to &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/gdzie-tester-poradzic-nie-moze-tam-vision-ai-posle\/\">Continued<\/a><\/p>\n","protected":false},"author":439,"featured_media":28336,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1317],"tags":[2222,1570,1546,680],"class_list":["post-28294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-testowanie","tag-vision-ai","tag-tosca","tag-przeglad-narzedzi","tag-ai"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/07\/Gdzie-tester-poradzic-nie-moze-tam-Vision-AI-posle.jpg","category_names":["Testowanie"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/28294"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/439"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=28294"}],"version-history":[{"count":3,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/28294\/revisions"}],"predecessor-version":[{"id":28347,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/28294\/revisions\/28347"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/28336"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=28294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=28294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=28294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}