RekenaarsSagteware

Toetsprogramme - die proses om foute op te spoor in 'n sagteware produk

By die ontwikkeling van sagteware is 'n belangrike deel van die produksieproses afhanklik van programtoetsing. Wat dit is en hoe hierdie aktiwiteit uitgevoer word, sal in hierdie artikel bespreek word.

Wat word toets genoem?

Dit word verstaan as die proses waartydens die sagteware uitgevoer word om die plekke van verkeerde kodefunksies te bepaal. Om die beste resultaat te behaal, word moeilike stelle insetdata opsetlik opgebou. Die hoofdoel van die ouditeur is om optimale geleenthede te skep vir die mislukking van die sagtewareproduk. Alhoewel soms die toetsing van die ontwikkelde program vereenvoudig kan word aan die normale prestasietoets en prestasie van funksies. Dit spaar tyd, maar word dikwels vergesel deur onbetroubare sagteware, ontevredenheid van gebruikers en so meer.

effektiwiteit

Hoe goed en vinnig foute het 'n beduidende impak op die koste en duur van sagteware-ontwikkeling van die vereiste gehalte. Dus, ten spyte van die feit dat toetsers 'n paar keer minder as programmeerders ontvang, kos die koste van hul dienste gewoonlik 30-40% van die koste van die hele projek. Dit is te wyte aan die aantal personeel, want die soek na 'n fout is 'n ongewone en nogal moeilike proses. Maar selfs as die sagteware 'n soliede aantal toetse geslaag het, is daar geen 100% waarborg dat daar geen foute sal wees nie. Dit is net nie bekend wanneer hulle sal manifesteer nie. Om testers aan te moedig om die soorte verifikasie te kies wat meer geneig is om 'n fout te vind, word verskillende maniere van motivering gebruik: beide morele en materiële.

Benadering tot werk

Die optimale situasie is wanneer verskeie meganismes geïmplementeer word om te verseker dat daar vanaf die begin geen foute in die sagteware is nie. Hiervoor is dit nodig om te sorg vir die korrekte argitektuurontwerp, presiese tegniese opdrag, en dit is ook belangrik om nie aanpassings aan te bring wanneer die projek reeds begin is nie. In hierdie geval word die toetser gekonfronteer met die taak om 'n klein aantal foute te vind en te bepaal wat in die finale uitslag bly. Dit sal beide tyd en geld bespaar.

Wat is 'n toets?

Dit is 'n belangrike aspek van die inspekteur se aktiwiteit, wat nodig is vir die suksesvolle opsporing van programkode tekorte. Hulle is nodig om die korrektheid van die aansoek te monitor. Wat is in die toets ingesluit? Dit bestaan uit hul aanvanklike data en waardes, wat as gevolglike (of intermediêre) verkry moet word. Ten einde probleme en teenstrydighede suksesvol te identifiseer, moet toetse opgestel word nadat die algoritme ontwikkel is, maar programmering het nie begin nie. En dit is wenslik om verskeie benaderings te gebruik wanneer die nodige data bereken word. In hierdie geval verhoog die waarskynlikheid van die opsporing van foute omdat dit moontlik is om die kode vanuit 'n ander oogpunt te ondersoek. Komplekse toetse moet verifikasie van die eksterne effekte van die finale sagteware produk, sowel as sy werk algoritmes. Spesiale belangstelling word verskaf deur beperkende en degenererende gevalle. Dus, in die praktyk van aktiwiteite met foute, kan dit dikwels bekend gemaak word dat die siklus een keer minder of meer as wat beplan is, uitgevoer word. Dit is ook belangrik om die rekenaar te toets, waardeur jy die ooreenstemming van die verlangde resultaat na verskillende masjiene kan verifieer. Dit is nodig om seker te maak dat die sagteware op alle rekenaars kan werk. Daarbenewens is die toets van die rekenaar waarop die ontwikkeling uitgevoer sal word, belangrik in die ontwikkeling van multi-platform ontwikkeling.

Die kuns om foute te vind

Programme is dikwels daarop gemik om met 'n groot verskeidenheid data te werk. Is dit regtig nodig om dit heeltemal te skep? Nee, dit is nie. Praktyk van "miniaturization" van die program het wydverspreid geword. In hierdie geval is daar 'n redelike afname in die hoeveelheid data in vergelyking met wat gebruik moet word. Kom ons kyk na hierdie voorbeeld: daar is 'n program waarin 'n matriks van 50x50 geskep word. Met ander woorde, jy moet 2500 duisend waardes handmatig invoer. Dit is natuurlik moontlik, maar dit sal baie lank neem. Maar om die prestasie te toets, ontvang die sagteware produk 'n matriks waarvan die dimensie 5x5 is. Om dit te doen, moet jy al 25 waardes invoer. As daar in hierdie geval 'n normale, foutvrye werk is, beteken dit dat alles in orde is. Alhoewel hier is valgate, wat bestaan uit die feit dat daar onder miniaturisasie 'n situasie voorkom, waardeur die veranderinge implisiet en tydelik verdwyn. Dit is ook baie skaars, maar dit gebeur ook dat daar nuwe foute gemaak word.

Gevolgde doelwitte

Die toets van die sagteware is nie 'n maklike taak nie, aangesien hierdie proses nie volledig geformaliseer kan word nie. Groot programme het feitlik nooit die nodige presiese standaard nie. Daarom word 'n aantal indirekte data gebruik, wat egter nie die kenmerke en funksies van sagteware-ontwikkelings wat ontfout word, ten volle weerspieël nie. En hulle moet so gekies word dat die korrekte resultaat bereken word, selfs voordat die sagtewareproduk getoets word. As dit nie vooraf gedoen word nie, is daar 'n versoek om alles omtrent te oorweeg, en as die masjienresultaat in die verwagte omvang val, dan sal 'n foutiewe besluit geneem word dat alles korrek is.

Gaan in verskillende omstandighede

Tipies vind die toets van programme plaas in die volumes wat benodig word vir 'n minimum validering van funksionaliteit binne 'n beperkte omvang. Aktiwiteite word uitgevoer met veranderings in parameters, sowel as die voorwaardes van hul werk. Die toetsproses kan in drie fases verdeel word:

  • Kyk in normale omstandighede. In hierdie geval word die basiese funksionaliteit van die ontwikkelde sagteware getoets. Die resultaat moet wees soos verwag.
  • Gaan in noodtoestande. In hierdie gevalle is dit bedoel om grensdata te verkry, wat die doeltreffendheid van die geskape sagteware negatief kan beïnvloed. As voorbeeld kan jy met baie groot of klein getalle werk, of in die algemeen 'n volledige gebrek aan inligting.
  • Uitsonderingstoets. Dit behels die gebruik van data wat buite verwerking lê. In sulke situasies is dit baie sleg wanneer die sagteware hulle as geskik vir berekening beskou en 'n waarskynlike resultaat lewer. Dit is nodig om te sorg dat daar in sulke gevalle 'n verwerping is van enige data wat nie korrek verwerk kan word nie. Dit is ook nodig om inligting oor hierdie gebruiker te verskaf

Sagteware Toetsing: Tipes

Dit is baie moeilik om sagteware sonder foute te skep. Dit duur baie tyd. Om 'n goeie produk te kry, word twee tipes toetse dikwels gebruik: "Alpha" en "Beta". Wat is hulle? Wanneer hulle sê oor alfa-toetsing, beteken dit toetsing, wat deur die personeel van ontwikkelaars in "laboratorium" -toestande uitgevoer word. Dit is die laaste stap in die toets voordat die program oorgedra word aan eindgebruikers. Daarom probeer die ontwikkelaars die maksimum aanskakel. Om die werking te vergemaklik, kan data aangemeld word om 'n kronologie van probleme en hul uitskakeling te skep. Beta-toets word verstaan as die lewering van sagteware aan 'n beperkte aantal gebruikers, sodat hulle die program kan ontgin en die gemiste foute kan identifiseer. 'N Kenmerk in hierdie geval is dat die sagteware dikwels nie vir die beoogde doel gebruik word nie. As gevolg hiervan sal foute opgespoor word waar niks voorheen gesien is nie. Dit is redelik normaal en dit hoef nie bekommerd te wees nie.

Voltooiing van toetsing

As die vorige stappe suksesvol afgehandel is, bly dit die aanvaardingstoets. In hierdie geval word dit 'n blote formaliteit. Tydens hierdie tjek is daar bevestiging dat geen verdere probleme gevind is nie en die sagteware na die mark vrygelaat kan word. Hoe meer belangrik die finale uitslag sal hê, des te meer die oudit moet uitgevoer word. Dit is nodig om te verseker dat alle fases suksesvol geslaag word. So lyk die toetsproses oor die algemeen. En laat ons nou gaan na die tegniese besonderhede en praat oor sulke nuttige gereedskap as toetsprogramme. Wat is hulle en in watter gevalle word hulle gebruik?

Outomatiese toetsing

Voorheen was daar geglo dat dinamiese analise van ontwikkelde sagteware - te swaar benadering is, wat ondoeltreffend is om foute op te spoor. Maar as gevolg van die toename in die kompleksiteit en omvang van programme, het die teenoorgestelde siening na vore getree. Outomatiese toets word gebruik waar die belangrikste prioriteite doeltreffendheid en veiligheid is. En hulle moet met enige inset data wees. As voorbeeld van programme waarvoor sulke toetse raadsaam is, kan die volgende aangehaal word: netwerkprotokolle, webbediener, sandboxing. Ons sal volgende monsters oorweeg wat gebruik kan word vir sulke aktiwiteite. As jy geïnteresseerd is in gratis toetsprogramme, dan is dit nogal moeilik om kwaliteitsgenote onder hulle te vind. Maar daar is gekapte "seerower" weergawes van goed beproefde projekte, so jy kan na hul dienste draai.

stortvloed

Hierdie instrument help om defekte op te spoor deur programme in die dinamiese analise af te toets. Dit versamel data en ontleed die uitvoerpad van die ontwikkelde voorwerp. Die toetser kry 'n stel insetdata wat 'n fout veroorsaak of die stel beskikbare beperkinge omseil. Weens die teenwoordigheid van 'n goeie verifikasie algoritme, word 'n groot aantal moontlike situasies ontwikkel. Die program ontvang 'n verskeidenheid insetdatastelle wat u toelaat om 'n beduidende aantal situasies te modelleer en toestande te skep waar die meeste waarskynlikheid van 'n mislukking voorkom. 'N Belangrike voordeel van die program is die gebruik van 'n heuristiese metriek. As daar 'n probleem is, is die aansoekfout hoogs waarskynlik. Maar hierdie program het beperkinge soos om slegs een gemerkte insetkas of -lêer te kontroleer. By die uitvoer van 'n operasie soos programtoetsing sal daar gedetailleerde inligting wees oor die teenwoordigheid van probleme met nulpunte, eindelose loops, verkeerde adresse of wanfunksies as gevolg van die gebruik van biblioteke. Dit is natuurlik nie 'n volledige lys van gedetecteerde foute, maar slegs hul algemene voorbeelde. Korrigeer die tekortkominge, helaas, moet ontwikkelaars wees - outomatiese gereedskap vir hierdie doeleindes is nie geskik nie.

Klee

Dit is 'n goeie program vir die toets van geheue. Dit kan ongeveer 50 stelseloproepe en 'n groot aantal virtuele prosesse onderskep, wat dus parallel en afsonderlik uitgevoer word. Maar in die algemeen soek die program nie na individuele verdagte plekke nie, maar verwerk die maksimum moontlike hoeveelheid kode en ontleed die gebruikte data-oordragpaaie. As gevolg hiervan hang die toetstyd van die program af van die grootte van die voorwerp. By tjek word die verbintenis gemaak op simboliese prosesse. Dit is een van die moontlike maniere om take te verrig in 'n program wat getoets word. As gevolg van die parallelle operasie is dit moontlik om 'n groot aantal variante van werking van die aansoek te ondersoek. Vir elke pad na afloop van die toets, is die stelle insetdata waaruit die toets begin het begin. Daar moet kennis geneem word dat toetsprogramme wat KLEE gebruik, help om 'n groot aantal afwykings te identifiseer, wat nie behoort te wees nie. Dit kan probleme vind selfs in toepassings wat vir dekades ontwikkel word.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 af.delachieve.com. Theme powered by WordPress.