Tesztelő- és hibakereső eszközök

Debugging

A "debugging" fogalma általában hibakeresést jelent. A legenda szerint az első szoftverhibát egy bogár által okozott zárlat okozta, innen eredeztethető az, hogy a szoftverhibát angolul bug-nak hívják. Magyarra nem szokás bogárra fordítani.

Viszont amikor egy fejlesztő azt mondja, hogy "debuggol", akkor nem általában hibát keres, hanem annak egy speciális módszerét alkalmazza: a futás során megállítja a kódot, és megvizsgálja a részleteket. Részletesebben, a következő lehetőségek vannak:

  • A program lépésről lépésre történő végrehajtása.
  • Egy függvényhívásnál általában el lehet dönteni, hogy bele szeretnénk-e lépni, vagy hagyjuk egyben lefutni, és az eredeti függvény következő lépését szeretnénk végrehajtani.
  • Többnyire dönthetünk úgy is, hogy kilépünk az adott függvényből, és az ezt hívó következő utasítására ugrunk.
  • Adott a lehetőség a program normál futtatására.
  • Ún. töréspontokat (breakpoint) tudunk a kódba helyezni; futtatáskor ezeken a pontokon megáll a program.
  • A töréspont többnyire lehet feltételes is: megadhatunk egy feltételt, pl. egy változó adott értékét (pl. i == 5), és akkor áll meg adott ponton a futás, ha a feltétel igaz.
  • Meg tudjuk nézni a változók pillanatnyi értékét.
  • Módosítani is tudjuk a változók értékét.

Ahhoz, hogy ezt a műveletet végre tudjuk hajtani, ún. debug módban kell lefordítanunk a programot. Ezt nem célszerű üzemi körülmények között használni, mert lassúbb, mint az ún. release módban történő fordított változat. A modern integrált fejlesztő környezetek többsége kínál valamiféle debuggolási lehetőséget. A debuggolni kívánt programot indíthatjuk az integrált fejlesztő környezetből, vagy ha ez nem lehetséges, akkor onnan csatlakozhatunk is már debug módban futó rendszerre.

Lefedettség mérése

TODO: emma (unit test coverage)

GUI tesztelés

TODO: Selenium

API tesztelés

Webes alkalmazások fejlesztésekor igen gyakran szükség van arra, hogy - elsősorban tesztelési céllal - lekérdezéseket hajtsunk végre. Lássunk néhány lehetőséget!

  • Böngészők: nyilvánvaló választás lenne, a tesztet ezzel érdemes kezdenünk, de a nem HTTP protokollt gyakran nem kezeli, így más eszköz után kell néznünk.
  • cURL: parancssori alkalmazás, mellyel HTTP lekéréseket tudunk végrehajtani, pl. curl faragocsaba.hu. (Kiejtése hivatalosa 'körl', de lehetne úgy is, hogy 'szí júerel', ami némi áthallással azt is jelenten, hogy URL megtekintése.)
  • Putty, vagy tetszőleges más telnek kliens: letölthető innen https://www.putty.org/. Elsősorban távoli terminál elérésre lett kifejlesztve, viszont ha beállítjuk a portot, a kapcsolat típusát raw-ra állítjuk, akkor bármely weben elérhető szolgáltatás elérését tudjuk ellenőrizni segítségével.
  • Postman: önálló alkalmazásként (https://www.getpostman.com/) vagy Google Chrome beépülőként (https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=hu) is fel tudjuk telepíteni. Ahogy a nevéből is következtethetünk, elsősorban a HTTP POST hívások tesztelését könnyíti meg, ahol nemcsak lekérdezünk, hanem adatot is küldünk. De mindenféle HTTP kérés végrehajtására alkalmas, a fejlcé informácikat is be tudjuk állítnai.
  • Visual Studio Code REST client beépülő: a Visual Studio Code egy szövegszerkesztő, ami innen letölthető: https://code.visualstudio.com/. A REST kliens itt található: https://marketplace.visualstudio.com/items?itemName=humao.rest-client. Ha feltelepítjük, és beírunk egy URL-t, majd kijelöljük és Ctrl+Alt+R-t nyomunk, akkor végrehajtja a letöltést, és a HTTP protokoll háttér üzeneteit is megjeleníti.
  • SoapUI: web szolgáltatások tesztelésére alkalmas. Az open source verziót töltsük le a https://www.soapui.org/ oldalról.

HTML tesztelés

TODO: F12

Üzenetküldő rendszerek tesztelése

TODO: HermesJMS

Hálózat figyelés

A hálózati forgalom figyelésére ún. sniffer programokat tudunk használni. Ilyen például a WireSHark (https://www.wireshark.org/), mely számos protokollt ismer.

TODO: kipróbálni, rövid összefoglaló a használatáról

Profiling

TODO

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License