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