{"id":10943,"date":"2021-08-11T19:00:20","date_gmt":"2021-08-11T17:00:20","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=10943"},"modified":"2023-10-27T17:47:41","modified_gmt":"2023-10-27T15:47:41","slug":"vision-ai-sztuczna-inteligencja-ktora-wnosi-testowanie-na-wyzszy-poziom","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/vision-ai-sztuczna-inteligencja-ktora-wnosi-testowanie-na-wyzszy-poziom\/","title":{"rendered":"Vision AI \u2013 sztuczna inteligencja, kt\u00f3ra wznosi testowanie na wy\u017cszy poziom?"},"content":{"rendered":"\n<p>Wykorzystywanie sztucznej inteligencji w testowaniu oprogramowania jest tematem do\u015b\u0107 \u015bwie\u017cym. P\u00f3ki co, na rynku istnieje kilka firm, kt\u00f3re promuj\u0105 swoje AI i Tricentis jest jedn\u0105 z nich.<\/p>\n\n\n\n<p>Kilkana\u015bcie lat temu zaczyna\u0142 jako startup, a dzisiaj chwali si\u0119 rozwi\u0105zaniem, kt\u00f3re wykorzystuje sie\u0107 neuronow\u0105. Osoby zwi\u0105zane z Tricentis podaj\u0105, \u017ce Vision AI to game changer na rynku wytwarzania oprogramowania. Przekonajmy si\u0119 sami, czy tak jest.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vision AI = nowa era?<\/h2>\n\n\n\n<p>Tricentis twierdzi, \u017ce Vision AI jest trzecim kamieniem milowym na osi czasu w kontek\u015bcie testowania oprogramowania. Przytoczmy je, aby mie\u0107 si\u0119 do czego odnie\u015b\u0107.<\/p>\n\n\n\n<p>Pierwszym kamieniem ma by\u0107 <strong>testowanie oparte na j\u0119zykach skryptowych<\/strong>. Takie podej\u015bcie jest dobre, wymaga jednak umiej\u0119tno\u015bci programowania, co samo w sobie jest pewnym ograniczeniem \u2013 mo\u017ce wymaga\u0107 np. zatrudnienia osoby o danym profilu technicznym.<\/p>\n\n\n\n<p>Kolejnym, drugim kamieniem milowym ma by\u0107 <strong>testowanie w oparciu o modele (Model-based testing)<\/strong>. Tutaj przychodzi z propozycj\u0105 m.in. narz\u0119dzie Tosca Commander, gdzie tworzone s\u0105 modu\u0142y, kt\u00f3re odzwierciedlaj\u0105 elementy ze struktury aplikacji niezale\u017cnie od tego, czy m\u00f3wimy o aplikacji webowej, desktopowej czy mobilnej. Mo\u017cna to por\u00f3wna\u0107 do klock\u00f3w Lego: je\u015bli chcemy testowa\u0107 formularz logowania, musimy zapisa\u0107 kontrolki, kt\u00f3re nas interesuj\u0105, np. pole do wpisania loginu, has\u0142a i przycisk do potwierdzania. Tosca Commander radzi sobie z tym bardzo dobrze i w ci\u0105gu chwili mo\u017cemy mie\u0107 gotowy ,,klocek\u201d z trzema kontrolkami, kt\u00f3ry odpowiada ekranowi logowania. Jest to podej\u015bcie typu Page Object Model i ma wiele zalet.<\/p>\n\n\n\n<p>Ostatnim (na ten moment) kamieniem milowym ma by\u0107 w\u0142a\u015bnie <strong>Vision AI<\/strong>. Tricentis rozpocz\u0105\u0142 prac\u0119 nad w\u0142asn\u0105 sieci\u0105 neuronow\u0105 ponad 2 lata temu i dzisiaj dostarcza rozwi\u0105zanie, kt\u00f3re jest cz\u0119\u015bci\u0105 narz\u0119dzia Tosca Commander. Ta funkcjonalno\u015b\u0107 dzia\u0142a w taki spos\u00f3b, \u017ce ,,patrzy\u201d na warstw\u0119 UI tak jak ludzkie oko i zwraca u\u017cytkownikowi wszystkie rozpoznane przez siebie elementy. Dla niej nie jest istotne jak elementy u\u0142o\u017cone s\u0105 &#8222;pod spodem&#8221;, wi\u0119c je\u015bli u\u017cywamy Vision AI w aplikacji webowej, to nie b\u0119dziemy mieli wgl\u0105du w struktur\u0119 jak np. kontenery, div&#8217;y itp. Liczy si\u0119 tylko wierzchnia warstwa aplikacji. Vision AI nie sprawdzi si\u0119 zawsze i wsz\u0119dzie. Zdarza si\u0119, \u017ce brakuje stabilno\u015bci, np. nie wykryje przycisku i nie wci\u015bnie go.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zalety Vision AI<\/h2>\n\n\n\n<p>Pierwsza zaleta to mo\u017cliwo\u015b\u0107 r\u0119cznej zmiany \u017ale rozpoznanego elementu. Je\u015bli system rozpozna dan\u0105 kontrolk\u0119 jako pole do wpisania tekstu, a w rzeczywisto\u015bci jest to przycisk, to mo\u017cemy zmieni\u0107 jej typ techniczny z \u2018text input\u2019 na \u2018button\u2019. Tym samym przekazujemy do Vision AI informacj\u0119: ,,hej, chc\u0119 \u017ceby\u015b interpretowa\u0142 ten element jako przycisk\u201d.<\/p>\n\n\n\n<p>Je\u015bli mamy zdefiniowan\u0105 jak\u0105\u015b kontrolk\u0119, to powinna by\u0107 ona rozpoznana na ekranie niezale\u017cnie od tego, czy to jest aplikacja webowa, desktopowa czy mobilna. Liczy si\u0119 warstwa UI, a Vision AI szuka najbardziej pasuj\u0105cej kontrolki. Jest to zatem ogromna zaleta, poniewa\u017c mo\u017cemy zdefiniowa\u0107 kontrolk\u0119 raz i u\u017cywa\u0107 jej ponownie na r\u00f3\u017cnych platformach. Podej\u015bcie Model-based w taki sam spos\u00f3b sobie nie poradzi.<\/p>\n\n\n\n<p>Kolejn\u0105 korzy\u015bci\u0105 jest mo\u017cliwo\u015b\u0107 doprecyzowania kontrolki, z kt\u00f3r\u0105 chcemy wej\u015b\u0107 w interakcj\u0119. Je\u015bli z jakiego\u015b powodu Vision AI nie jest w stanie rozpozna\u0107 po\u017c\u0105danego elementu, mo\u017cna skorzysta\u0107 z funkcjonalno\u015bci o nazwie &#8222;Create User Identified Control\u2026&#8221;. Dzia\u0142a to w ten spos\u00f3b, \u017ce zaznaczamy wycinek UI aplikacji (co\u015b, w co chcemy klikn\u0105\u0107) oraz inny element odniesienia, tzw. anchor. W ten spos\u00f3b anchor ustabilizuje wykrywalno\u015b\u0107 kontrolki. Nale\u017cy jednak pami\u0119ta\u0107, \u017ce je\u017celi planujemy robi\u0107 testy na wielu platformach, to kontrolka, jak i anchor musz\u0105 by\u0107 widoczne na ka\u017cdej z nich.<\/p>\n\n\n\n<p>Testy w Vision AI mo\u017cna tworzy\u0107 jeszcze przed etapem tworzenia aplikacji, co jest du\u017cym plusem. Co to oznacza w praktyce? Posiadaj\u0105c szkice, grafiki lub mockupy jeste\u015bmy w stanie wykona\u0107 du\u017c\u0105 cz\u0119\u015b\u0107 pracy. Vision AI skanuje dany mockup i ,,uczy si\u0119\u201d go. Je\u015bli aplikacja faktycznie b\u0119dzie wygl\u0105da\u0142a tak samo jak w projekcie, to mo\u017cemy by\u0107 pewni, \u017ce Vision AI sobie z ni\u0105 poradzi.<\/p>\n\n\n\n<p>Tricentis zapowiada kolejny dodatek, kt\u00f3ry ma usprawni\u0107 egzekucj\u0119 test\u00f3w. B\u0119dzie to self-healing. Na etapie tworzenia i utrzymywania test\u00f3w aplikacja mo\u017ce si\u0119 bardzo zmienia\u0107. Self-healing ma by\u0107 odpowiedzi\u0105 na sytuacj\u0119, gdy np. dany label czy nazwa przycisku si\u0119 zmieni. Wg Tricentis Vision AI ma rozpozna\u0107 tak\u0105 zmian\u0119 na podstawie umiejscowienia elementu i zaproponowa\u0107 aktualizacj\u0119 testu. Nietrudno przyzna\u0107, \u017ce takie dzia\u0142anie robi wra\u017cenie oraz u\u0142atwia utrzymywanie test\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Novum na rynku i co dalej?<\/h2>\n\n\n\n<p>Sie\u0107 neuronowa w Tricentis trenowana by\u0142a na kilkudziesi\u0119ciu tysi\u0105cach aplikacji. Skupiono si\u0119 g\u0142\u00f3wnie na formularzach \u2013 kiedy Vision AI u\u017cywana jest przy polach tekstowych, nag\u0142\u00f3wkach, labelach oraz przyciskach radzi sobie z rozpoznawaniem ich bardzo dobrze.<\/p>\n\n\n\n<p>Nale\u017cy pami\u0119ta\u0107, \u017ce AI w testowaniu jest m\u0142od\u0105 dziedzin\u0105, kt\u00f3ra wci\u0105\u017c si\u0119 rozwija i ma swoje ograniczenia. Jednym z nich jest skanowanie ikonek (co jest bardzo istotne przy testach mobilnych) \u2013 nie s\u0105 one zbyt dobrze rozpoznawane. Na ten moment rozwi\u0105zaniem jest u\u017cycie wcze\u015bniej wspomnianej funkcjonalno\u015bci &#8222;Create User Identified Control\u2026&#8221;.<\/p>\n\n\n\n<p>Co mo\u017cna by doda\u0107, aby korzysta\u0142o si\u0119 z tego rozwi\u0105zania jeszcze lepiej? Z pewno\u015bci\u0105 wykorzystanie Vision AI u dostawc\u00f3w rozwi\u0105za\u0144 chmurowych, takich jak Browsertack, Perfecto czy Sauce Labs \u2013 s\u0105 one coraz bardziej popularne i w wielu firmach wykorzystywane na potrzeby test\u00f3w. Najwi\u0119ksz\u0105 ich zalet\u0105 jest to, \u017ce \u015brodowisko testowe do egzekucji nie le\u017cy po naszej stronie i to bez wzgl\u0119du czy jest to aplikacja webowa, mobilna lub webowa (i na jakiej przegl\u0105darce chcemy j\u0105 sprawdzi\u0107). Na ten moment Vision AI potrzebuje warstwy UI do egzekucji test\u00f3w, zanim po\u0142\u0105czy si\u0119 dostawc\u0105 chmurowym (na zasadzie po\u015brednictwa), co wydaje si\u0119 by\u0107 ,,w\u0105skim gard\u0142em\u201d. Faktycznym game changerem by\u0142oby umieszczenie Agenta Vision AI u dostawc\u00f3w chmurowych, tak aby testy by\u0142y uruchomione bezpo\u015brednio w chmurze.<\/p>\n\n\n\n<p>Inne usprawnienie, kt\u00f3re przychodzi mi do g\u0142owy, to poprawa infrastruktury Vision AI w kontek\u015bcie Continuous Integration. Je\u015bli u\u017cywamy kilku maszyn do egzekucji test\u00f3w, to ka\u017cda maszyna musi wtedy posiada\u0107 Agenta Tosci oraz Agenta Vision AI. Dobrym rozwi\u0105zaniem wydaje si\u0119 ujednolicenie tych agent\u00f3w w jednego.<\/p>\n\n\n\n<p>Vision AI posiada wiele zalet, ale s\u0142u\u017cy do wspomagania test\u00f3w. Z pewno\u015bci\u0105 warto spr\u00f3bowa\u0107 to narz\u0119dzie, pozna\u0107 jego dobre i z\u0142e strony oraz obserwowa\u0107, w jakim kierunku b\u0119dzie si\u0119 ono rozwija\u0107.<\/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;10943&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;8&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.2&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.2\\\/5 ( votes: 8)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Vision AI \u2013 sztuczna inteligencja, kt\u00f3ra wznosi testowanie na wy\u017cszy poziom?&quot;,&quot;width&quot;:&quot;116.3&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: 116.3px;\">\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.2\/5 ( votes: 8)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wykorzystywanie sztucznej inteligencji w testowaniu oprogramowania jest tematem do\u015b\u0107 \u015bwie\u017cym. P\u00f3ki co, na rynku istnieje kilka firm, kt\u00f3re promuj\u0105 swoje &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/vision-ai-sztuczna-inteligencja-ktora-wnosi-testowanie-na-wyzszy-poziom\/\">Continued<\/a><\/p>\n","protected":false},"author":112,"featured_media":11324,"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":[680,681],"class_list":["post-10943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-testowanie","tag-ai","tag-sztuczna-inteligencja"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/06\/AI-testing.png","category_names":["Testowanie"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/10943"}],"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\/112"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=10943"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/10943\/revisions"}],"predecessor-version":[{"id":25299,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/10943\/revisions\/25299"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/11324"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=10943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=10943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=10943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}