Ang mga malalaking kumpanya ng software, tulad ng Google, ay nagtagumpay sa kabila ng mga bugs na mababa ang priyoridad sa kanilang software, ngunit ang mga maliliit na kumpanya at mga startup ay walang ganitong luho.
Inaasahan ng mga customer na gawin ng mga produkto ang kanilang claim sa pahina ng mga benta, o sa dokumentasyon. Sa napakaraming mga opsyon na naroon, hindi sila mag-iisip nang dalawang beses tungkol sa jumping ship kung ang produkto ay nag-aaksaya ng kanilang oras at pera. Samakatuwid, ang software ay sumasailalim sa mahigpit na pagsusulit bago lumabas upang:
highlight ang mga pagkakaiba sa pagitan ng orihinal na konsepto at pangwakas na output
patunayan ang software na gumagana ang paraan ng mga designer na binalak
patunayan ang dulo ng produkto - dapat matugunan ng produkto ang mga kinakailangan sa customer
tasahin ang mga tampok at kalidad
Ang pagsusulit ay sumusunod sa isang mahigpit na plano. Binibigyang-optimize nito ang paggamit ng mga mahalagang mapagkukunan - mga kasanayan, oras, at pera, habang nagbibigay ng mga stakeholder na may mahalagang impormasyon upang dalhin ang produkto pasulong. Ang layunin ay upang mapadali ang isang mahusay na karanasan sa end-user sa pamamagitan ng isang malakas na programa ng kalidad ng katiyakan . Gamit ang mga stake na napakataas, ang mga tagapamahala ng QA ay ilan sa mga nangungunang kumikita sa tech.Testing ay karaniwang sumusunod sa mga hakbang na ito:
Kinakailangang pagtatasa kung saan binabalangkas ng mga tagapamahala ang isang plano upang maglagay ng angkop na diskarte sa pagsubok sa lugar.
Magsisimula ang mga pagsubok at magbunga ng pagsusuri.
Anumang mga depekto ay naitama, at ang software ay napupunta sa pamamagitan ng pagbabalik ng pagsubok - isang sistema upang masuri ang programa ay gumagana pa rin pagkatapos ng mga pagbabago.
Pagkatapos ng isang ulat sa pagsasara ng pagsubok pagkatapos ay itatala ang buong proseso at ang mga kinalabasan.
Mga Paraan ng Pagsubok ng Software
Narito ang iba't ibang mga pamamaraan na ginagamit upang hatulan ang pag-uugali at pagganap ng produkto.
Ang black box at white box testing ay ang dalawang pangunahing pamamaraan.
- Black box testing - Tinatawag din na functional o specification-based na pagsubok, ang pamamaraan na ito ay nakatuon sa output. Ang mga tagasubok ay hindi nababahala sa mga panloob na mekanismo. Suriin lamang nila ang software ay kung ano ang dapat na ito. Hindi kinakailangan ang kaalaman sa coding, at ang mga tagasubok ay gumana sa antas ng user interface.
- White box testing - Ang pamamaraang ito ay gumagamit ng coding know-how bilang bahagi ng pamamaraan ng pagsubok. Kapag ang isang produkto ay nabigo, ang mga tagasubok ay lumalalim sa code kung kinakailangan upang mahanap ang dahilan. Ang mga tagabuo ng software ay ginagawa ang kanilang sarili dahil matukoy nila kung paano dapat gumana ang produkto. Ang pagsusuri na batay sa istraktura at glass box ay iba pang mga pangalan para sa pamamaraang ito.
- Static testing - Sinusuri ng mga tagasuri ang code at dokumentasyon ng software ngunit hindi isinasagawa ang programa. Ang mga static na pagsusulit ay nagsisimula nang maaga sa pagpapaunlad ng produkto sa panahon ng proseso ng pag-verify.
- Dynamic na pagsubok - Ang software ay isinasagawa sa iba't ibang mga input, at ang mga tester ay naghahambing ng mga output na may inaasahang pag-uugali sa pamamaraang ito.
- Pagsusuri ng GUI - Ang mga pagsusulit ng GUI na mga katangian - pag-format ng teksto, mga kahon ng teksto, mga pindutan, mga listahan, layout, mga kulay, mga font, laki ng font, at iba pa. Ang pagsusulit ng GUI ay napipinsala, at ang mga third-party na kumpanya ay madalas na nagsasagawa ng gawain sa halip ng mga developer.
Mga antas ng pagsubok
Ang mga ito ay kinakailangan upang makilala ang mga lugar ng kahinaan at pagsasapawan sa bawat yugto ng ikot ng buhay ng pag-unlad ng software.
- Pagsubok ng unit - Mga tagasubok na subukan ang mga pangunahing mga bahagi ng code tulad ng mga klase, mga interface, at mga function / pamamaraan. Alam nila kung paano dapat tumugon ang kanilang code at maaaring gumawa ng mga pagsasaayos depende sa output.
- Pagsukat ng bahagi - Iba pang mga pangalan ay module o program testing. Ito ay katulad sa testing unit ngunit naglalaman ng isang mas mataas na antas ng pagsasama. Ang mga module ng software ay sinusuri para sa mga depekto upang i-verify ang kanilang mga indibidwal na function.
- Pagsasama ng Pagsasama - Kinikilala nito ang mga error kapag ang mga module ay isinama. Ang iba't ibang mga pagsusulit sa pagsasama ay nasa ibaba, itaas pababa, at nagaganap na pag-unlad.
- Pagsubok ng system - Mga bahagi ng isang proyekto ay nasubok nang buo sa iba't ibang mga kapaligiran sa pamamaraang ito. Nabibilang ito sa ilalim ng paraan ng itim na kahon at isa sa mga huling pagsubok sa proseso. Tinutukoy nito kung ang mga function ng system ay dapat na matugunan ang mga pangangailangan ng negosyo at gumagamit.
- Alpha testing - Internal kawani ay subukan ang software sa site ng developer sa isang kunwa o aktwal na kapaligiran. Pagkatapos nito, maiwasto ng mga developer ang mga bug at iba pang mga isyu.
- Pagsubok sa beta - Kilala bilang field testing pati na rin, sinusuri ng kliyente ang produkto sa kanilang sariling site sa mga tunay na kundisyon. Ang kliyente ay maaaring mag-alok ng isang grupo ng mga end-user ng pagkakataon na subukan ang software sa pamamagitan ng prerelease o beta na mga bersyon. Ang feedback sa mga posibleng pagpapabuti ay ipapadala sa developer.
- Pagsubok sa pagtanggap - Nasa ilalim din ng pagsusuri ng itim na kahon, ang mga pagsubok ng software ng client upang malaman kung ang taga-develop ay lumikha ng programa sa ninanais na mga pagtutukoy.
Mga uri ng pagsubok
Ang mga pagsubok na ito ay tumutuon sa mga tiyak na layunin.
- Pagsubok sa pag-install - Ang software test engineer at ang configuration manager ay nagsasagawa ng pagsusulit na ito upang matiyak na maaaring i-install at patakbuhin ng end-user ang programa. Sinasakop nito ang mga lugar tulad ng mga file sa pag-install, mga lokasyon sa pag-install, at mga pribilehiyo sa pamamahala.
- Development testing - Ito ay nagpapatupad ng isang hanay ng mga naka-synchronize na diskarte upang makita at maiwasan ang mga depekto. Kabilang dito ang static na code analysis, peer code reviews, traceability, at metrics analysis. Ang layunin ay upang mabawasan ang mga panganib at makatipid ng mga gastos.
- Pag-usad ng pagsubok - Karanasan ng gumagamit ay nasa ilalim ng spotlight sa pagsusulit na ito. Sinusukat nito kung gaano kahusay ang GUI at ang kadalian ng paggamit nito. Ang pagsusuri ng tseke ng katumpakan at kahusayan ng mga pag-andar at mga emosyonal na tugon ng mga paksa sa pagsusulit.
- Sanity testing - Ito ay nagpapahiwatig kung ang software ay nagkakahalaga ng oras at gastos upang magpatuloy sa karagdagang pagsubok. Masyadong maraming mga flaws at mas agresibo pagsusulit ay hindi sundin.
- Pagsubok sa usok - Ang pagsusuri sa usok ay nagpapakita ng mga pangunahing mga kabiguan na sapat na seryoso upang pigilan ang paglabas. Kapag ito ay isinasagawa sa isang bagong build, ito ay tinatawag na isang build verification test.
- Pagsusuri sa pagbabalik-balik - Kapag sumasailalim ang pagbabago ng system, sinusuri ng pagsusuri sa pagbabalik-tanaw ang hindi inaasahang pag-uugali. Tinutukoy nito ang masamang epekto sa mga module o mga bahagi.
- Mapangwasak na pagsubok - Ang mga tester ay nagpasok ng abnormal na mga entry at nakilala ang kakayahan ng software na pamahalaan ang hindi inaasahang input. Ito ay nagpapakita ng mga developer kung gaano mahusay ang programa sa pamamahala ng error.
- Pagsubok sa pag-recover - Kapag nabigo ang hardware o iba pang mga function, ipinapakita ng pagsusulit na ito kung gaano kahusay ang software na maaaring mabawi at magpatuloy sa operasyon.
- Automated testing - Ito ay gumaganap ng mga pag-andar na mahirap ipatupad nang manu-mano. Gumagamit ito ng partikular na software upang patakbuhin ang mga pagsubok at upang magbigay ng data sa aktwal na kumpara sa inaasahang resulta.
- Pagsubok sa Pagkatugma - Dapat na tumakbo ang software sa iba't ibang mga kapaligiran sa computing, kaya nagkakalkula ang pagiging tugma sa iba't ibang mga system. Halimbawa, ang software ay gumagana sa iba't ibang mga operating system at web browser?
- Pagganap ng pagsubok - Ito ay isang malalim na pagsubok na sinusuri ang pagganap ng software sa iba't ibang mga sitwasyon. Ang impormasyon tungkol sa pagtugon, katatagan, laang-gugulin ng mapagkukunan, at bilis ay natipon. Bukod dito, ang sub-test tulad ng dami, kapasidad, at spike testing ay may bahagi sa prosesong ito.
- Pagsubok sa seguridad - Sinusukat nito ang kakayahan ng software na protektahan ang seguridad ng mga gumagamit. Nangangahulugan ito ng mga pag-andar ng awtorisasyon, pagpapatunay, pagiging kompidensiyal, integridad, availability, at non-repudiation.
- Pagsubok sa pag-access - Hindi ito kapareho ng pagsubok ng usability. Tinutukoy nito ang lawak kung saan ang mga gumagamit ng magkakaibang kakayahan - kasama ang pag-aaral at pisikal na kapansanan, ay maaaring gumamit ng software.
- Internasyonalization at localization testing - Mga resulta ay nagpapakita kung paano ang software ay maaaring umangkop sa iba't ibang mga wika at panrehiyong pangangailangan. Kabilang dito ang pagdaragdag ng mga bahagi para sa mga tukoy na lokasyon at pagsasalin ng teksto.
Ang pagsusuri ng software ay isang mahalagang bahagi ng pagdadala ng isang produkto sa merkado. At walang tagasubok, ang malawak na hanay ng magagamit na software ay hindi umiiral. Maging isang sertipikadong software tester sa pamamagitan ng mga organisasyon tulad ng BCS, Ang Chartered Institute para sa IT, ISTQB® (International Software Testing Qualifications Board), at ASQ (dating American Society for Quality).