Mga computerSoftware

Pamamaraan ng pagsubok ng software at ihambing ang mga ito. Testing pamamaraan ng "itim na kahon ng" sa pagsubok at ang paraan ng "puting kahon"

Testing software (TK) makilala gaps, pagkukulang at mga error sa code na kailangan upang maging direksiyon. Maaari rin itong tinukoy bilang ang proseso ng pagsusuri ng ang pag-andar at kawastuhan ng ang software sa tulong ng pag-aaral. Basic pamamaraan ng integration at testing ng mga aplikasyon ng software at matiyak ang kalidad ay upang subukan ang mga pagtutukoy, disenyo at coding, pagiging maaasahan pagtatasa, pagpapatunay at pagpapatunay.

pamamaraan

Ang pangunahing layunin ng software testing - kumpirmasyon ng kalidad ng software system sa pamamagitan ng sistematikong aplikasyon debugging ilalim ng kontroladong kondisyones upang matukoy ang kanilang pagiging kumpleto at katumpakan, pati na rin ang pagtuklas ng mga nakatagong mga error.

Ang mga paraan ng pag-verify (testing) mga programa ay maaaring nahahati sa static at dynamic.

Ang dating ay kinabibilangan ng impormal, pagsubaybay at teknikal na pagsusuri, inspeksyon, hakbang-hakbang na pagtatasa, pag-audit, pati na rin ang static data daloy pagtatasa at pamamahala.

Dynamic na pamamaraan ay ang mga:

  1. Puting kahon pagsubok. Ito ay isang detalyadong pag-aaral ng panloob na lohika at kaayusan ng programa. Ito ay kinakailangan sa kaalaman ng source code.
  2. Itim na kahon pagsubok. pamamaraan na ito ay hindi nangangailangan ng anumang kaalaman tungkol sa loob workings ng application. Isinasaalang-alang namin lamang ang pangunahing mga aspeto ng sistema, hindi na may kaugnayan sa o kaugnay sa isang ilang ng kanyang panloob na lohikal na istraktura.
  3. Kulay abong kahon paraan. Pinagsasama nito ang dalawang naunang approach. Pag-debug na may limitadong kaalaman ng panloob na paggana ng application ay pinagsama na may kaalaman sa mga pangunahing mga aspeto ng sistema.

transparent testing

Ang puting kahon paraan ng paggamit ng test script kontrolin istraktura ng mga pamamaraan na disenyo. pamamaraan na ito ay nagbibigay-daan upang ipakita ang mga error sa pagpapatupad, gaya ng mahinang pamamahala code na sistema sa pamamagitan ng pagsusuri ng isang bahagi ng panloob na workings ng software. Ang mga pagsubok na pamamaraan ay naaangkop sa pagsasama-sama, module at ang sistema antas. tester ay dapat magkaroon ng access sa source code at gamitin ito upang malaman kung aling mga unit behaves hindi naaangkop.

Programa sa pagsusulit sa pamamagitan ng puting-box ay may mga sumusunod na kalamangan:

  • Pinapayagan ito nito na tumuklas ng isang error sa nakatagong code sa pamamagitan ng pag-aalis ng hindi kinakailangang mga linya;
  • ang paggamit ng mga side-effects;
  • maximum coverage ay nakakamit sa pamamagitan ng pagsulat ng isang pagsubok script.

disadvantages:

  • high-cost proseso, na nangangailangan ng mga bihasang debugger;
  • maraming avenues mananatiling unexplored dahil masusing check ng lahat ng posibleng mga nakatagong mga error ay lubhang mahirap unawain;
  • ang ilan sa mga code ay pumasa hindi napapansin.

White kahon pagsubok ay minsan na sinasangguni na sa pamamagitan ng pagsubok ng isang transparent o bukas na kahon, istruktura, lohikal na pagsusuri, batay sa source code, at logic architecture.

Ang pangunahing varieties:

1) sa pagsubok ng daloy control - structural diskarte gamit ang program control daloy modelo at bilang favoring ng mas maraming mga simpleng paraan upang mas kaunting mga mas kumplikadong;

2) Ang mga sangay ng ay dinisenyo upang pag-aralan ang pag-debug sa bawat pagpipilian (tama o mali) ng bawat control operator, na kung saan din ay nagsasama ng isang pinagsamang solusyon;

3) testing sa mga pangunahing landas, na kung saan ay nagbibigay-daan sa tester upang magtatag ng lohikal kumplikado sukatan pamamaraan ng proyekto para sa isolating isang batayang hanay ng mga landas sa pagpapatupad;

4) check sa data stream - ang daloy control diskarte ng pananaliksik sa pamamagitan ng mga anotasyon count impormasyon tungkol sa mga ad at gamitin ang mga variable programa;

5) cycles ng pagsubok - ganap na nakatutok sa tamang operasyon ng cyclic proseso.

pag-uugali ng pag-debug

Itim na kahon pagsubok treats ang software bilang isang "itim na kahon" - impormasyon tungkol sa loob workings ng programa ay hindi mabibilang, at naka-check lamang ang pangunahing mga aspeto ng sistema. Sa kasong ito, ang mga testing ng mga pangangailangan upang malaman ang sistema ng architecture na walang access sa source code.

Bentahe ng diskarteng ito:

  • kahusayan para sa mga malalaking segment ng code segment;
  • kadalian ng pang-unawa tester;
  • user perspektibo ay malinaw na pinaghihiwalay mula sa mga pananaw developer (programmer at tester ay malayang ng bawat isa);
  • mas mabilis na paglikha ng mga pagsubok.

Testing software itim na kahon pamamaraan ay may mga sumusunod na disadvantages:

  • sa katunayan ginanap sa piling bilang ng mga kaso ng pagsubok, na nagreresulta sa limitadong coverage;
  • kakulangan ng isang malinaw na pagtutukoy mahirap na bumuo ng test script;
  • mababang kahusayan.

Iba pang pangalan para sa teknolohiyang ito - pag-uugali, non-transparent, functional testing at debugging paraan ng isang closed box.

Ang kategoryang ito ay maaaring kabilangan ng sumusunod na pamamaraan software testing:

1) katumbas ng partition, na maaaring mabawasan ang hanay ng test data bilang input software module data ay nasira down sa mga hiwalay na mga bahagi;

2) boundary halaga ng mga pag-aaral ay nakatutok sa pag-verify ng mga hangganan o matinding limitasyon halaga - ang minimum, maximum, at tipikal na mga halaga ng error;

3) fuzzing - ginagamit upang ipatupad ang paghahanap sa pamamagitan ng inputting error o Nasirang data poluiskazhennyh sa awtomatiko o semi-awtomatikong mode;

4) nagbibilang ng pananahilan - isang diskarte batay sa paglikha ng mga graphs at pagtukoy ng mga relasyon sa pagitan ng mga aksyon at mga dahilan nito: identity, pagsang-ayon, lohikal O at lohikal AT - ang apat na pangunahing mga character, pagpapahayag ng ang relasyon sa pagitan ng mga sanhi at epekto;

5) Pag-verify ng orthogonal array na inilalapat sa mga problema sa isang relatibong maliit na input area lampasan ang posibilidad ng malawakan pananaliksik;

6) pagsubok ang lahat ng mga pares - isang diskarte na kung saan ang isang hanay ng mga halaga ng pagsubok Binubuo ng lahat ng posibleng binary mga kumbinasyon ng bawat pares ng mga parameter ng input;

7) debugging estado transition - isang diskarte na kapaki-pakinabang para sa pagsusuri ng ang katayuan ng ang machine, pati na rin upang mag-navigate sa pamamagitan ng GUI user.

Itim na kahon pagsubok: Mga halimbawa

black-box pamamaraan ay batay sa mga detalye, dokumentasyon, at mga paglalarawan ng mga software interface o system. Bilang karagdagan, maaari mong gamitin ang mga modelo (pormal o impormal), na kumakatawan sa inaasahang pag-uugali ng software.

Karaniwan, ang pamamaraang ito ay ginagamit para sa pag-debug user interface at nangangailangan ng pakikipag-ugnayan sa mga aplikasyon sa pamamagitan ng pagpapasok ng isang koleksyon ng data at mga resulta - mula sa screen, mula sa mga ulat o printouts.

tester Ang, samakatuwid, nakikipag-ugnayan sa ang software sa pamamagitan ng inputting, sa pamamagitan ng kumikilos sa mga switch, mga pindutan o iba pang mga interface. Ang pagpili ng data input, ang pagkakasunud-sunod ng pangangasiwa o pagkakasunod-sunod ng mga aksyon ay maaaring humantong sa isang malaking kabuuang bilang ng mga kumbinasyon, tulad ng ipinapakita sa mga sumusunod na halimbawa.

Gaano karaming mga pagsusulit na kailangan upang gumawa ng upang suriin ang lahat ng mga posibleng halaga para sa mga 4 windows flag at isa-off field, i-set ang oras sa segundo? Sa unang tingin pagkalkula ay simple: 4 mga patlang na may dalawang posibleng mga estado - 24 = 16, na kung saan ay dapat na-multiply sa bilang ng mga posibleng mga posisyon 00-99, hal 1600 posibleng mga pagsubok.

Gayunman, ang kalkulasyong ito ay mali: Maaari naming matukoy na ang dalawang-point field ay maaari ring maglaman ng isang space, ibig sabihin, ito ay binubuo ng dalawang alphanumeric posisyon at maaaring kasama ang mga alphanumeric character, mga espesyal na character, puwang, atbp Kaya, kung .... ang sistema ay isang 16-bit computer, i-216 = 65536 isa para sa bawat posisyon sa nagreresultang 4294967296 kaso test na na-multiply sa 16 mga kumbinasyon ng mga flag na nagbibigay ng isang kabuuang 68,719,476 736. Kung nagsasagawa ang mga ito sa 1 test bawat segundo, ang kabuuang katuloy olzhitelnost testing ay 2 177.5 taon. Para sa 32 o 64-bit systems, ang tagal nang higit pa.

Samakatuwid mayroong isang pangangailangan upang mabawasan ang panahon na ito sa isang katanggap-tanggap na antas. Kaya, ang mga pamamaraan ay dapat na inilapat upang mabawasan ang bilang ng mga kaso sa pagsubok nang walang pagbabawas ng saklaw ng pagsubok.

pagpareho partitioning

Ang katumbas partition ay isang simpleng pamamaraan na iyon ay naaangkop para sa anumang mga variable na ay naroroon sa mga software, kung input o output halaga, simboliko, numeric, at iba pa. Ito ay batay sa mga prinsipyo na ang lahat ng mga data mula sa isang katumbas ng partition ay itinuturing sa parehong paraan at sa pamamagitan ng parehong mga tagubilin.

Sa panahon ng pagsubok, pumili ng isa na kinatawan ng bawat partikular na pagkapareho sa partisyon. Pinapayagan ka nito na sistematikong bawasan ang bilang ng mga posibleng mga kaso sa pagsubok nang walang pagkawala ng coverage ng mga utos at mga pag-andar.

Isa pang resulta ng partitioning ito ay upang mabawasan ang kombinatoryal na pagsabog sa pagitan ng iba't ibang mga variable at ang mga kaugnay na pagbabawas ng mga kaso ng pagsubok.

Halimbawa, sa (1 / x) 1/2 paggamit ng tatlong mga pagkakasunud-sunod ng data, tatlong katumbas partition:

1. Ang lahat ng positibong numero ay ginagamot sa parehong paraan at dapat bigyan ng tamang resulta.

2. Ang lahat ng mga negatibong numero ay hinahawakan sa parehong paraan na may parehong resulta. Ito ay hindi tama, dahil ang root ng isang negatibong numero ang nasa isip.

3. Zero panghahawakan hiwalay at ibigay ang error na "dibisyon ng zero". Ito ay isang seksyon na may isang solong halaga.

Sa gayon, nakikita natin ang tatlong natatanging mga seksyon, isa sa kung saan ay nabawasan sa isang solong halaga. May isang "tamang" na seksyon, na kung saan ay nagbibigay sa mga maaasahang resulta, at dalawang "mali" na may hindi tamang resulta.

hangganan halaga ng pagtatasa

Processing ng mga hanggahan ng ang katumbas partitioning maaaring gawin sa ibang paraan kaysa sa inaasahan. Pagsisiyasat ng mga limitasyon ng mga halaga - isang kilalang paraan ng pagtatasa ng pag-uugali ng software sa naturang lugar. pamamaraan na ito ay ginagawang posible na makilala ang naturang mga error:

  • hindi tamang paggamit ng pamanggit operator (<,>, =, ≠, ≥, ≤);
  • solong error;
  • mga problema sa mga siklo at iteration,
  • maling uri o laki ng mga variable na ginagamit para sa pag-iimbak ng impormasyon;
  • artipisyal na mga limitasyon na kaugnay sa uri ng data at mga variable.

translucent testing

kulay-abo na kahon na paraan ay nagdaragdag ang mga pagsubok coverage, maaari kang tumuon sa lahat ng mga mahirap na antas ng sistema sa pamamagitan ng isang kumbinasyon ng itim at puti na mga diskarte.

Paggamit ng diskarteng ito, ang tester para sa pag-unlad ng mga halaga ng pagsubok ay dapat magkaroon ng kaalaman ng mga panloob na istruktura ng data at algorithm. Mga halimbawa ng mga kulay-abo-box testing pamamaraan ay ang mga sumusunod:

  • arkitektura modelo;
  • Pinag-isang Modeling Language (UML);
  • estado modelo (may hangganan ng estado machine).

Sa ang paraan ng sa kulay abong kahon upang bumuo ng mga kaso ng pagsubok aral modules sa puti engineering code, at tunay na pagsubok ay ginanap sa interface ng itim na mga programa teknolohiya.

Ang mga pamamaraan sa pagsubok ay may mga sumusunod na kalamangan:

  • kumbinasyon ng mga pakinabang technician puti at itim na mga kahon;
  • Tester ay batay sa interface at pagganap na mga detalye, at hindi ang source code;
  • debugger ay maaaring gumawa ng mahusay na mga kaso ng pagsubok;
  • check ay ginawa mula sa punto ng view ng gumagamit, hindi ang taga-disenyo ng programa;
  • lumikha ng mga pasadyang pag-unlad pagsubok;
  • kawalang-kinikilingan.

disadvantages:

  • test coverage ay limitado dahil walang access sa source code;
  • ang pagiging kumplikado ng ang mga depekto sa mga aplikasyon ay ipinamamahagi;
  • maraming mga paraan mananatiling unexplored;
  • kung ang software developer ay inilunsad ang mga pagsubok, at pagkatapos ay sa karagdagang imbestigasyon ay maaaring maging labis.

Ang isa pang pangalan para sa kulay-abo na mga diskarte box - translucent debugging.

Kabilang sa kategoryang ito tulad pamamaraan ng pagsubok:

1) orthogonal array - ang paggamit ng isang subset ng lahat ng posibleng mga kumbinasyon;

2) matrix pag-debug gamit ang estado ng data ng programa;

3) umuurong inspeksyon na isinagawa sa bagong mga pagbabago sa mga software;

4) template pagsubok na pinag-aaralan ang disenyo at arkitektura ng isang mahusay na application.

Paghahambing ng software diskarte sa pagsubok

Ang paggamit ng mga dynamic na pamamaraan ay humantong sa isang kombinatoryal na pagsabog sa bilang ng mga pagsubok na kailangang ma-binuo, ipinatupad at natupad. Ang bawat pamamaraan ay dapat gamitin pragmatically, pagkuha ng mga limitasyon nito sa account.

Ang tanging tunay na paraan ay hindi umiiral, mayroong tanging ang ilang mas mahusay na naaangkop sa mga tiyak na konteksto. Structural engineering daan sa amin upang makahanap ng isang walang silbi o malisyosong code, ngunit ang mga ito ay mahirap unawain at hindi naaangkop sa mga malalaking mga programa. Mga Pamamaraan batay sa mga pagtutukoy - ang tanging mga bago na ay magagawang upang makilala ang nawawalang code, ngunit hindi nila maaaring makilala ang isang tagalabas. Ang ilang mga pamamaraan ay mas angkop para sa isang partikular na antas ng pagsubok, error uri o konteksto kaysa sa iba.

Sa ibaba ay ang mga pangunahing pagkakaiba sa pagitan ng tatlong mga dynamic na diskarte sa pagsubok - ay bibigyan ng isang paghahambing talahanayan sa pagitan ng tatlong mga paraan ng pag-debug software.

aspect

Ang itim na paraan ng kahon

Gray paraan box

Ang pamamaraan White-box

Availability ng impormasyon sa mga komposisyon ng programa

Sinusuri lamang ang pangunahing mga aspeto ng

Bahagyang kaalaman tungkol sa mga panloob na istraktura ng programa

Buong access sa source code

Degree ng pagkapira-piraso ng programa

mababa

sentral

mataas

Sino ang gumagawa ng pag-debug?

End user, testers at mga developer

End user, developer at debuggers

Mga Nag-develop at testers

base

Testing ay batay sa mga panlabas na mga emerhensiyang sitwasyon.

Diagram database, ang data daloy diagram, estado ng panloob na kaalaman ng algorithm at architecture

Ang panloob na aparato ay ganap na kamalayan

Ang antas ng coverage

Mas komprehensibong at ay nangangailangan ng isang minimum na ng oras

sentral

Potensyal na ang pinaka-komprehensibo. Madaliang gugulin

Data at panloob na mga hangganan

Debug lamang sa pamamagitan ng pagsubok at error

Maaaring i-check ang data domain at panloob na mga hangganan, kung ang mga ito ay kilala

Ang pinakamahusay na mga domain test data at panloob na mga hangganan

Pagiging angkop na pagsusuri algorithm

hindi

hindi

oo

pag-aautomat

Awtomatikong mga paraan ng software ng pagsubok ay mas pasimplehin ang proseso ng inspeksyon, nang walang kinalaman sa mga teknikal na kapaligiran at konteksto ng. Sila ay ginagamit sa dalawang mga kaso:

1) i-automate ang nakakapagod, paulit-ulit o maselan na gawain katulad ng file paghahambing sa ilang libong mga hilera upang ilabas ang oras para sa konsentrasyon ng tester mas mahalaga puntos;

2) para sa pagganap ng tracking o mga gawain na hindi maaaring madaling ginanap sa pamamagitan ng mga tao tulad ng pagganap ng pag-verify o pagtatasa na oras ng pagtugon na maaaring sinusukat sa hundredths ng isang segundo.

Test mga tool ay maaaring inuri sa iba't ibang paraan. Ang susunod na dibisyon ay batay sa mga gawain suportahan ang mga ito ay:

  • test management, kung saan kabilang ang pamamahala ng proyekto support, mga bersyon, mga configuration, panganib pagtatasa, pagsubok pagsubaybay, mga error, mga depekto, at pag-uulat tools;
  • mga kinakailangan sa pamamahala, na kasama ang mga kinakailangan ng imbakan at detalye, tingnan ang mga ito para sa pagiging kumpleto at kalabuan, ang kanilang mga prayoridad at ang traceability ng bawat pagsubok;
  • kritikal na pagsusuri at static na pagtatasa, kabilang ang daloy ng monitoring, at mga gawain, pag-record at imbakan ng mga komento, depekto detection at nakaplanong mga pagwawasto sa pamamahala ng mga link sa mga checklist at tuntunin, pagsubaybay sa komunikasyon pinagmulan dokumento at code static na pagtatasa sa tiktikan defects, na tinitiyak na ang pagsunod sa mga pamantayan ng pagsulat ng code, pagtatasa ng mga istraktura at mga dependency, pagkalkula ng ang sukatan parameter ng code at architecture. Bilang karagdagan, gamitin ang mga compiler, analyzers, generators at relasyon ng mga cross-reference;
  • pagmo-modelo, kung saan kabilang ang mga tool para sa pagmo-modelo ng pag-uugali ng negosyo at subukan ang mga modelo;
  • test unlad Tinitiyak ang pagbuo ng mga data inaasahan sa batayan ng mga kundisyon at user interface ng mga modelo at code, pamahalaan upang lumikha o baguhin ang mga file at mga database, messaging, data validation sa batayan ng mga patakaran ng management, statistical pagtatasa ng mga kundisyon at mga panganib;
  • isang kritikal na pagtingin sa pamamagitan ng pagpasok ng data sa pamamagitan ng isang graphical user interface, API, command line gamit comparators upang makatulong na makilala matagumpay at hindi matagumpay na pagsubok;
  • pag-debug kapaligiran na nagbibigay-daan sa iyo upang palitan ang mga nawawalang mga hardware o software, sa Vol. h. Simulation equipment batay sa tinutukoy output subset, terminal emulators, mga mobile phone at network kagamitan, kapaligiran para sa pagsusuri ng mga wika, operating system at hardware sa pamamagitan ng pagpapalit ng mga nawawalang mga bahagi driver, hindi makatotohanang modules, at iba pa, pati na rin ang mga tool para sa pagkuha at pagbabago ng OS humihiling ang CPU simulation limitasyon, RAM, ROM, o network .;
  • .. Ang isang paghahambing ng mga file ng data, database, i-check ang mga inaasahang resulta sa panahon at pagkatapos ng pagsubok ay kumpleto, kasama dynamic at batch paghahambing, Automatic "Oracles";
  • patong na sukatan para sa mga localization ng memory leaks at hindi tamang mismong control pag-uugali ng pagtatantya ng sistema sa ilalim ng simulate load pagbuo load ng mga aplikasyon, database, network o server sa isang makatotohanang sitwasyon ng paglago para sa pagsukat, pagsusuri at pag-verify ng mga mapagkukunan ng sistema ng ulat;
  • seguridad;
  • pagganap ng pagsubok, ng pag-load at dynamic na pagtatasa;
  • iba pang mga kasangkapan, sa Vol. h. i-check ang spelling at syntax, network ng seguridad, ang availability ng lahat ng mga pahina ng website at iba pa.

perspektibo

Sa pamamagitan ng pagbabago ng mga uso sa industriya ng software, ang proseso ng pag-debug ay maaring magbago din. May mga bagong paraan ng software ng pagsubok, tulad ng isang service-orientirovannae architecture (SOA), wireless na teknolohiya, mga serbisyo ng mobile, at iba pa. E., Nakarating na nagbukas ng mga bagong paraan ng testing software. Ang ilan sa mga pagbabago na inaasahan sa industriya sa susunod na ilang taon ay nakalista sa ibaba:

  • testers ay magbibigay ng isang magaan na modelo na developer ay magagawang upang suriin ang iyong code;
  • pag-unlad ng mga pamamaraan sa pagsubok, kabilang ang pagtingin at pagmomodelo programa sa isang maagang yugto, hindi matanggal ang marami sa mga contradictions;
  • pagkakaroon ng maramihang mga interceptions pagsubok ay paikliin ang oras ng error detection;
  • Static analyzer at detection ay nangangahulugan na mas malawak na ginamit;
  • ang paggamit ng mga matrices mineral, tulad ng coverage ng mga detalye, ang saklaw ng modelo at code coverage ay tutukoy sa pag-unlad ng mga proyekto;
  • kombinatoryal mga kasangkapan payagan testers upang matukoy ang priority lugar para sa pag-debug;
  • testers ay magbibigay ng isang mas intuitive at mahalagang mga serbisyo sa buong proseso ng software na pag-unlad;
  • debuggers ay maaaring lumikha ng mga kasangkapan at software testing pamamaraan na nakasulat sa at nakikipag-ugnayan sa iba't-ibang mga programming wika;
  • Pag-debug eksperto ay mas propesyonal sinanay.

Ay papalitan sa pamamagitan ng isang bagong negosyo-oriented na paraan ng software ng pagsubok, upang baguhin ang paraan ng pakikipag-ugnayan sa mga system at ang impormasyong ibinigay nila habang binabawasan ang panganib at pagtaas ng mga benepisyo sa mga pagbabago sa negosyo.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tl.atomiyme.com. Theme powered by WordPress.