kokybės užtikrinimo priemonės
DESCRIPTION
Kokybės užtikrinimo priemonės. Darius Kučinskas. Kodo kokybės užtikrinimo priemonės. Programinės įrangos kokybė Statinė analizė ir kodo metrikos Išeities kodo peržiūros (ang. code reviews) Apkrovos testavimas (ang. performance testing). PĮ kokybė ?. PĮ kokybė ?. - PowerPoint PPT PresentationTRANSCRIPT
Kokybės užtikrinimo priemonės
Darius Kučinskas
Kodo kokybės užtikrinimo priemonės
o Programinės įrangos kokybėo Statinė analizė ir kodo metrikoso Išeities kodo peržiūros (ang. code reviews)o Apkrovos testavimas (ang. performance testing)
PĮ kokybė?
PĮ kokybė?
o Tai ką jūs pirmiausiai bandote sukurti kurdami programinę įrangą yra vertė (PĮ vartotojui)
o Kokybė yra vienas iš vertės aspektų, taip pat kaip ir kaina, bei kiti faktoriai
Statinė analizė?
Statinė analizė
o PĮ kokybės užtikrinimo priemonėo Atliekama neįvykdant pačios programoso Vykdoma automatinių įrankiųo Objektas programos išeities arba objektinis kodaso Sudėtingumas svyruoja nuo individualių sakinių
nagrinėjimo iki viso kodo analizės
Statinė analizė
o Rezultate gali nurodyti programavimo klaidas arba formaliais metodais matematiškai įrodyti tam tikras programos savybes (pvz., jos atitikimą specifikacijai)
o PĮ metrikų rinkimas taip pat laikomas viena iš statinės analizės formų
Statinė analizė įrankiai?
Statinė analizė įrankiai
o C# kompiliatorius (C#)o StyleCop (C#)o ReSharper (C#, JavaScript, HTML, CSS)o NCover o JSHint (JavaScript)o VisualStudio
C# kompiliatorius
o Įjungti aukščiausią įspėjimų lygį (ang. warning level)
o Įspėjimą traktuoti kaip klaidą (angl. treat warnings as errors)
o Esant nors vienam įspėjimui, projektas turi nesikompiliuoti
StyleCop
o Atviro kodo statinės analizės įrankis o Pagamintas Microsoft'o kompanijoso Galima parsisiųsti iš http://stylecop.codeplex.com
svetainės
o Analizuoja programos išeities kodąo Tikrina ar kodas atitinka rekomenduojamą
programavimo stilių bei Microsoft NET Framework dizaino gaires
StyleCop
o Taisyklės skirstomos į šias kategorijas:o Dokumentacijao Išdėstymaso Priežiūra (ang. Maintainability)o Pavadinimai (ang. Naming)o Skaitomumas (angl. Readability)o Savos sukurtos taisyklės
StyleCop
o Taisyklės pritaikytos būtent mūsų organizacijai, gali skirtis projekto lygmenyje
o Taisyklės saugomos centralizuotai, prieinamos kiekvienam programuotojui
o Pažeidus taisyklę projektas nesikompiliuoja
ReSharper
o Komercinis įrankis skirtas kodo pertvarkymuio Pagamintas JetBrains kompanijoso Integruotas į VisualStudio kaip išplėtimas
o Palaiko C#, VB, JavaScript, CSS, HTMLo Kodo taisyklių tikrinimas, rezultatai pateikiami
klaidų, įspėjimų, pasiūlymų ir patarimų pavidaluo Automatizuotas klaidų taisymas ir kodo
optimizavimaso Palaiko kodo pertvarkymą (angl. code
refactoring)
ReSharper
o Taisyklės pritaikytos būtent mūsų organizacijai, gali skirtis projekto lygmenyje
o Taisyklės saugomos centralizuotai, prieinamos kiekvienam programuotojui
o Pažeidus taisyklę projektas nesikompiliuoja
JSHint
o Įrankis, skirtas aptikti klaidas ir galimas problemas JavaScript kode
o Gali būti naudojamas siekiant užtikrinti programavimo konvencijų laikymosi
o Taisyklės nustatomos vieno failo lygyje
NCover
o Kodo padengimo įrankis skirtas .NETo Kodo padengimas yra priemonė, naudojama
programinės įrangos testavime, nusakanti iki kokio laipsnio programos kodas yra ištestuotas
VisualStudio
o Visi aukščiau paminėti įrankiai integruoti į programuotojo darbo aplinką (šiuo atveju į VisualStudio)
o Integruotas kodo metrikų apskaičiavimo įrankis
Kodo metrikos?
Kodo metrikos - eilučių skaičius
o Kodo eilučių skaičius - nurodo apytikslį kodo eilučių skaičių
o Labai didelis eilučių skaičius galimai rodo, kad tipas ar metodas bando daryti per daug
o Jis turėtų būti suskaidytaso Kitaip jį bus sunku palaikyti ir plėsti
Kodo metrikos – klasių susiejimas
o Ang. Class Couplingo Apibrėžia klasių tarpusavio susiejimo lygįo Gero dizaino požymis yra mažas klasių susiejimo
lygiso Didelis susiejimas reiškia, kad tokį kodą bus
sunku palaikyti ir plėtoti
Kodo metrikos – paveldėjimo gylis
o Rodo klasių apibrėžimų skaičių iki klasių hierarchijos šaknų
o Kuo gilesnė hierarchija, tuo sunkiau gali būti suprasti, kur yra apibrėžti konkretūs metodai ir laukai
o Didelis susiejimas reiškia, kad tokį kodą bus sunku palaikyti ir plėtoti
Kodo metrikos – ciklomatinis sudėtingumas
o Ang. Cyclomatic Complexityo Priemonė apibrėžianti programos valdymo srauto
struktūrinį sudėtingumąo Didelė reikšmė reiškia, kad bus sunku palaikyti ir
plėtoti
Kodo metrikos – priežiūros indeksas
o Ang. Maintainability Indexo Programos palaikymo sudėtingumo indeksas
o Programinės įrangos išeities kodo kokybės rodikliai stipriai koreliuoja su kodu dydžio (bent jau taip pat stipriai kaip ir su klaidų lygiu)
o Iš kodo dydžio galima prognozuoti jo kokybę
Išeities kodo peržiūros
o Ang. Code reviewo Kiekvienas baigtas projektas patenka į peržiūrąo Ar laikomasi organizacijos nustatytų
programavimo konvencijųo Ar teisinga projekto struktūrao Ar teisingai parinkti sluoksniaio Ar naudojami teisingi dizaino šablonai (ang.
design patterns)
Išeities kodo peržiūros
o Ar yra unit testaio Ar yra duomenų bazės sukūrimo / atnaujinimo
skriptaio Ar projaktas įtrauktas į nuolatinės integracijos
aplinkąo Programos kodas turi turėti atskiras šakas
vįstymui / testavimuio Turi būti paruoštas bent minimalus aprašas
Apkrovos testavimas
o Projektas neatiduodamas klientui neatlikus apkrovos testavimo
Apkrovos testavimas - įrankiai
o Apache - Jmetero Redgate - Performance Profilero Chrome - Developer Toolso Firefox - Firebug
Apkrovos testavimas - Performance Profiler
Redgate - Performance Profiler