Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
UPRAVLJANJE UPRAVLJANJE KVALITETOM KVALITETOM
SOFTVERSKIH SOFTVERSKIH PROIZVODAPROIZVODA
Aleksandar Jovičić[email protected]
Kako se pravi softver?
ili ...
Kako se pravi softver?
ili ...
Kako se pravi softver?
Faze razvoja softvera
● Prikupljanje programskih zahteva● Analiza i planiranje● Dizajn i projektovanje● Implementacija● Testiranje● Uvodjenje u upotrebu● Održavanje i podrška
Metodologije procesa razvoja
“Waterfall” (“Vodopad”)
Metodologije procesa razvoja
“Spiral”
Metodologije procesa razvoja
“Agile”
Cilj
● Isporučiti kupcu proizvod koji odgovara njegovim potrebama po ceni koja odgovara njegovim mogućnostima u roku koji obezbedjuje zadovoljavajući kvalitet
Cilj
● Isporučiti kupcu proizvod koji odgovara njegovim potrebama po ceni koja odgovara njegovim mogućnostima u roku koji obezbedjuje zadovoljavajući kvalitet
● Moguće je fiksirati samo 2 varijable– vreme
– troškovi
– kvalitetvreme
troškovi kvalitet
Cilj
● Isporučiti kupcu proizvod koji odgovara njegovim potrebama po ceni koja odgovara njegovim mogućnostima u roku koji obezbedjuje zadovoljavajući kvalitet
● Moguće je fiksirati samo 2 varijable– vreme
– troškovi
– kvalitet
vreme
troškovi kvalitet
vreme
troškovi kvalitet
vreme
troškovi kvalitet
Bruksov “zakon”(Brooks's Law)
● “Ne može se roditi beba za 1 mesec tako što će 9 žena da zatrudni”
Bruksov “zakon”(Brooks's Law)
● “Ne može se roditi beba za 1 mesec tako što će 9 žena da zatrudni”Problem: 4 produktivnaradnika kasne sa projektom “Rešenje”: dodaj još 2
nova radnika
(projekt će biti završen daleko posle rokauz veliko “probijanje” budžeta)
Posledica:završićeš sa 2 produktivna radnika,2 nervozna radnika i 2 nova radnika
BRUKSOV ZAKON
Kvalitet
● Isporučiti proizvod koji odgovara potrebama– Da li kupac zna da definiše svoje potrebe?
– Da li je spreman da plati cenu koštanja?
– Kako mu pomoći da to otkrije na vreme i sprečiti da se priča završi sa propalim projektom i nezadovoljnim kupcem?
– “Korisnik je onaj ko ne zna šta hoće ... ali kada vidi to što je tražio zna da mu baš to ne treba”
Kvalitet
Kako kupac objasni šta mu treba
Kako vodja projekta to
shvati
Kako analitičar to isprojektuje
Kako to programer
napiše
Kako to biznis konsultant
opiše
Kako ga marketing reklamira
Kako se vrši naplata
Kako je projekt dokumentovan
Šta QA tim dobije
Šta OPS-i instaliraju
Kada se to isporuči
Kakva je podrška
Kako se proizvod ponaša pri opterećenju
Kako funkcioniše
plan oporavka
Kako se primenjuju
zakrpe
Šta kupcu stvarno treba
Kvalitet
ili
QC ili QA
● QC - Quality Control (kontrola kvaliteta)
● QA - Quality Assurance (obezbedjivanje kvaliteta)
● QM - Quality Management (upravljanje kvalitetom)
QC
QA
QC ili QAU jednom selu živela su 3 brata. Prvi je mogao da izleči svaku bolest. Za njega su znali u svim okolnim selima.
Drugi je imao moć da oseti kada se bolest približi nekoj kući i upozoravao je ukućane. Za njega su znali svi seljani. Treći
je imao moć da bolest otera i pre nego što se približi selu.Za njega nije znao niko!
QC
QA
QC ili QAU jednom selu živela su 3 brata. Prvi je mogao da izleči svaku bolest. Za njega su znali u svim okolnim selima.
Drugi je imao moć da oseti kada se bolest približi nekoj kući i upozoravao je ukućane. Za njega su znali svi seljani. Treći
je imao moć da bolest otera i pre nego što se približi selu.Za njega nije znao niko!
QC
QA
Poka-yoke(ポカヨケ )
Sprečiti grešku
Otkriti grešku
na kraju izrade komponente ili celog
proizvodau svim fazama
proizvodnog ciklusa
Software Quality Assurance
● Za kvalitet proizvoda nije zadužen samo QA tim● Svaki učesnik u proizvodnji je odgovoran da proveri
kvalitet na svom nivou● QA tim se stara da svi sprovode ove provere● QA inženjer nije isto što i tester● QA inženjer analizira korisničke zahteve i dizajn-
specifikacije, priprema testnu dokumentaciju, procedure, planove i piše testove
● Tester izvršava testove, prijavljuje otkrivene greške i pomaže developer-ima da pronadju uzroke
Tok projektne dokumentacijeKupac Biznis-analitičar Menadžer projekta QA timRazvojni tim
[Korisnički zahtevi] Izdvajanje ianaliza
zahteva
[SystemRequirementSpecification
(SRS)]
Katalogizacijazahteva
Planiranje isporuke
[RequirementsCatalog]
[Project Plan]Implementacija
[Paket]
Uvoz u alat zaupravljanje QA
[Lista zahteva]
QA planiranje
[Test strategija]
Planiranjetestiranja
[Test plan]
ExploratoryTesting
[Test Cases / Test Sets]
System Testing
[Test Report]
Ponovnaanaliza
QA dokumentacija● Test-strategija (Test Strategy)
– Predmet i granice testiranja
– Principi i standardi
– Proces i okruženja
– Alati i odgovornosti
● Test-plan (Test Plan)– Spisak korisničkih zahteva
– Opis testova (Test Cases)
– Scenariji testiranja (Test Sets)
● Izveštaj testiranja (Test Report)– Izvršeni testovi
– Otkriveni nedostaci (bugs, issues, defects)
Proces testiranjaD
evelo
pm
ent
en
vir
onm
ent
Inte
gra
tion T
est
ing
envir
onm
ent
Syst
em
Test
ing
en
vir
on
ment
Unit Testing
Link Testing
System Testing
code change
[Nedeljni Build]
[Paket]
[Stabilan Build] Pakovanje
[ PASSED ]
Developmentprocess
[ spremno zatestiranje ]
[ FAILED]
Nestabilan Build : [ FAILED ] [ PASSED ]
Smoke Testing
[ nepotpun paket ] Odbijen paket : [ kritična greška || nestabilna aplikacija ]
[ PASSED ]
DefectManagement
[ bug || issue ] [Ticket]
Odbijen paket : [ FAILED ]
Proces testiranjaPe
rform
ance
Test
ing
envir
on
ment
C
AT e
nvir
onm
ent
PerformanceTesting
CustomerAcceptance
Testing
Podešavanjesistema
[ strukturne promene]
[ nezadovoljavajućeperformanse ] [ zadovoljavajuće performanse ]
[CAT paket]
Release Notesdopuna
[ promene koje ne utiču na performanse ]
Odbijen paket : [ FAILED ]
DefectManagement
[Ticket] [ bug || issue ]
[ PASSED ]
Developmentprocess
Proces testiranja
● Ispravka jednog nedostatka može da prouzrokuje pojavu drugog nedostatka na komponenti koja je ranije uspešno prošla test
● U svakom ciklusu izrade, neophodno je ponoviti neke testove koji su ranije izvršavani
● Pri dobijanju paketa na testiranje radi se tzv. “Smoke” test da se proveri da li je proizvod dovoljno stabilan za kompletno testiranje
● Ukoliko je “Smoke” test uspešan, sprovodi se skup regresionih testova kako bi se otkrili nedostaci nastali na već testiranim delovima proizvoda
Uticaj otkrivenih nedostataka
● Nemaju svi nedostaci isti uticaj na proizvod– Kritični (Critical, Showstopper)
● Njihov uticaj je toliki da onemogućavaju dalje testiranje ili su eventualni poslovni gubici nastali upotrebom proizvoda toliki da se ne sme dozvoliti njegovo korišćenje
– Ozbiljni (High)● Ne sprečavaju dalje testiranje ali bi se trebali otkloniti pre nego
što se proizvod pusti na produkciju
– Srednji (Medium)● Proizvod se može koristiti ali neke funkcionalnosti moraju da se
zaobidju ili se delovi proizvoda ne koriste optimalno
– Niski (Low)● “Kozmetički” nedostaci koji ne utiču na funkcionalnost
Okruženja(Environments)
● Razvojno okruženje (Development env.)
– Svaki programer održava svoje okruženje
– On je zadužen za Unit testiranje (“White-box” metoda)
● Integraciono okruženje (Development env.)
– Mesto gde se komponente različitih timova spajaju u jedinstven proizvod
– Razvojni timovi su zaduženi za Link/Integration testiranje
● Sistemsko okruženje (System Testing env.)
– Okruženje slično klijentskom na kome se radi završno testiranje pre isporuke naručiocu
– QA tim izvršava funkcionalne testove (“Black-box” metoda)
Okruženja(Environments)
● Okruženje za testiranje performansi (Performance)
– Okruženje što sličnije produkcionom klijentskom
– Specijalisti za ovu vrstu testiranja iz QA tima sprovode Performance/Stress/Load testiranje
● Klijentsko okruženje (Customer Acceptance Testing env.)
– Okruženje na kojem naručilac proverava da li je proizvod po željenim specifikacijama
– Klijentski QA tim uz podršku proizvodjačevog QA tima vrši CAT testiranje
● Produkciono okruženje (Production env.)
– Klijentsko okruženje na kojem proizvod koristi naručioc ili njegovi korisnici
– QA tim vrši Deployment Verification testiranje tokom instalacije
Upravljanje nedostacima(Defects Management)
Tester Vodja QA tima Vodja razvojnog tima Developer
prijavinedostatak
Analizauticaja
[ODBIJEN]
[ nije nedostatak ]
[DUPLIKAT]
[ već prijavljen ]
Analizauticaja
[ nedostatak ]
[ nije nedostatak ]
Aanalizauticaja
[ nije nedostatak ]
[OTVOREN]
[ nedostatak ]
[ nedostatak ]
[OTVOREN]
Sledeći ciklus
[ZATVOREN]
Sledeći ciklus
[ZATVOREN]
Upravljanje nedostacima(Defects Management)
Tester Vodja QA tima Vodja razvojnog tima Developer
IspravljanjeDodela
[ZA TESTIRANJE]Evidencija
DodelaPonovnotestiranje
Evidencija
[OTVOREN]
[ Failed ]
[SPAKOVAN]
[ Passed ]
Analiza
Ponovnaanaliza
[ protiv ]
[ nije nedostatak ]
[ nedostatak ]
[ saglasan ]
Sledeći ciklus
[OTVOREN]
Indikatori stanja(KPI - Key Performance Indicators)
vreme
ukup
an b
roj n
edos
tata
ka
prijavljeni
rešeni
Indikatori stanja(KPI - Key Performance Indicators)
vreme
ukup
an b
roj n
edos
tata
ka
prijavljeni
rešeni
kvalitet opada
Indikatori stanja(KPI - Key Performance Indicators)
vreme
ukup
an b
roj n
edos
tata
ka
prijavljeni
reše
nikvalitet stagnira
Indikatori stanja(KPI - Key Performance Indicators)
vreme
ukup
an b
roj n
edos
tata
ka
prijavljeni
reše
nikvalitet raste
Pokrivenost regresionim testovima
● Ne postoji softver bez nedostataka!● Kako pokriti što više konfiguracija?
Pokrivenost regresionim testovima
Prioritizing Dynamic Prioritizing “Shotgunning” “Railroading”
● “Istraživačko testiranje” (Exploratory Testing)● Strategije ponavljanja
Automatski testovi
● Pokušaj uštede vremena i resursa● Opasnost zanemarivanja potrebe za održavanjem
Automatski testovi
● Pokušaj uštede vremena i resursa● Opasnost zanemarivanja potrebe za održavanjem
QA alati
● Sistem za upravljanje dokumentima(Document Management System)
– Alfresco, EMC Documentum
● Sistem za upravljanje korisničkim zahtevima(Requirements Management System)
– IBM Rational DOORS
● Sistem za upravljanje nedostacima(Defect Management System)
– Atlassian JIRA
● Sistem za upravljanje kvalitetom(Quality Management System)
– HP Quality Center, Test Link
QA alati
● Sistem za upravljanje projektima(Project Management System)
– MS Projects, Trello, RedMine
● Alati za automatsko testiranje– HP QTP, Test Complete, Fitness
● Alati za testiranje performansi– Apache JMeter, HP LoadRunner
● Office alati– Open/Libre Office, MS Office
Zapamtite!
Misija QA tima nijeda spreči isporukusoftvera sa nedostacima,već da se postara daproizvod zadovoljavapotrebe korisnika uzšto manje nedostataka
UPRAVLJANJE UPRAVLJANJE KVALITETOM KVALITETOM
SOFTVERSKIH SOFTVERSKIH PROIZVODAPROIZVODA
Aleksandar Jovičić[email protected]