Nikola Đuza E2 111/2016

Automatsko testiranje mikro servisa alatima za testiranje prihvatljivosti

Obrana završnog rada

- Master akademske studije -

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Nikola Đuza

  • Inženjer softvera

  • Upisao OAS na FTN-u 2012.

  • Završio OAS 2016.

  • Upisao MAS na FTN-u 2016.

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Šta je testiranje?

  • Provera da li dobijeni rezultat odgovara očekivanom rezultatu
  • Verifikacija softvera
  • Proces izvršavanja sa namerom pronalaska grešaka

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Pristupi testiranju

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Pristupi testiranju

  • Ne postoji jasna podela pristupa
  • Većina se prepliće i kombinuje
  • Najrelevatniji za rad

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Box pristupi testiranju

  • Black box
    • Unutrašnjost softvera nepoznata
  • Gray box
    • Unutrašnjost potrebna za testiranje poznata
  • White box
    • Unutrašnjost je potpuno poznata

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Ručno testiranje

  • Često osnovni pristup testiranju
  • Po slobodnoj proceni ili na osnovu pripremljenih skripti
  • Tester se ponaša kao korisnik
  • Nezamenljivo je

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Automatsko testiranje

  • Automatizovanje test skripti ili alata za izvršavanje testova
  • Definišu se koraci koji se izvršavaju postepeno
  • Brže od ručnog pristupa ali ga ne može zameniti u potpunosti

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Nivoi testiranja

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Nivoi testiranja

  • Jedinično testiranje
  • Integraciono testiranje
  • Sistemsko testiranje
  • Testiranje prihvatljivosti

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Jedinično testiranje

  • Testiranje izolovanih komponenti
  • Izvlačenje iz konteksta
  • Cilj je identifikacija grešaka komponente

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Jedinično testiranje

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Jedinično testiranje

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Integraciono testiranje

Fakultet tehničkih nauka u Novom Sadu

  • Testiranje funkcionisanja više komponenti
  • Cilj je otkrivanje grešaka pri komunikaciji između više komponenti

Nikola Đuza E2 111/2016

Integraciono testiranje

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Integraciono testiranje

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Sistemsko testiranje

Fakultet tehničkih nauka u Novom Sadu

  • Testiranje zajedničkog rada komponenti koje ne komuniciraju direktno, ali imaju neku zavisnost po podacima
  • Cilj je verifikacija specificiranih zahteva u sistemu

Nikola Đuza E2 111/2016

Testiranje prihvatljivosti

Fakultet tehničkih nauka u Novom Sadu

  • Evaluacija sistema na osnovu zahteva i koliko je prihvatljiv za lansiranje
  • Dve podele
    • User acceptance test
    • Operational acceptance test

Nikola Đuza E2 111/2016

end-to-end testiranje

Fakultet tehničkih nauka u Novom Sadu

  • Tip testiranja prihvatljivosti
  • e2e testira tok podataka kroz celu aplikaciju
  • Dolazi do značaja sa sve većom popularnošću mikro servisne arhitekture

Nikola Đuza E2 111/2016

Alati za testiranje prihvatljivosti

Fakultet tehničkih nauka u Novom Sadu

  • Cypress
  • Puppeteer
  • Nightwatch.js
  • TestCafe
  • CodeceptJS

Nikola Đuza E2 111/2016

Projekat za testiranje

Fakultet tehničkih nauka u Novom Sadu

  • Sajt za prodaju međunarodnog osiguranja
  • 6 servisa ukupno
  • 4 backend servisa
  • 2 frontend servisa
  • Ruby on Rails
  • React

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Projekat za testiranje

Fakultet tehničkih nauka u Novom Sadu

  • Kontejnerizacija uz pomoć Docker alata
  • Automatsko pokretanje testova
  • Servisi za kontinualnu integraciju
    • Semaphore CI
    • Travis CI

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Fokus na e2e i integracionom testiranju
  • Pokreće se unutar pretraživača
  • Dolazi upakovan sa svim drugim alatima za testiranje

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Brz alat
  • Dolazi za Dashboard sajtom za pregled rezultata
    • Snimanje videa i screenshot-ova testova
  • Lako pisanje i izvršavanje testova
  • Podržava Chrome i Electron pretraživače

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Alat za testiranje u Chrome pretraživaču
  • Koristi Chrome DevTools za komunkaciju sa pretraživačem
  • Minimalistički pristup

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Jednostavan način testiranja
  • Ne uključuje ni jednu drugu biblioteku za testiranje
  • Podržava samo Chrome pretraživač

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Koristi Selenium ili WebDriver protokol
  • Podrška za cloud servise
  • Laka proširivost komandi

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Čudan način pisanja testova
  • Teže inicijalno podešavanje
  • Podržava više pretraživača
  • Uskoro se lansira servis sličan Cypress Dashboard-u

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Pokreće se unutar pretraživača
  • Testiranje udaljenih uređaja kao što su mobilni telefoni
  • Lako podešavanje

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Podržava više pretraživača
  • Minimum podešavanja je potrebno
  • TestCafe Studio
  • Podržava snimanje testova umesto pisanja

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Koristi druge popularne biblioteke za izvršavanje testova
  • High level API za pisanje testova
  • Testovi razumljivi i za lica koja nisu tehnička

CodeceptJS

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

  • Lak i čitljiv kod u testovima
  • Podrška za više alata za testiranje
  • Podržava više pretraživača
  • Odlučiti se za jedan alat

CodeceptJS

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Rezultati analize

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Zaključak

  • Cypress
    • Ako nije bitna podrška više pretraživača
  • Puppeteer
    • Chrome jedini pretraživač i jednostavnost
  • Nightwatch.js
    • Više pretraživača i WebDriver protokol

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Zaključak

  • TestCafe
    • Ako je bitna podrška više pretraživača
  • CodeceptJS
    • Čitljivi testovi i više pretraživača

Nikola Đuza E2 111/2016

Fakultet tehničkih nauka u Novom Sadu

Hvala na pažnji

Automatsko testiranje mikro servisa alatima za testiranje prihvatljivosti

By Nikola Đuza

Automatsko testiranje mikro servisa alatima za testiranje prihvatljivosti

Odbrana master rada

  • 973