July 14, 2023

Korišćenje utPLSQL frameworka za testiranje

Korišćenje utPLSQL frameworka za testiranje

Why it is smart to start investing in the stock market?

Lorem ipsum dolor sit amet, consectetur adipiscing elit lobortis arcu enim urna adipiscing praesent velit viverra sit semper lorem eu cursus vel hendrerit elementum morbi curabitur etiam nibh justo, lorem aliquet donec sed sit mi dignissim at ante massa mattis.

  1. Neque sodales ut etiam sit amet nisl purus non tellus orci ac auctor
  2. Adipiscing elit ut aliquam purus sit amet viverra suspendisse potenti
  3. Mauris commodo quis imperdiet massa tincidunt nunc pulvinar
  4. Adipiscing elit ut aliquam purus sit amet viverra suspendisse potenti

Should I be a trader to invest in the stock market?

Vitae congue eu consequat ac felis placerat vestibulum lectus mauris ultrices cursus sit amet dictum sit amet justo donec enim diam porttitor lacus luctus accumsan tortor posuere praesent tristique magna sit amet purus gravida quis blandit turpis.

Odio facilisis mauris sit amet massa vitae tortor.

What app should I use to invest in the stock market?

At risus viverra adipiscing at in tellus integer feugiat nisl pretium fusce id velit ut tortor sagittis orci a scelerisque purus semper eget at lectus urna duis convallis. porta nibh venenatis cras sed felis eget neque laoreet suspendisse interdum consectetur libero id faucibus nisl donec pretium vulputate sapien nec sagittis aliquam nunc lobortis mattis aliquam faucibus purus in.

  • Neque sodales ut etiam sit amet nisl purus non tellus orci ac auctor
  • Adipiscing elit ut aliquam purus sit amet viverra suspendisse potenti
  • Mauris commodo quis imperdiet massa tincidunt nunc pulvinar
  • Adipiscing elit ut aliquam purus sit amet viverra suspendisse potenti
Is it risky to invest in the stock market? If so, how much?

Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque. Velit euismod in pellentesque massa placerat volutpat lacus laoreet non curabitur gravida odio aenean sed adipiscing diam donec adipiscing tristique risus. amet est placerat in egestas erat imperdiet sed euismod nisi.

“Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque velit euismod in pellentesque massa placerat.”
Tell us if you are already investing in the stock market

Eget lorem dolor sed viverra ipsum nunc aliquet bibendum felis donec et odio pellentesque diam volutpat commodo sed egestas aliquam sem fringilla ut morbi tincidunt augue interdum velit euismod eu tincidunt tortor aliquam nulla facilisi aenean sed adipiscing diam donec adipiscing ut lectus arcu bibendum at varius vel pharetra nibh venenatis cras sed felis eget.

Po definiciji, utPLSQL (Unit Testing for PL/SQL) je framework za automatsko testiranje PL/SQL koda u Oracle bazama podataka. To u praksi znači da omogućava razvoj, održavanje i izvršavanje unit testova za PL/SQL procedura, funkcija, paketa i ostalog PL/SQL koda. Takođe, utPLSQL framework omogućava programerima da pišu testove koji proveravaju ispravnost funkcionalnosti njihovog koda.  

Zašto je utPLSQL testing framework važan za Oracle PL/SQL razvoj

utPLSQL test framework je ključan za razvoj Oracle PL/SQL koda zato što:

  • Automatizovani testovi pomažu u otkrivanju grešaka rano u razvoju, što smanjuje rizik od grešaka u produkciji, kao i brže prilagođavanje i iteracije.  
  • Kontinuirano testiranje osigurava da nove promene ne uvode regresije ili neplanirane greške.
  • Testovi služe kao živa dokumentacija koja opisuje očekivano ponašanje sistema.
  • S obzirom na to da su funkcionalnosti pokrivene testovima, lakše je refaktorisati i optimizovati kod bez straha od uvođenja novih grešaka.
  • Jasno definisani testovi omogućavaju svim članovima tima da bolje razumeju funkcionalnosti i očekivanja od koda.

Instalacija i podešavanje

Prvi korak je preuzimanje utPLSQL sa zvaničnog GitHub repozitorijuma. Framework je otvorenog koda i besplatno dostupan. Možete ga preuzeti ovde.

Nakon preuzimanja, instalacija je prilično jednostavna. Evo koraka kako to uraditi:

  1. Prijavite se u Oracle bazu podataka kao korisnik sa dovoljnim privilegijama.
  2. Pokrenite skriptu za instalaciju koju ste preuzeli sa GitHub-a.
  3. Proverite instalaciju pokretanjem nekoliko osnovnih testova.

Nakon instalacije, potrebno je pravilno konfigurirati okruženje. Ovo uključuje kreiranje posebnih korisnika za testiranje, dodeljivanje neophodnih privilegija i podešavanje okruženja za automatsko izvršavanje testova.

Osnove korišćenja utPLSQL

Kreiranje test slučajeva

Struktura test slučaja u utPLSQL: utPLSQL test slučajevi se pišu kao PL/SQL procedure ili funkcije unutar specifičnih test paketa. Svaki test slučaj proverava pojedinačnu funkcionalnost i koristi ut.expect metode za validaciju rezultata.

Pisanje osnovnih testova: Pisanje osnovnih testova uključuje definisanje ulaznih podataka, pozivanje testirane funkcije i korišćenje ut.expect za proveru rezultata.

Na primer:

Izvršavanje testova

Kako pokrenuti testove: Testovi se mogu pokrenuti pomoću utPLSQL komandnog interfejsa ili SQL*Plus.

Na primer:

Pregled rezultata i analiza izlaza: Rezultati testiranja se prikazuju u formatiranom izveštaju koji prikazuje koje su testove prošli i koje nisu, zajedno sa detaljima o greškama i izuzecima. Ovi rezultati pomažu u analizi i identifikaciji problema u kodu.

Organizacija testova

Organizovanje testova po paketima: Testovi se organizuju u pakete koji grupišu srodne testove. Ovo omogućava lakše upravljanje i održavanje testova.

Grupisanje testova za bolje upravljanje: Testove možete grupisati prema funkcionalnostima ili modulima aplikacije. Na taj način, možete selektivno pokretati određene grupe testova u zavisnosti od toga šta trenutno testirate, čime se poboljšava efikasnost i preglednost testnog okruženja.

Šta su dobre prakse kod utPLSQL testiranja

Implementacija dobrih praksi u utPLSQL testiranju može značajno unaprediti efikasnost i pouzdanost koda.  

Prva i najvažnija praksa je pisanje testova paralelno sa razvojem koda. Ovo omogućava da se svaka nova funkcionalnost odmah testira, čime se smanjuje rizik od uvlačenja grešaka.  

Kreiranje modularnih testova je sledeći korak; organizovanje testova po paketima i modulima olakšava njihovo upravljanje i održavanje.  

Mocking and stubing

Mocking i stubing tehnike se koriste za simulaciju različitih scenarija i eksternih zavisnosti, omogućavajući izolovano testiranje delova sistema bez potrebe za stvarnim podacima ili povezanostima.  

Korisćenje mock objekata

Mock objekti su veštačke zamene za stvarne komponente koje se koriste u testiranju kako bi se izolovao deo sistema koji se testira. U utPLSQL testiranju, mock objekti se koriste za simulaciju baze podataka, API poziva ili bilo kojih drugih eksternih resursa.

  1. Kreiranje mock objekata:

Mock objekti se kreiraju pomoću specifičnih funkcija ili procedura koje simuliraju ponašanje stvarnih komponenti. Na primer, ako imate funkciju koja poziva eksterni API, možete kreirati mock funkciju koja vraća unapred definisane odgovore.

Primer:

  1. Zamena stvarnih funkcija sa mockovima:

U testu, možete zameniti stvarne funkcije sa mockovima tako što ćete ih preusmeriti na mock verzije. Ovo se često radi u početnim delovima testova i vraća na originalne funkcije nakon završetka testa.

Primer:

Kako simulirati razne scenarije

Simulacija različitih scenarija je ključna za pokrivanje svih mogućih situacija koje vaša aplikacija može susresti u produkciji. To uključuje simulaciju normalnih uslova, grešaka, izuzetaka i različitih vrsta podataka.

  1. Normalni uslovi:

Testirajte funkcionalnost pod normalnim uslovima sa validnim podacima.

Primer:

  1. Greške i izuzeci:

Simulirajte scenarije gde funkcije vraćaju greške ili bacaju izuzetke kako biste osigurali da vaš kod pravilno hendluje takve situacije.

Primer:

  1. Različiti tipovi podataka:

Testirajte funkcionalnost sa različitim vrstama podataka kako biste osigurali da sistem pravilno obrađuje sve moguće ulaze.

Primer:

  1. Ekstremni Uslovi:

Testirajte kako vaš sistem reaguje na ekstremne uslove kao što su vrlo veliki ili vrlo mali brojevi, ili vrlo dugi tekstovi.

Primer:

Kombinovanjem ovih tehnika, mogu se kreirati sveobuhvatni testovi koji osiguravaju da aplikacija pravilno funkcioniše u svim mogućim scenarijima, što značajno povećava pouzdanost i kvalitet koda.

Redovno pokretanje testova kroz integraciju sa CI/CD alatima kao što su Jenkins ili GitLab CI osigurava kontinuiranu proveru i validaciju koda.  

Dokumentovanje test slučajeva je takođe ključna praksa, jer detaljno opisani testovi služe kao dodatna dokumentacija za kod, pomažući u razumevanju funkcionalnosti i budućem održavanju. Primena ovih praksi ne samo da poboljšava kvalitet koda, već i čini razvojni proces bržim i efikasnijim.

Uobičajene greške u utPLSQL testiranju i kako ih izbeći

Korišćenje utPLSQL za testiranje PL/SQL koda može značajno poboljšati kvalitet koda, ali kao i kod svake tehnologije, postoje uobičajene greške koje se mogu javiti. Razumevanje ovih grešaka i znanje kako ih izbeći može vam pomoći da maksimalno iskoristite potencijal utPLSQL frameworka.

1. Nedovoljno pokriveni testovi

Greška: Pisanje testova koji ne pokrivaju sve moguće scenarije upotrebe funkcionalnosti. Ovo može dovesti do toga da se greške otkriju tek u produkciji.

Kako izbeći: Uverite se da vaši testovi pokrivaju sve moguće ulazne vrednosti, uključujući granične slučajeve, ekstremne vrednosti i nepravilne ulaze. Koristite tehnike kao što su ekvivalencijske klase i analizu graničnih vrednosti da identifikujete sve relevantne scenarije.

2. Loše organizovani testovi

Greška: Testovi su razbacani po projektu bez jasne strukture, što otežava njihovo održavanje i razumevanje.

Kako izbeći: Organizujte testove u logičke celine koristeći pakete. Grupisanje testova prema funkcionalnostima ili modulima aplikacije omogućava lakše upravljanje

održavanje. Na primer, kreirajte paket TEST_USER_FUNCTIONS za sve testove vezane za funkcionalnosti korisnika.

3. Ignorisanje izuzetaka i grešaka

Greška: Ne obraćanje pažnje na izuzetke i greške koje se mogu javiti tokom izvršavanja koda.

Kako izbeći: Pisanje testova koji eksplicitno testiraju kako se vaš kod ponaša u slučaju grešaka i izuzetaka. Simulirajte različite greške i proverite da li se pravilno hendluju. Na primer:

4. Oslanjanje na stvarne podatke

Greška: Testiranje koristeći stvarne podatke iz produkcije može dovesti do nekonzistentnih rezultata i problema sa privatnošću podataka.

Kako izbeći: Koristite mock objekte i testne podatke koji su dizajnirani da pokriju sve scenarije. Mocking omogućava izolaciju testova i garantuje da su podaci konzistentni i kontrolisani.

5. Neautomatizovani testovi

Greška: Ručno pokretanje testova može biti dugotrajno i podložno greškama, posebno u velikim projektima.

Kako izbeći: Integrisanje testova u CI/CD pipeline omogućava automatsko pokretanje testova pri svakom commit-u. Alati kao što su Jenkins, GitLab CI ili GitHub Actions mogu pomoći u automatizaciji ovog procesa.

6. Nepotpuna validacija rezultata

Greška: Proveravanje samo delimičnih rezultata, što može dovesti do previda grešaka.

Kako izbeći: Validirajte sve relevantne aspekte rezultata. Koristite utPLSQL metode za očekivanje različitih tipova rezultata, uključujući numeričke vrednosti, tekstualne podatke, kursore i izuzetke. Na primer:

7. Pisanje testova bez dokumentacije

Greška: Nedokumentovani testovi otežavaju razumevanje šta se tačno testira i zašto, posebno za nove članove tima.

Kako izbeći: Dokumentujte svoje testove jasno i koncizno. Koristite komentare da objasnite svrhu svakog testa, ulazne podatke i očekivane rezultate. Na primer:

8. Neadekvatna upotreba mock i stub objekata

Greška: Nepravilno korišćenje mock i stub objekata može dovesti do netačnih rezultata testiranja.

Kako izbeći: Uverite se da su mock objekti pravilno definisani i da tačno simuliraju ponašanje stvarnih komponenti. Redovno proveravajte i ažurirajte mock objekte kako bi bili u skladu sa promenama u stvarnom kodu.

Primena ovih smernica pomoći će vam da izbegnete uobičajene greške u utPLSQL testiranju i da osigurate visok kvalitet vašeg PL/SQL koda.

Primeri iz prakse

Studija slučaja: Finansijska aplikacija

Jedna od naših klijenata, koja se bavi razvojem finansijskih aplikacija, odlučila je da implementira utPLSQL radi poboljšanja kvaliteta svog PL/SQL koda. Pre utPLSQL, ručno testiranje je bilo spor proces i često je dovodilo do previda.

Izazovi:

  • Složenost finansijskih transakcija i algoritama.
  • Veliki broj funkcionalnosti koje treba testirati.

Rešenja:

  • Automatizacija Testiranja: Kreiranjem automatizovanih testova za sve ključne funkcionalnosti, kpmpanija je uspela da smanji vreme potrebno za testiranje.  
  • Mocking: Simulacijom bankovnih transakcija i eksterne komunikacije, testiranje je postalo efikasnije i pouzdanije. Mocking omogućava brže i fleksibilnije testiranje, jer nije potrebno kodiranje koje bi oduzelo dodatno vreme.  

Rezultati:

  • Smanjenje broja grešaka u produkciji.
  • Brže otkrivanje i ispravljanje grešaka tokom razvoja.
  • Povećana efikasnost tima za testiranje.

Zanimljivosti

Integracija sa alatima za kontrolu verzija

utPLSQL se može lako integrisati sa alatima kao što su Git, omogućavajući verzionisanje testova zajedno sa kodom. Ovo je korisno za praćenje promena i istorije testova.

Community podrška

Kao otvoreni projekat, utPLSQL ima jaku zajednicu koja kontinuirano doprinosi njegovom razvoju. Na raspolaganju su brojni resursi, forumi i dokumentacija za podršku korisnicima.

Brz razvoj testova

Zahvaljujući jednostavnosti i fleksibilnosti frameworka, razvoj testova je brz i efikasan. Novi korisnici mogu brzo savladati osnove i početi sa kreiranjem testova.

Zaključak

Korišćenje utPLSQL test frameworka donosi brojne benefite za Oracle PL/SQL razvoj. Automatizacija testiranja, poboljšanje kvaliteta koda, smanjenje grešaka u produkciji i povećana efikasnost samo su neki od razloga zašto bi svaki PL/SQL razvojni tim trebao da razmotri implementaciju ovog alata.

A kako izgleda rad u PL/SQL timu švajcarsku za Fintech kompaniju koja ima jednu od najvećih Oracle baza na svetu pročitajte ovde.

About the author
As an IT Recrutment Partner, Milos is responsible for attracting and managing the best talents at Enlight Engineering.
Subscribe To Our Newsletter - Bnkly X Webflow Template

Subscribe to our newsletter

Stay informed about the nearshoring and software engineering trends shaping the future of your industry.

Thanks for joining our newsletter
Oops! Something went wrong while submitting the form.
Sign me up

Be part of our team

Apply for the position of PL/SQL developer

Thanks for joining our newsletter
Oops! Something went wrong while submitting the form.
Apply Now

Feel free to contact us

Visit our Career page

Enlight logo