Ja jums kādreiz ir nācies atrast kļūdu savā kodā, tad jūs zināt, cik nomākta tā var būt. Šī neapmierinātība tikai palielinās, ja strādājat ar lielu kodu bāzi.
Testēšana ļauj pārbaudīt, vai koda rezultāti atbilst jūsu cerībām. Tādā veidā jūs varat viegli identificēt un novērst problēmu pirms lietojumprogrammas izvietošanas. Testēšana ne tikai palīdz ātrāk pamanīt koda kļūdas, bet arī liek jums rakstīt labu kodu.
1. Statiskā pārbaude
Statiskā pārbaude attiecas uz testiem, kas tiek izpildīti bez koda izpildes. Tas notiek, salīdzinot kodu ar iepriekš iestatītajiem kodēšanas noteikumiem. Visizplatītākie statiskās testēšanas veidi ietver plūšanu un tipa pārbaudi.
Linting ietver programmēšanas un stilistisku kļūdu koda pārbaudi. Linter analizē kodu un atzīmē iespējamās kļūdas. Šķērsošanas rīku piemēri ir EsLint, PyLint un CSSLint.
Tipa pārbaude ir mašīnrakstīšanas noteikumu un vērtību ierobežojumu ieviešanas process. Dažas programmēšanas valodas ir stingri drukātas, kas nozīmē, ka tās rada kļūdas, ja vērtības nav pareizi ievadītas.
Tomēr dažām valodām, piemēram, JavaScript, ir vāja rakstīšanas sistēma, un tās ir piedodošākas. Šajās valodās kļūdas ir grūti uztvert, un ir nepieciešama tipa pārbaudes bibliotēka. JavaScript gadījumā jūs varat izmantojiet TypeScript, lai ieviestu spēcīgu rakstīšanu.
Varat arī izmantot statiskās analīzes rīkus, lai automātiski analizētu kodu. Šie rīki pārbauda koda kvalitāti un ziņo par visām atklātajām problēmām. Statiskās analīzes rīku piemēri tirgū ir SonarQube, DeepSource un SpotBugs. Izvēloties statisko analizatoru, pārliecinieties, vai tas atbalsta jūsu programmēšanas valodu.
2. Vienību testi
Vienību testi pārbauda lietojumprogrammas mazākās pārbaudāmās daļas, lai noteiktu, vai tās darbojas, kā paredzēts. Varat rakstīt vienību testus funkcijām, moduļiem, objektiem utt.
Lai gan vienību testi var būt laikietilpīgi, tiem vajadzētu ietaupīt vairāk laika, nekā jūs tērējat lietojumprogrammas atkļūdošana pēc tam, kad esat uzrakstījis visu kodu.
Parasti vienības testēšana sastāv no četriem posmiem:
- Testu veidošana
- Pārbaudes pārbaude
- Baseling
- Testa izpilde.
Vienību testus varat rakstīt manuāli vai automatizēt, izmantojot vienību testēšanas sistēmu. Manuālā pārbaudē jums ir jāraksta kods, lai pārbaudītu vajadzīgo funkciju vai vienību, un pēc tam vēlāk izdzēsiet testēšanas kodu.
Ja izmantojat sistēmu, norādiet testējamo vienību un sagaidāmos rezultātus, pēc tam palaidiet testu. Pēc tam testēšanas sistēma reģistrētu nesekmīgos un nokārtotos testus. Parasti labāk ir izmantot ietvaru, jo tas ir ātrāks.
Rakstot vienības testu, pārliecinieties, ka testējamā vienība ir neatkarīga. Ja tas balstās uz ārējiem datiem, piemēram, mainīgajiem, varat izmantot izspēles. Izspēles aizstāj trūkstošos vienībā izmantotos datus.
Piemēram, ja testējat funkciju, kas balstās uz dati, kas iegūti no API, varat izveidot viltotu datu objektu testēšanas nolūkos.
3. Integrācijas testi
Integrācijas testi pārbauda, kā dažādi komponenti darbojas kopā. Tas atšķiras no vienības testiem, kas pārbauda neatkarīgus komponentus. Jūs rakstāt integrācijas testus pēc vienības testiem.
Integrācijas testi ir būtiski, jo tie nodrošina jūsu lietojumprogrammas loģikas atbilstību.
Piemēram, apsveriet divus moduļus: vienu, kas iegūst datus no API, un otru, kas tos analizē. Jūs vēlaties nodrošināt, lai jūsu kods iegūtu pareizos datus un pareizi tos analizētu.
Šeit parādās integrācijas pārbaude. Tas nodrošina, ka loģikas plūsmā no viena moduļa uz otru nav kļūdu.
4. Pilnīgi testi
Pilnīga testēšana pārbauda lietojumprogrammu plūsmu no galalietotāja viedokļa. Process pārbauda lietojumprogrammu no sākuma līdz beigām, jo lietotājs lietojumprogrammu izmantos. Šie testi nodrošina plašāku pārklājumu nekā vienības testi vai integrācijas testi.
Pilnīgi testi nosaka lietojumprogrammas atkarības, datu bāzes un ārējo komunikāciju. Tie pēc iespējas precīzāk atkārto reālās pasaules scenāriju.
Piemēram, pārbaudot reģistrēšanās veidlapu, pilnīga pārbaude pārbaudīs dažādus scenārijus, piemēram:
- Lietotājs, kas iesniedz gan e-pastu, gan paroli
- Lietotājs, kurš izmanto vāju paroli
- Lietotājs, kurš izmanto nederīgu e-pasta adresi
- Lietotājs, kas iesniedz tikai e-pastu
- Lietotājs, kurš iesniedz tikai paroli
Pilnīgie testi nodrošina, ka lietojumprogramma darbojas, kā paredzēts šajos scenārijos.
Rakstīšanas pārbaudījumi vs. Koda rakstīšana
Ir ļoti svarīgi pārbaudīt savu lietojumprogrammu izstrādes procesa sākumā. Lai gan visi šie testi ir būtiski, ir svarīgi atrast sev piemērotu līdzsvaru. Pretējā gadījumā jūs pavadīsit pārāk daudz laika, rakstot testus, nevis kodu.
Vienību pārbaude ir ļoti svarīga lielākajai daļai lietojumprogrammu, un, iespējams, vēlēsities tai veltīt pietiekami daudz laika. Kad esat veicis vienību testus, varat būt pārliecināts, ka jūsu lietojumprogrammas elementi darbojas pareizi.