Artikulo

Ano ang Software Testing, ano ang ibig sabihin ng pagsubok sa software

Ang pagsubok sa software ay isang hanay ng mga proseso upang siyasatin, suriin, at tiyakin ang pagkakumpleto at kalidad ng software na isinulat para sa mga computer. Tinitiyak ang pagsunod sa isang produkto ng software na may paggalang sa mga kinakailangan sa regulasyon, negosyo, teknikal, functional at user.

Ang software testing, o software testing, ay kilala rin bilang application testing.

Ang pagsubok sa software ay pangunahing isang malaking proseso na binubuo ng ilang magkakaugnay na proseso. Ang pangunahing layunin ng pagsubok ng software ay upang sukatin ang integridad ng software kasama ang pagkakumpleto nito sa mga tuntunin ng mga pangunahing kinakailangan nito. Kasama sa pagsubok ng software ang pagsusuri at pagsubok ng software sa pamamagitan ng iba't ibang proseso ng pagsubok. Ang mga layunin ng mga prosesong ito ay maaaring kabilang ang:

Pag-verify ng pagkakumpleto ng software laban sa mga kinakailangan sa paggana/negosyo
Pagkilala sa mga bug/teknikal na error at pagtiyak na ang software ay walang error
Pagsusuri ng kakayahang magamit, pagganap, seguridad, lokalisasyon, pagiging tugma at pag-install
Ang nasubok na software ay dapat pumasa sa lahat ng mga pagsubok upang maging kumpleto o akma para sa paggamit. Ang ilan sa iba't ibang uri ng mga pamamaraan ng pagsubok ng software ay kinabibilangan ng pagsusuri sa puting kahon, pagsubok sa itim na kahon, at pagsubok sa kulay abong kahon. Higit pa rito, ang software ay maaaring masuri sa kabuuan, sa mga bahagi/unit o sa loob ng isang live na sistema.

Pagsubok sa Black Box

Ang Black Box Testing ay isang software testing technique na nakatutok sa pagsusuri sa functionality ng software, na may paggalang sa mga panloob na gawain ng system. Ang Black Box Testing ay binuo bilang isang paraan para sa pagsusuri ng mga kinakailangan ng customer, mga detalye at mga diskarte sa disenyo ng mataas na antas.

Ang isang Black Box Testing tester ay pumipili ng isang set ng valid at invalid na code execution at input condition at tumitingin para sa wastong mga tugon sa output.

Ang Black Box Testing ay kilala rin bilang functional testing o closed box testing.

Ang isang search engine ay isang simpleng halimbawa ng isang application na napapailalim sa black box testing. Ang isang user ng search engine ay nagpasok ng teksto sa search bar ng isang web browser. Ang search engine pagkatapos ay hahanapin at kinukuha ang mga resulta ng data ng user (output).

Ang mga benepisyo ng Black Box Testing ay kinabibilangan ng:

  • Simplicity: Pinapadali ang pagsubok ng mga high-level na proyekto at kumplikadong application
  • Magtipid ng mga mapagkukunan: Nakatuon ang mga tagasubok sa functionality ng software.
  • Mga Test Case: Tumutok sa paggana ng software upang mapadali ang mabilis na pag-unlad ng mga kaso ng pagsubok.
  • Nagbibigay ng flexibility: walang kinakailangang kaalaman sa programming.

Ang Black Box Testing ay mayroon ding ilang disadvantages, tulad ng sumusunod:

  • Maaaring maging mahirap ang test case/script design at maintenance dahil nakadepende ang mga tool sa Black Box Testing sa mga kilalang input.
  • Ang pakikipag-ugnayan sa graphical user interface (GUI) ay maaaring makasira sa mga test script.
  • Ang mga pagsubok ay nauukol lamang sa mga function ng application.

Pagsubok sa White Box

Sa panahon ng pagsusuri sa white-box, pinapatakbo ang code gamit ang mga paunang napiling halaga ng input upang patunayan ang mga paunang napiling halaga ng output. Ang white-box testing ay kadalasang nagsasangkot ng pagsulat ng stub code (piraso ng code na ginagamit upang palitan ang isang partikular na feature. Maaaring gayahin ng stub ang gawi ng umiiral na code, gaya ng pamamaraan sa isang remote na makina.) at gayundin ang mga driver.

Ang mga benepisyo ng pagsusuri sa white-box ay kinabibilangan ng:

  • Pinapagana ang muling paggamit ng mga kaso ng pagsubok at nag-aalok ng higit na katatagan
  • Pinapadali ang pag-optimize ng code
  • Pinapadali ang paghahanap ng mga lokasyon ng mga nakatagong error sa mga unang yugto ng pag-unlad
  • Pinapadali ang epektibong pagsubok sa aplikasyon
  • Alisin ang mga hindi kinakailangang linya ng code


Ang mga disadvantages ay kinabibilangan ng:

  • Nangangailangan ng karanasang tester na may kaalaman sa panloob na istraktura
  • tumatagal ng oras
  • Mataas na gastos
  • Ang pagpapatunay ng bit-of-code ay mahirap.
  • Kasama sa white-box testing ang unit testing, integration testing, at regression testing.

Pagsubok ng Unit

Ang Unit Test ay isang bahagi ng Software Development Life Cycle (SDLC) kung saan ang isang komprehensibong pamamaraan ng pagsubok ay indibidwal na inilalapat sa pinakamaliit na bahagi ng isang software program para sa nais na pagiging angkop o pag-uugali.


Ang unit test ay isang kalidad na pamamaraan ng pagsukat at pagsusuri na inilapat sa karamihan ng mga aktibidad sa pagbuo ng software ng enterprise. Sa pangkalahatan, sinusuri ng isang unit test kung gaano kahusay na umaayon ang software code sa pangkalahatang layunin ng software/application/program at kung paano nakakaapekto ang pagiging angkop nito sa iba pang maliliit na unit. Ang mga pagsubok sa unit ay maaaring gawin nang manu-mano - ng isa o higit pang mga developer - o sa pamamagitan ng isang awtomatikong solusyon sa software.

Sa panahon ng pagsubok, ang bawat yunit ay nakahiwalay sa pangunahing programa o interface. Karaniwang ginagawa ang mga unit test pagkatapos ng development at bago ang deployment, kaya pinapadali ang pagsasama at maagang pagtuklas ng problema. Ang laki o saklaw ng isang unit ay nag-iiba depende sa programming language, software application, at mga layunin ng pagsubok.

Pagganap na Pagsubok

Ang functional testing ay isang proseso ng pagsubok na ginagamit sa loob ng software development kung saan sinusuri ang software upang matiyak na sumusunod ito sa lahat ng kinakailangan. Ito ay isang paraan ng pagsuri sa software upang matiyak na mayroon itong lahat ng kinakailangang paggana na tinukoy sa mga kinakailangan sa paggana nito.


Pangunahing ginagamit ang functional testing upang i-verify na ang isang piraso ng software ay nagbibigay ng parehong output gaya ng kinakailangan ng end user o negosyo. Karaniwan, ang functional testing ay nagsasangkot ng pagsusuri at paghahambing ng bawat software function laban sa mga kinakailangan ng negosyo. Sinusubukan ang software sa pamamagitan ng pagbibigay dito ng ilang nauugnay na input upang masuri ang output upang makita kung paano ito tumutugma, nauugnay sa, o nag-iiba mula sa mga pangunahing kinakailangan nito. Higit pa rito, sinusuri din ng mga functional na pagsubok ang kakayahang magamit ng software, halimbawa, pagtiyak na gumagana ang mga function ng nabigasyon kung kinakailangan.

newsletter ng pagbabago
Huwag palampasin ang pinakamahalagang balita sa pagbabago. Mag-sign up upang matanggap ang mga ito sa pamamagitan ng email.

Pagsusuri ng regression

Ang regression testing ay isang uri ng software testing na ginagamit upang matukoy kung ang mga bagong problema ay resulta ng mga pagbabago sa software.

Bago mag-apply ng pagbabago, sinusuri ang isang programa. Pagkatapos mailapat ang isang pagbabago, muling susuriin ang programa sa mga piling lugar upang makita kung ang pagbabago ay lumikha ng mga bagong bug o problema, o kung ang aktwal na pagbabago ay natupad ang layunin nito.


Mahalaga ang pagsusuri ng regression para sa malalaking software application, dahil kadalasang mahirap malaman kung ang pagbabago ng isang bahagi ng problema ay lumikha ng bagong problema para sa ibang bahagi ng application. Halimbawa, ang pagbabago sa isang bank application loan form ay maaaring magresulta sa pagkabigo ng isang buwanang ulat ng transaksyon. Sa karamihan ng mga kaso, ang mga problema ay maaaring mukhang walang kaugnayan, ngunit maaari silang maging sanhi ng pagkabigo sa mga developer ng application.

Kasama sa iba pang mga sitwasyon na nangangailangan ng pagsusuri sa regression ang pagtukoy kung nakakamit ang ilang partikular na pagbabago sa isang nakatakdang layunin o pagsubok para sa mga bagong panganib na nauugnay sa mga isyu na muling lumalabas pagkatapos ng panahong walang mga isyu.

Pangunahing pinangangasiwaan ang modernong pagsubok ng regression sa pamamagitan ng mga espesyal na tool sa komersyal na pagsubok na kumukuha ng mga snapshot ng umiiral na software na pagkatapos ay ihahambing pagkatapos maglapat ng isang partikular na pagbabago. Halos imposible para sa mga tagasubok ng tao na gampanan ang parehong mga gawain nang kasinghusay ng mga automated na software tester. Ito ay totoo lalo na sa malalaki at kumplikadong software application sa loob ng malalaking IT environment gaya ng mga bangko, ospital, kumpanya ng pagmamanupaktura at malalaking retailer.

Pagsubok ng Stress

Ang stress testing ay tumutukoy sa pagsubok ng software o hardware upang matukoy kung ang pagganap nito ay kasiya-siya sa ilalim ng sukdulan at hindi kanais-nais na mga kondisyon, na maaaring mangyari bilang resulta ng mabigat na trapiko sa network, paglo-load ng proseso, underclocking, overclocking, at pinakamataas na pangangailangan sa paggamit ng mga mapagkukunan.

Karamihan sa mga system ay binuo sa pag-aakala ng mga normal na kondisyon ng operating. Samakatuwid, kahit na lumampas ang isang limitasyon, ang mga error ay bale-wala kung ang system ay nasubok sa stress sa panahon ng pag-unlad.


Ginagamit ang stress testing sa mga sumusunod na konteksto:

  • Software: Ang stress testing ay binibigyang-diin ang pagkakaroon at paghawak ng error sa ilalim ng napakabigat na pagkarga upang matiyak na ang software ay hindi mag-crash dahil sa hindi sapat na mga mapagkukunan. Nakatuon ang pagsubok sa stress ng software sa mga natukoy na transaksyon upang i-abort ang mga transaksyon, na labis na binibigyang diin sa panahon ng pagsubok, kahit na hindi na-load ang isang database. Ang proseso ng stress testing ay naglo-load ng mga kasabay na user na lampas sa normal na antas ng system upang mahanap ang pinakamahina na link sa system.
  • Hardware: Tinitiyak ng mga stress test ang katatagan sa mga normal na kapaligiran sa pag-compute.
  • Mga Website: Tinutukoy ng mga stress test ang mga limitasyon ng anumang functionality ng site.
  • CPU: Ang mga pagbabago tulad ng overvolting, undervolting, underlocking, at overlocking ay sinusuri upang matukoy kung kakayanin ng mga ito ang mabibigat na load sa pamamagitan ng pagpapatakbo ng isang CPU-intensive na program upang subukan ang mga pag-crash o pag-freeze ng system. Ang CPU stress test ay kilala rin bilang torture test.

Mga Awtomatikong Pagsusuri

Ang awtomatikong pagsubok (software test automation) ay isang diskarte sa pagsubok ng code na gumagamit ng mga espesyal na tool ng software na awtomatikong nagpapatakbo ng mga pagsubok at pagkatapos ay ihambing ang mga aktwal na resulta ng pagsubok sa mga inaasahang resulta.

Ang automated na pagsubok ay may mahalagang papel sa Continuous Delivery (CD), Continuous Integration (CI), DevOps, at DevSecOps. Ang mga pangunahing benepisyo ng awtomatikong pagsubok ay kinabibilangan ng:

  • Ang awtomatikong pagsubok ay nakakatipid ng oras at pera ng mga developer sa pamamagitan ng paggawa ng proseso ng pagsubok na mas mahusay.
  • Natutukoy ng mga automated na pagsubok ang mga error nang mas mahusay kaysa sa mga manu-manong pagsubok.
  • Kapag ang mga pagsubok ay awtomatiko, maraming mga tool sa pagsubok ang maaaring ipatupad nang magkatulad.


Sa pag-develop ng software, lalong kapaki-pakinabang na magsagawa ng mga automated na pagsubok sa panahon ng proseso ng pagbuo upang matiyak na ang isang application ay libre mula sa mga error sa build at gumaganap ng nilalayon nitong function.

Ang paglalaan ng oras upang i-automate ang pagsubok ng software ay sa huli ay makakatipid ng oras ng mga developer sa pamamagitan ng pagbawas sa panganib na masira ng pagbabago ng code ang umiiral nang functionality.


Ang pagsubok ay isang napakahalagang yugto sa proseso ng pag-unlad. Tinitiyak na ang lahat ng mga bug ay naayos at ang produkto, software o hardware, ay gumaganap ayon sa nilalayon o mas malapit sa target na pagganap nito hangga't maaari. Ang automated na pagsubok, sa halip na manu-manong pagsubok, ay mahalaga upang patuloy na makapaghatid ng cost-effective na software na nakakatugon sa mga pangangailangan ng user sa isang napapanahong paraan na may kaunting mga depekto.

Mga uri ng mga awtomatikong pagsubok na ginagamit sa pagbuo ng software
  • Pagsubok sa unit: Subukan ang isang mababang antas na programa sa isang nakahiwalay na kapaligiran bago i-verify ang pagsasama nito sa iba pang mga unit.
  • Pagsusuri sa Pagsasama: Ang mga pagsubok sa unit at iba pang bahagi ng aplikasyon ay sinusuri bilang isang pinagsamang entity.
  • Mga functional na pagsubok: Suriin kung ang isang software system ay kumikilos ayon sa nararapat.
  • Pagsubok sa Pagganap: Suriin ang katatagan ng application sa ilalim ng mas mataas kaysa sa inaasahang pagkarga. Ang mga pagsubok sa pagganap ay madalas na nagpapakita ng mga bottleneck.
  • Smoke Test: Tinutukoy kung ang isang build ay sapat na stable upang magpatuloy sa karagdagang pagsubok.
  • Pagsubok sa Browser: I-verify na ang mga bahagi ng software ay tugma sa iba't ibang mga browser.

Ginagawa pa rin ang manu-manong pagsubok sa iba't ibang oras sa panahon ng pag-develop, ngunit kadalasan ito ay ginagawa ng mga developer o mismo ng mga inhinyero ng hardware upang mabilis na makita kung ang mga pagbabagong ginawa nila ay may nais na epekto.

Ercole Palmeri

newsletter ng pagbabago
Huwag palampasin ang pinakamahalagang balita sa pagbabago. Mag-sign up upang matanggap ang mga ito sa pamamagitan ng email.

Kamakailang Mga Artikulo

Pumirma ang mga publisher at OpenAI ng mga kasunduan para i-regulate ang daloy ng impormasyong pinoproseso ng Artificial Intelligence

Noong nakaraang Lunes, inihayag ng Financial Times ang isang deal sa OpenAI. Nilisensyahan ng FT ang world-class na pamamahayag nito...

Abril 30 2024

Mga Online na Pagbabayad: Narito Kung Paano Ka Binabayaran ng Mga Serbisyo ng Streaming Magpakailanman

Milyun-milyong tao ang nagbabayad para sa mga serbisyo ng streaming, na nagbabayad ng buwanang bayad sa subscription. Karaniwang opinyon na ikaw ay…

Abril 29 2024

Itinatampok ng Veeam ang pinakakomprehensibong suporta para sa ransomware, mula sa proteksyon hanggang sa pagtugon at pagbawi

Ang Coveware ng Veeam ay patuloy na magbibigay ng mga serbisyo sa pagtugon sa insidente ng cyber extortion. Mag-aalok ang Coveware ng mga kakayahan sa forensics at remediation...

Abril 23 2024

Green and Digital Revolution: Kung Paano Binabago ng Predictive Maintenance ang Industriya ng Langis at Gas

Binabago ng predictive maintenance ang sektor ng langis at gas, na may makabago at proactive na diskarte sa pamamahala ng halaman.…

Abril 22 2024