duminică, 5 septembrie 2010

Testele de Regresie

Testarea de regresie reprezinta orice tip de testare software care încearcă să descopere erorile de software prin retestarea parţiala a unui program modificat. Prin intermediul testarii de regresie se urmareste asigurarea generală ca nu cumva erori suplimentare sa fie introduse în procesul de corectie a altor probleme.Acest tip de testare este de obicei folosit pentru a testa in mod eficient sistemul prin selectarea în mod sistematic a unei suite minime de teste necesare pentru a acoperi în mod adecvat schimbările efectuate. Metodele comune de testare de regresie includ rularea unor teste anterior executate urmata de verificarea erorilor stabilite anterior daca acestea au re-apărut ca urmare a ultimelor modificari facute asupra programului. Unul dintre principalele motive pentru realizarea testarii de regresie este că adesea pentru un programator este extrem de dificil să-si dea seama cum o schimbare într-o parte a software-ului va avea efecte în alte părţi ale software-ului.

Testarea de regresie este o măsură de control al calităţii menita să asigure următoarele două condiţii:
a) Codul nou modificat îndeplineşte cerinţele specificate.
b)Functionalitatea programului nu a fost afectată de schimbările facute pentru corectarea unei alte erori.
Mergând prin definiţie, testarea de regresie este un proces repetitiv. Prin urmare, majoritatea testelor ar fi mai potrivite pentru automatizare, astfel prin apelarea catorva iteratii costurile efective in realizarea procesului de testare s-ar reduce semnificativ în comparaţie cu procesul de testare manual.

In sprijinul automatizarii procesului de testare SAP a pus la dispozitia setul de instrumente eCATT(extended Computer Aided Test Tool).

Acesta poate fi descris ca un instrument automat de testare care permite crearea si execuţia unor teste funcţionale automate pentru majoritatea aplicaţiilor executate în SAP GUI pentru Windows şi SAP GUI pentru mediile Java. Ca şi alte instrumente de test, acesta funcţionează prin efectuarea unei înregistrări a aplicaţiei, pe care o puteţi apoi parametriza şi relua cu seturi diferite de valori de intrare. Puteţi testa comportamentul aplicaţiei citind şi testând valorile returnate de aplicaţie.

eCATT diferă de instrumentele externe prin aceea că oferă acces complet la serverul de aplicaţie şi la nivelele de bază de date ale sistemului, permiţându-vă să testaţi module de funcţie şi BAPI-uri, să efectuaţi verificări comparativ cu baza de date şi să interogaţi sau să simulaţi modificări la setările de customizare.

Obiecte eCATT

Configurare de test

Acest obiect conţine un set de referinţe la un script de test şi la câteva containere de date de test. O configurare de test conţine toate informaţiile necesare pentru execuţia unui test automat fără o intervenţa suplimentară a utilizatorului.

Separarea script-ului de test şi a datelor de test permite un grad considerabil de reutilizare.

Script de test

Acest obiect constă dintr-un script executabil şi o interfaţă pentru transferul datelor.

Container de date de test

Acest obiect cuprinde un set de parametri care pot fi întreţinuţi independent de script-ul de test. Parametrii pot fi de tip ABAP, structuri sau tabele.

Container de date de sistem

Acest obiect identifică instanţe ale sistemelor SAP. Poate fi întreţinut independent de script-ul de test. Acest element nu este utilizat în SAP Best Practices dar apare în ecranul iniţial eCATT.

Versiuni şi variante

Un script de test poate avea mai multe versiuni. Acesta permite implementări diferite pentru versiuni diferite. Containerele de date de test şi configurările de test pot avea variante. Variantele sunt seturi diferite de date.

Transport şi descărcare

Toate obiectele eCATT sunt obiecte de Repository, astfel că se pot utiliza instrumentele standard de transport SAP.

Puteţi de asemenea descărca un obiect eCATT într-un fişier, care poate fi importat ulterior în alt sistem.

BC Set-uri şi eCATT-uri

O modificare recentă în tehnologia eCATT permite BC Set-urilor să fie executate dintr-un eCATT. Această metodă permite o automatizare sporită a instalării şi customizării. Valorile de câmp variabile care erau înainte introduse într-o casetă de dialog în cursul executării activitatii (ca de exemplu cod companie, unitate logistică, şi aşa mai departe) pot fi acum întreţinute în fişiere de text create anterior instalării.

Execuţia procedurilor eCATT

Utilizare

Procedurile eCATT (extended Computer Aided Test Tool) permit crearea şi execuţia testelor funcţionale pentru procesele de afaceri în cadrul SAP Best Practices. Testul generează un jurnal care documentează procesul de test şi rezultatele.

Condiţii preliminare

Sistemul trebuie să se bazeze pe versiunea SAP Basis 6.40.

Procedură

1. Accesaţi tranzacţia selectând una dintre următoarele opţiuni de navigare:

Din meniu SAP

Instrumente ® ABAP Workbench ® Test ® Workbench de Test ® Test Tools ® Extended CATT

Cod tranzacţie

SECATT

2. In Extended Computer Aided Test Tool: Initial Screen, în câmpul Test Configuration, introduceţi numele obiectului tehnic al eCATT.

Numele obiectului tehnic eCATT poate fi găsit în foaia de calcul din Lista de Dezvoltare pentru un anumit building block. De asemenea, puteţi extinde un proiect sau un building block în Asistentul de instalare Best Practices, căutaţi activitatea eCATT, apoi evidenţiaţi numele obiectului tehnic şi copiaţi-l în clipboard cu CTRL-C.

Pentru a determina dacă eCATT-ul dvs. are o variantă internă, în asistentul de instalare Best Practices, efectuaţi click dreapta pe sarcina eCATT în proiect şi alegeţi Detalii. O casetă de dialog va afişa numele de fişier pentru fişierul de text extern, sau în cazul unor variante interne, un asterisc (*). Dacă eCATT-ul dvs. are o variantă internă (*), urmaţi etapa 5 de mai jos.

3. Selectaţi Executare

4. În ecranul Start Options, selectaţi tab-ul Variants.

5. Dacă eCATT-ul dvs. are variante interne, deselectaţi ECATTDEFAULT în panoul inferior.

6. Selectaţi Executare.

7. Dacă apare vreun mesaj de eroare în jurnal, va trebui să corectaţi erorile înainte de a putea executa procedura cu succes.

Personalizarea procedurilor eCATT

Utilizare

Puteţi personaliza obiectele eCATT, ca de exemplu containerele de date de test, script-urile de test şi variantele, pentru a particulariza testul cu datele dvs.

Trebuie mai întâi să creaţi copii ale diferitelor obiecte eCATT necesare înainte de a continua. Dacă nu, veţi suprascrie obiectele furnizate. Procedura este descrisă mai jos.

Procedură

1. În câmpul Test Data introduceţi numele containerului de date de test pe care doriţi să-l copiaţi.

2. Selectaţi Copiere Obiect.

3. În caseta de dialog Copiere introduceţi noul nume pentru copia containerului de date în câmpul To Test Data Container.

4. Selectaţi Copy.

5. În caseta de dialog Creare intrare director obiect care apare introduceţi numele pachetului şi selectaţi Save. Întoarceţi-vă la ecranul iniţial.

6. Afişaţi noul container de date prin introducerea numelui în câmpul Test Data şi selectaţi Display.

7. În noul ecran care apare, selectaţi Display <-> Change pentru a customiza datele.

Nu modificaţi numele variantelor, deoarece acest lucru va cauza invalidarea unor părţi din script-ul de test şi va provoca erori. Dacă trebuie să modificaţi numele variantei trebuie să utilizaţi Asistentul de întreţinere a variantelor pentru a o realoca script-ului de test.

8. Selectaţi Save pentru a salva modificările dvs.

Rezultat

eCATT-ul dvs. a fost customizat.

Execuţia unui eCATT în modul foreground

Utilizare

Această activitate furnizează instrucţiuni despre cum trebuie executat eCATT-ul în modul foreground.

Procedură

1. În ecranul Start eCATT Testconfiguration, selectaţi Display Start Options.

2. Selectaţi butonul Execute.

3. În următorul ecran selectaţi tab-ul UI Control.

4. În caseta TCD, în Mod de lansare pentru comanda TCD, utilizaţi lista derulantă pentru a selecta A Process in Foreground, Synchronous Local.

Afişarea şi tipărirea jurnalelor eCATT

Utilizare

Puteţi afişa un jurnal existent. Puteţi tipări o imagine la alegere.

Procedură

1. In Extended Computer Aided Test Tool: Initial Screen, selectaţi Logs. Apare ecranul eCATT Log Selection.

2. Introduceţi criteriile dvs. de selecţie şi selectaţi Execute. Este afişată o listă cu toate jurnalele care satisfac criteriile de selecţie.

3. În coloana Activity no, efectuaţi click pe numărul jurnalului pe care doriţi să-l afişaţi. Jurnalul este afişat ca o structură ierarhică în care puteţi naviga.

4. Pentru a vedea elementele de sub un nod, selectaţi nodul şi alegeţi Expand nodes, sau efectuaţi click pe simbolul din faţa nodului.

5. Extindeţi şi comprimaţi nodurile până când jurnalul arată aşa cum doriţi să fie tipărit.

6. Selectaţi Print.

7. Selectaţi Print. Apare caseta de dialog Listă ecran tipărire.

8. Introduceţi informaţiile necesare şi selectaţi Choose.



sâmbătă, 6 februarie 2010

Setarea parametrilor profil pentru sesiunile de lucru

Procesele de lucru sustin sesiunile de lucru activate de catre utilizator, fiecarui pas de dialog executat fiindu-i atribuit un proces de lucru. Procesul de lucru va executa unu cate unu pasii de dialog devenind disponibil pentru urmatoarea cerere a utilizatorului(pas de dialog).
Tot acest proces se desfasoara intr-un timp foarte scurt nesesizabil utilizatorului si permite o distribuire a resurselor sistemului eficienta optimizand timpul de raspuns al sistemului la cerintele utilizatorilor.
Setarea numarului proceselor de lucru se va face accesand tranzactia RZ11 si introducand parametrul:
rdisp/wp_no_dia
In functie de tranzactie accesata de utilizatori, un proces de lucru poate sustine un numar de 5 pana la 10 utilizatori ce acceseaza simultan aceeasi tranzactie.
In ce caz va trebui sa modificam acest parametru?
In cazul in care se constata ca utilizatorul trebuie sa astepte un timp mai indelungat pana cand procesul de lucru va prelua urmatorul pas de dialog al acestuia se impune modificarea parametrului si setarea unui numar mai mare de procese de lucru. In setarea acestui parametru se va tine cont si de numarul total de procese care ruleaza pe server si memoria disponibila.
Sistemul SAP R3 sustine un numar mare de utilizatori ce folosesc accesul tranzactional de tip concurential pe diferite servere.
Cursul logic al procesului este urmatorul:
-utilizatorul introduce datele in fereastra de dialog si apasa tasta Enter;
-informatia introdusa este receptionata de procesul SAPGUI si convertita intr-un format intern si trimisa imediat catre dispecerul (1) serverului de aplicatie;
-dispecerul de procese verifica daca exista procese de lucru disponibile pentru a executa pasii de dialog, daca nu exista disponibil nici un proces, cererea va trece in asteptare (2) pana cand un proces de lucru va deveni disponibil;
-de indata ce un proces de lucru devine disponibil dispecerul trimite cererea catre acesta (3);
-in timpul procesului de lucru, analizatorul de cereri este responsabil de atribuirea cererii catre componentele interne(dynpro sau ABAP), folosind registrii de memorie SAP va traduce cererea intr-o comanda SQL pe care o va adresa bazei de date(4);
-sistemul bazei de date va trimite cererea continand informatiile cerute de utilizator inapoi catre procesele de lucru(5) care o vor pasa mai departe serverului de prezentare(6). SAPGUI va prelua datele si le va afisa in formatul dorit de utilizator(7).
Timpul in care se desfasoara intregul proces de la pasul 1 la pasul 7 este definit ca fiind timpul de raspuns al sistemului, referindu-se in principal la timpul alocat pentru executarea proceselor de lucru.(in cazul depasirii timpului de raspuns definit in parametru vom primi o eroare de tipul TIME_OUT)
Profilul care seteaza timpul de raspuns al sistemului este rdisp/max_wprun_time.

sâmbătă, 28 noiembrie 2009

Dry Run, Cut-Over, Roll-Out ce reprezinta?

Fac parte din terminologia specifica unei implementari SAP si anume:
- in timpul unui Dry-run sistemul configurat este predat clientului cu scopul de a fi testat si evaluat de catre acesta, se va organiza o sesiune de training in care i se vor prezenta utilizatorului facilitatile pe care le ofera noul sistem informatic si se vor urmari eventualele neconcordante intre configurarea existenta in sistem si procesele pe care compania le desfasoara. In cazul unui dry-run vor rula in paralel atat vechiul sistem informatic cat si noul sistem urmarind desfasurarea in conditii normale ale activitatilor normale de business, iar tranzitia catre noul sistem sa se realizeze in cele mai bune conditii.
- in timpul unui Cut-Over se va stabili termenul pentru tranzitia la noul sistem, iar vechiul sistem va fi dezactivat, motiv pentru care se va testa gradul de solicitare al noului sistem prin simularea intr-un sistem de test(copie a sistemului de productie)a unei zile de lucru normale.(la nivel tranzactional) Se va testa de altfel functionarea tuturor aplicatiilor de migrare a datelor catre si dinspre SAP, vor fi recreate situatii de incarcare a datelor externe in SAP si monitorizarea aplicatiilor de extractie si conversie a datelor.
- in cadrul unui Roll-Out se vor realiza actiuni de implementare si customizare a unui pachet informatic pentru a corespunde cerintelor de activitate ale organizatiei. La baza sta un template ce contine aplicatii predefinite care sunt customizate pentru a indeplini cerintele specifice ale organizatiei. Acesta va contine: procese si platforme standardizate, posibilitati de interfatare cu alte sisteme, suport tehnic, consultanta si training, suport pentru implementare, etc.

miercuri, 11 noiembrie 2009

Ce reprezinta termenul de "client" in SAP?

Probabil printre primele lucruri pe care le-am auzit cand am luat contact cu SAP pentru prima data a fost "va rog sa va logati pe clientul xxx si sa va deschideti prima sesiune de lucru...", ce inseamna "client" in contextul acesta? dupa cum probabil banuiti este vorba de unul din parametrii necesari pentru a va putea accesa sesiunea de lucru.
Deci ce este "client" in SAP?
Pe scurt poate reprezenta o companie, un sector de afaceri, sau o corporatie.
Versiunea oficiala este aceea ca un client poate fi o entitate legala si organizationala independenta sau poate reprezenta o grupare de date si informatii din baza de date.




marți, 27 octombrie 2009

Cum se implementeaza o solutie SAP?

Implementarea unei solutii SAP atrage dupa sine multe schimbari la nivel organizational, schimbari de management, de norme, in modul de lucru, imbunatatirea serviciilor furnizate clientilor, etc.
Fiind un proces indelungat (de regula dureaza 1-2 ani in functie de solutie), in implementare sunt implicati atat cei care ofera suportul tehnic SAP cat si end-useri din diferite departamente ale companiei care asigura respectarea de catre consultanti intocmai a proceselor de business ce se desfasoara in cadrul companiei.
Procesul are in vedere 4 faze principale de implementare:
- faza de pregatire a proiectului
- analiza si intocmire a planului (blueprint)
- crearea structurilor functionale SAP si testarea solutiei
- ultima etapa:transferul solutiei in productie
- Go Live
Ce urmareste fiecare etapa?
Etapa de pregatire urmareste in principal 2 obiective:
- sa se identifice solutia SAP care corespunde cel mai bine obiectului principal de activitate al companiei
- stabilirea si specializarea personalului care se va ocupa de asistenta tehnica SAP
Etapa de analiza si intocmire a planului (blueprint) presupune:
- stabilirea celui mai bun furnizor al solutiei informatice avand in vedere costurile
- identificare posibilelor probleme de implementare si a modalitatilor de recuperare a datelor
- crearea si specializarea unei echipe de suport tehnic in implementarea si dezvoltarea solutiei
- specializarea end-userilor in utilizarea solutiei informatice
- stabilirea unui centru de date SAP (centrul serverelor care sustin solutia)
- instalarea solutiei si componentelor necesare companiei
- alocarea personalului calificat pentru asigurarea suportului informatic, creare unui Help Desk SAP
Crearea structurilor functionale SAP are ca obiective:
- intocmirea unui plan al schimbarilor organizationale pe care il va aduce implementarea solutiei informatice
- intocmirea unui set de reguli n privinta gestionarii sistemului informatic (SAP Best Practices)
- testarea stabilitatii proceselor business SAP, si integrarea lor cu alte procese SAP.
Faza finala urmareste in principal:
- monitorizarea serviciilor de asistenta urmarind in primul rand respectarea indicilor de calitate si performanta(SLA, KPI).
- transferul solutiei din dezvoltare si test in productie.
Activarea solutiei in productie (GO live)

joi, 8 octombrie 2009

Ce sunt tranzactiile?

Putem numi tranzactie operatia prin care aducem modificari bazei de date, in sine sistemul SAP fiind el insusi un sistem tranzactional. Intregul lant de procese ce are loc in cadrul sistemului este generat de tranzactii.
In SAP o tranzactie este o secventa de pasi(pasi de dialog) pe care o realizeaza utilizatorul pentru a genera un eveniment, modul in care sunt executati toti acesti pasi de dialog fiind monitorizat de un dispatcher SAP.
De regula baza de date nu va fi actualizata pana cand ultima tranzactie nu s-a incheiat, in caz contrar se poate reveni asupra modificarilor.
O tranzactie are la baza 2 etape: una interactiva care poate avea unul sau mai multi pasi si este responsabila pentru pregatirea datelor ce vor actualiza baza de date, si una de actualizare a bazei de date.
Deoarece mai multi utilizatori pot accesa simultan aceeasi informatie, pentru a nu aduce inconsistente in procesul tranzactional exista un mecanism de blocare(LUW) care se activeaza pe durata rularii tranzactiei.
Toate tranzactiile au asociat un cod tranzactional ce se introduce direct in fereastra de comanda, spre exemplu ordinele de vanzare se pot crea accesand din fereastra de comanda codul de tranzactie VA01. O lista a tuturor tranzactiilor disponibile in sistemul SAP R/3 poate fi vazuta accesand tabela TSTC utilizand codul tranzactional SE16(vizualizare tabele) din fereastra de comanda.
Pasul de dialog(screen) este reprezentat de un program dinamic (dynpro) care are la baza o anumita logica de procesare a pasilor de dialog. Un dynpro contine definitiile campurilor, formatul ferestrei de dialog, validarea si logica de procesare a pasilor de dialog.
Logica de procesare presupune ca un dynpro sa controleze ceea ce trebuie executat inainte ca fereastra de dialog sa fie afisata(process before output PBO) si ceea trebuie executat dupa ce utilizator termina de introdus datele in fereastra de dialog.(process
after input PAI)
Trecerea utilizatorului de la o fereastra de dialog la alta genereaza de fapt un pas de dialog , iar un set de pasi alcatuiesc o tranzactie.
Asa cum mentionam mai sus pentru a pastra integritatea unei tranzactii in cazul accesarii simultane a aceleiasi informatii de catre mai multi utilizatorii a fost dezvoltat un mecanism de blocare numit LUW.(Logical Units of Work)
Conceptual un LUW este un set de pasi care trebuiesc executati corect intr-o tranzactie pentru a trece mai departe la logica tranzactiei. Daca apare vreo eroare in executarea unuia din pasi, doar pasul curent este eliminat, iar cei anteriori sunt pastrati.

luni, 28 septembrie 2009

Customizing

Customizing este unealta prin care iti poti adapta pachetul SAP la cerintele business ale companiei, este metoda prin care se pot imbunatati si dezvolta diferite procese business in functie de cerintele firmei. Unele modificari au efecte imediate asupra altor elemente datorita asocierilor ce sunt definite prin intermediul customizingului, spre exemplu adaugarea tarii in care isi are sediul compania atrage dupa sine determinarea automata a unor elemente precum calcularea taxelor, determinarea cerintelor legale, efecte asupra monedei de schimb, etc. Implementarea customizingului se face de catre experti in procesele de business ce au loc in cadrul companiei care trebuie sa respecte intocmai structura, procesele si functiile din cadrul companiei si sa le transpuna respectand un set de reguli(best practices) in SAP.
Probabil cel mai des utilizat IMG(implementation guide) este unealta care ii ajuta pe specialisti in activitatea de implementare a unui flux nou in SAP. Cunoscut si sub numele de SPRO (dupa numele tranzactiei) meniul de customizare are o structura arborescenta fiecare ramura reprezentand cate un modul, obiectele de sub fiecare ramura reprezantand un element ce poate fi supus customizarii(definire a unui element nou/ asociere intre elemente deja existente).
Fiecare obiect din customizing are atasat o documentatie ce ofera informatii despre obiect in sine si ce actiuni poate desfasura.