unde credeți că ar putea fi casa bug-urilor software? Corect, în software. Dar unde anume?
de ce se întâmplă ca programele să nu funcționeze corect? Este foarte simplu-sunt create și folosite de oameni. Dacă utilizatorul face o greșeală, acest lucru poate duce la o problemă în funcționarea programului – este utilizat incorect, ceea ce înseamnă că este posibil să nu se comporte așa cum era de așteptat.
eroare umană
o eroare – este o acțiune umană care produce un rezultat incorect.
cu toate acestea, software-ul este proiectat și creat de oameni care pot (și fac) să facă greșeli. Aceasta înseamnă că există defecte în software-ul în sine. Ele sunt numite defecte sau bug-uri (ambele denumiri sunt echivalente). Amintiți-vă-software-ul este mai mult decât un cod.
defecte Software sau bug – uri
Defect, Bug-o deficiență a unei componente sau a unui sistem care poate duce la eșecul anumitor funcționalități. Un defect descoperit în timpul executării programului poate provoca o defecțiune a unei componente individuale sau a întregului sistem.
în timpul executării codului programului, pot apărea defecte care au fost încorporate chiar și în timpul scrierii sale: programul poate să nu facă ceea ce ar trebui sau invers – să facă ceea ce nu ar trebui și apare un accident.
eșecul sau blocarea Software-ului
eșecul sau blocarea este o discrepanță între rezultatul real al funcționării unei componente sau a unui sistem și rezultatul așteptat.
eșecul programului poate fi un indicator al prezenței unui defect în acesta.
astfel, bug-ul există atunci când trei condiții sunt îndeplinite simultan:
- rezultatul așteptat este cunoscut;
- rezultatul real este cunoscut;
- rezultatul real diferă de rezultatul așteptat.
este important să înțelegem că nu toate erorile provoacă accidente – unele dintre ele nu se pot manifesta în niciun fel și pot rămâne neobservate (sau apar doar în circumstanțe foarte specifice).
defecțiunile pot fi cauzate nu numai de defecte, ci și de condițiile de mediu: de exemplu, radiațiile, câmpurile electromagnetice sau poluarea pot afecta, de asemenea, funcționarea atât a software-ului, cât și a hardware-ului.
în total, există mai multe surse de defecte și, în consecință, eșecuri:
- erori în specificarea, proiectarea sau implementarea sistemului software;
- erori de utilizare a sistemului;
- condiții adverse de mediu;
- daune deliberate;
- consecințele potențiale ale erorilor, condițiilor sau acțiunilor intenționate anterioare.
defectele pot apărea la diferite niveluri, iar calitatea sistemului va depinde în mod direct de faptul dacă sunt corectate și când.
calitate-gradul în care setul de caracteristici inerente îndeplinește cerințele.
calitatea Software – ului este o colecție de caracteristici ale software-ului care reflectă capacitatea sa de a satisface nevoile declarate și implicite. Cerința este o nevoie sau o așteptare stabilită. De obicei presupus sau necesar.
în primul caz, totul a fost făcut corect și am primit un produs care îndeplinește pe deplin așteptările clientului și îndeplinește criteriile de calitate.
în al doilea caz, erorile au fost făcute deja în timpul codificării, ceea ce a dus la apariția defectelor produsului finit. Dar la acest nivel, bug-urile sunt destul de ușor de observat și remediat, deoarece vedem neconformitatea.
a treia opțiune este mai rea – aici s-au făcut greșeli în faza de proiectare a sistemului. Acest lucru poate fi observat numai prin efectuarea unei verificări amănunțite cu specificația. Corectarea acestor defecte nu este, de asemenea, ușoară – trebuie să reproiectați designul produsului.
în al patrulea caz, defectele au fost stabilite în etapa de formare a cerințelor; toate dezvoltările ulterioare și chiar testele au mers pe calea greșită inițial. În timpul testării, nu vom găsi erori – programul va trece toate testele, dar poate fi respins de client. Veți afla mai multe despre acest lucru în clasele noastre de asigurare a calității online și certificare.
în mod convențional, există cinci motive pentru apariția defectelor în codul programului.
- Lipsa comunicării în echipă. Deseori, cerințele de afaceri pur și simplu nu ajung la echipa de dezvoltare. Clientul are o înțelegere a modului în care dorește să vadă produsul finit, dar dacă ideea lor nu este explicată în mod corespunzător dezvoltatorilor și testerilor, rezultatul poate să nu fie așa cum era de așteptat. Cerințele ar trebui să fie disponibile și ușor de înțeles pentru toți participanții la procesul de dezvoltare software.
- complexitatea software-ului. Software-ul Modern constă din multe componente care sunt combinate în sisteme software complexe. Aplicațiile multi-threaded, client-server și arhitectura distribuită, bazele de date cu mai multe niveluri-programele devin din ce în ce mai greu de scris și de întreținut și cu atât mai dificilă devine sarcina programatorilor. Și cu cât munca este mai dificilă, cu atât mai multe greșeli poate face persoana care o efectuează.
- modificări ale cerințelor. Chiar și modificările minore ale cerințelor târzii în dezvoltare necesită multă muncă pentru a face modificări ale sistemului. Designul și arhitectura aplicației se schimbă, ceea ce, la rândul său, necesită modificări ale codului sursă și ale principiilor de interacțiune a modulelor software. Aceste schimbări continue sunt adesea sursa defectelor subtile. Cu toate acestea, cerințele în schimbare frecventă în afacerile moderne sunt mai mult regula decât excepția, astfel încât testarea continuă și controlul riscurilor în astfel de condiții sunt responsabilitatea directă a departamentului de asigurare a calității.
- Cod slab documentat. Este dificil să se mențină și să modifice Cod prost scrise și prost documentate. Multe companii au reguli speciale pentru scrierea și documentarea codului de către programatori. Deși în practică se întâmplă adesea ca dezvoltatorii să fie forțați să scrie programe rapid în primul rând, ceea ce afectează calitatea produsului.
- instrumente de dezvoltare Software. Renderele, bibliotecile, compilatoarele, generatoarele de scripturi și alte ajutoare de dezvoltare sunt, de asemenea, adesea programe slab performante și slab documentate care pot deveni o sursă de defecte ale produsului finit.