Pagina documente » Informatica, Matematica » Testarea aplicatiilor software. Studiu privind managementul procesului decizional

Despre lucrare

lucrare-licenta-testarea-aplicatiilor-software.-studiu-privind-managementul-procesului-decizional
Aceasta lucrare poate fi descarcata doar daca ai statut PREMIUM si are scop consultativ. Pentru a descarca aceasta lucrare trebuie sa fii utilizator inregistrat.
lucrare-licenta-testarea-aplicatiilor-software.-studiu-privind-managementul-procesului-decizional


Cuprins

CUPRINS
INTRODUCERE
1. ACTIVITATEA DE DEZVOLTARE SOFTWARE...4
2 . TESTARE DATE
2.1 Datele.7
2.2 Operatii pe date..............12
2.3 Calitatea datelor.............13
2.4 Certificarea datelor ........18
3. TESTARE SOFTWARE
3.1 Obiectivele testarii software...........21
3.2 Specializarea in testarea software .22
3.3 Economia testarii software.............23
3.4 Tipuri de testare software24
3.5 Metode si niveluri de testare software..........25
3.6 Relatia dintre nivele, tipuri si instrumentele de testare28
3.7 Testarea automata............29
3.7.1 Tipuri de testare automata..............31
3.7.2 Limitele testarii automate .............32
3.7.3 Tipuri de unelte pentru testarea automata.....32
3.7.4 Procesul testarii automate..............32
3.8 Comparatie intre testarea manuala si automata ...........33
4. WORKFLOW-UL PROCESULUI DECIZIONAL
4.1 Decizia si procesul decizional in management............42
4.2 Caracteristici fundamentale ale deciziei.......42
4.3 Elemente ale procesului decizional..............47
4.4 Decizia de grup48
4.5 IMM-urile si avantaje ale folosirii
softului procesului decizional in luarea deciziei...50
4.6 Workflow-ul procesului decizional..............51
4.7 Descrierea aplicatiei.......53
CONCLUZII
BIBLIOGRAFIE

EXTRAS DIN DOCUMENT

?

INTRODUCERE

Obiectivul lucrarii este de a enunta mai intai teoria care sta la baza testarii software, iar apoi, o incercare de exemplificare a principiilor de testare enuntate pe o aplicatie ce implementeaza un proces decizional.

Necesitatea acestei lucrari a fost determinata de:

? Dezvoltarea software de mare anvergura din ultimele decenii, acesta devenind o parte intrinseca a oricarei afaceri. Aproape orice afacere din orice domeniu conteaza pe aplicatii informatice in dezvoltarea, producerea, marketing-ul si suportul produselor si serviciilor sale.

? Procesul de detectare, localizare si rezolvare a defectelor care apar in cadrul aplicatiilor.

? Combinarea diferitelor tipuri de testare(testarea unitara, testarea integrala, testarea sistemului, teste de regresie si testare de acceptare) este folositoare in realizarea aplicatiilor software.

? Gasirea de modalitati riguroase de a realiza cea mai buna aplicatie software

Retelele de calculatoare au o extindere rapida intr-o multitudine de domenii cum ar fi sistemul bancar, administratia publica, alocarea temporara de resurse in hoteluri, rezervarea biletelor de avion, rezervarea biletelor de tren etc. Aplicatiile moderne iau in considerare accesul unui numar cat mai mare de utilizatori, mai ales de cand se prevede extinderea folosirii cardurilor si creste numarul personalelor care utilizeaza Internetul.

Testarea software este procesul cautarii erorilor in program, indiferent daca acestea au cauze logice sau fizice. Obiectivul principal al testarii software este gasirea erorilor, altfel spus, de a identifica neconcordanta dintre ceea ce este planificat sa efectueze aplicatia si ceea ce realizeaza in realitate. Testarea nu presupune identificarea cauzei erorilor si corectia acestora, acestea fiind activitati specifice depanarii. Activitatea de testare trebuie asociata cu fiecare pas in procesul de dezvoltare. Acest lucru permite descoperirea erorilor devreme in procesul de dezvoltare software avand drept consecinta costuri mai mici de corectie.

IMM-urile(Întreprinderile Mici si Mijlocii) , ca forme specifice de organizare a activitatii economice, sunt in mod direct implicate in procesul de transformare impus mediului socio-economic de explozia tehnologica a ultimului deceniu.

Daca in mod clasic, IMM-urile isi desfasoara activitatea in interiorul frontierelor nationale, deplasarea economica spre piata virtuala conduce la posiblitatea internationalizarii lor prin stabilirea cu mai multa usurinta a relatiilor de afaceri externe sau chiar prin cucerirea de piete externe.

Mijloace. Pentru realizarea aplicatiei s-au studiat caracteristicile produselor software existente, unul dintre ele, modulul de workflow implementat de Oracle, precum si documente referitoare la procesul decizional si la activitatea de testare software. S-a ales realizarea aplicatiei in mediul de dezvoltare Microsoft Visual Studio Express .NET 2005, prin utilizarea unui web service de interpretare a datelor necesare pentru trimiterea emailurilor, precum si de avansare a decizilor la fazele urmatoare, a serverului de date Microsft SqlServer 2005, in cazul sistemului de administrare a comenzilor.

Abordarea demonstreaza avantajele diverse oferite de instrumentele de dezvoltare existente la ora actuala pe piata si sustine metodologia de constructie a sistemelor software:

? Exploateaza la maxim structura hardware si software existenta

? Se potriveste modelului de business al beneficiarului

? Ofera scalabilitate astfel incat orice element sa poata fi imbuntatit daca este necesar

? Ofera interoperabilitate: toate componentele sa lucreze impreuna ca un tot unitar

? Ofera flexibilitate: orice componenta sau tehnologie noua sa poata fi cat mai usor integrata in sistem

? Ofera accesibilitate astfel incat solutia sa poata fi accesata, si de la distanta, cat si de pe platforme diferite de lucru

? Are cel mai bun cost pentru beneficiar, fiind indicata intreprinderilor mici si mijlocii

? Ofera posibilitatea de a lua decizii strategice in timp real

Urmarind o abordare tehnico-economica, lucrarea este fundamentata stiintific pe arhitectura a patru capitole. Gradat sunt tratate probleme legate de date si selectarea lor ca input-uri pentru procesul de testare, principalele tipuri si metode de testare software, urmand ca in final sa se exemplifice pe aplicatia de realizare a workflow-ului in cadrul procesului decizional.

1. ACTIVITATEA DE DEZVOLTARE SOFTWARE

Un moment hotarator in dezvoltarea industriei software poate fi urmarit inca din anul 1969, cand Departamentul de Justitie al Statelor Unite a fortat firma IBM sa separe software-ul dezvoltat de aceasta de hardware si i-a cerut sa vanda sau sa-si inchirieze produsele. Înaintea acestui moment, aproape toate sistemele de operare si aplicatiile software erau dezvoltate de manufacturieri de hardware, dominati de IBM sau de programatori din organizatiile care il foloseau. Dezvoltatorii de software, intre anii ’50 si ’60 lucrau independent sau in mici echipe in abordarea sarcinilor specifice, rezultand produse obisnuite, uzuale, fara prea multe complicatii. Insa, dupa regula impusa de guvern, s-a dezvoltat foarte mult piata produselor software, dezvoltatorii si inginerii software au trecut printr-o serie de paradigme in dezvoltare[Egan99]

In anii ’70, imbunatatirile capacitatilor de dezvoltare a dus la o necesitate a marilor companii de a folosi diferite activitati automatizate, ca procesarea informatiilor. Utilitare simple ca limbaje de programare si programe de debug au fost introduse in scopul ajutarii programatorului si de crestere a productivitatii acestuia. Introducerea calculatoarelor personale si procurarea acestora de catre programatorii din intreaga lume, dupa 1980 a accelerat cererea de programe software, intr-un mod extraordinar de rapid.

Abordarea istorica a procesului de dezvoltare software, care s-a axat pe specificatiile si constructia sistemului era bazata deseori pe Modelul Cascada, definit ca in figura urmatoare[AndBerg95].

Modelul in Cascada

Acest model arata cum este impartita dezvoltarea produsului software in functie de procesele respective, astfel: mai intai sunt analizate cerintele si problema in sine, apoi sunt desenate sistemele. Testarea se face in doua stadii: se testeaza functionalitatea de baza a programului in sine, iar in faza urmatoare se testeaza programul in functie de celelalte programe cu care poate acesta sa lucreze. Dezvoltarea se incheie cu operarea cu programul respectiv si mentenanta. Nu exista bucle decat intre starea curenta si cea precedenta sau urmatoarea stare. Aceste bucle de feedback de-a lungul intregului proces de dezvoltare software duce la determinarea partilor din aplicatie care pot fi refolosite. Acesta e atributul cheie in dezvoltarea software bazata pe componente(CBSD – Computer Based Software Development). Astfel in realizarea programelor nu se ia in considerare doar cerintele actuale doar un anumit modul, ci si capacitatea acestuia de a se integra si in alte posibile sisteme.

In anii ’60, ’70, dezvoltarea software era concentrata pe scrierea codului si testarea anumitor linii din cod. Se depunea putin efort in determinarea gradului de integrare a noilor module cu un sistem mai mare. Testarea era vazuta ca un rau necesar cu scopul de a ii demonstra utilizatorului final ca produsul mergea. Andersson si Bergstrand estimau cam 80% din timpul dedicat atunci dezvoltarii apartinea programarii in sine si testarii pe module(„unit testing”). Începand cu anii ’70, programatorii au inceput sa citeasca cerintele si sa analizeze in scopul proiectarii unui sistem eficient, acest lucru ajungand chiar si pana la 20% din timp. Ulterior, acestia au inceput sa aloce mai mult timp si resurse in integrarea diferitelor module ale aplicatiei si testarea acestora ca un sistem unitar, mai degraba decat pe module. Efortul depus in dezvoltarea cerintelor si analiza acestora, au crescut forte mult in importanta, ajungand ca in zilele de azi, mai mult de 40% din timp sa fie alocat fazei de definire si analiza a cerintelor. De asemenea, proiectarea a ajuns la un procent de 30%, deoarece atunci se poate stabili in ce masura un modul nou aparut poate fi reutilizat.

Abordarea istorica a dezvoltarii software.

Limbajele de programare reprezinta unul din principalele mijloace de comunicare om-masina, evolutia lor fiind nemijlocit legata de cea a calculatoarelor electronice, a caror era incepe in 1944. Primele calculatoare puteau fi programate numai in limbaj masina, dar, chiar la inceputul anilor ’50, se inregistreaza trecerea la programarea simbolica, prin aparitia limbajelor de asamblare caracterizate prin folosirea codurilor mnemonice pentru instructiuni si a adresarii simbolice a operanzilor. Dupa aparitia primului limbaj de nivel inalt, limbajul FORTRAN (1954), se observa o proliferare accelerata a limbajelor de programare. Într-o lista considerata exhaustiva la data respectiva (1969), J.E. Sammet identifica 120 de limbaje de programare cu o larga utilizare; trei ani mai tarziu, acelasi autor extindea aceasta lista la 170 [Dodescu et al., 1987]. În primii ani ai deceniului opt, un sondaj efectuat in S.U.A. identifica, la nivelul unui singur domeniu de activitate - sistemele informatice ale armatei americane - utilizarea a peste 450 de limbaje de programare sau dialecte ale unor limbaje.

Evolutia tehnicilor de programare determina realizarea unor produse program caracterizate prin complexitate ridicata si prin consumuri de resurse reduse. Activitatea programului devine o data cu eliminarile restrictiilor impuse de sistemele de calcul o activitate de alocare si nivelare a resurselor software.

Dintr-o multitudine de limbaje, medii de programare si biblioteci de programe trebuie alese si asamblate acele componente care conduc la produse program performante. Pentru efectuarea unei alegeri corespunzatoare, resursele trebuie cunoscute in cele mai mici detalii.