Download - Kokybės užtikrinimo priemonės

Transcript
Page 1: Kokybės užtikrinimo priemonės

Kokybės užtikrinimo priemonės

Darius Kučinskas

Page 2: Kokybės užtikrinimo priemonės

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)

Page 3: Kokybės užtikrinimo priemonės

PĮ kokybė?

Page 4: Kokybės užtikrinimo priemonės

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

Page 5: Kokybės užtikrinimo priemonės

Statinė analizė?

Page 6: Kokybės užtikrinimo priemonės

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

Page 7: Kokybės užtikrinimo priemonė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ų

Page 8: Kokybės užtikrinimo priemonės

Statinė analizė įrankiai?

Page 9: Kokybės užtikrinimo priemonės

Statinė analizė įrankiai

o C# kompiliatorius (C#)o StyleCop (C#)o ReSharper (C#, JavaScript, HTML, CSS)o NCover o JSHint (JavaScript)o VisualStudio

Page 10: Kokybės užtikrinimo priemonės

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

Page 11: Kokybės užtikrinimo priemonės

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

Page 12: Kokybės užtikrinimo priemonės

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

Page 13: Kokybės užtikrinimo priemonė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

Page 14: Kokybės užtikrinimo priemonės

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)

Page 15: Kokybės užtikrinimo priemonės

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

Page 16: Kokybės užtikrinimo priemonės

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

Page 17: Kokybės užtikrinimo priemonės

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

Page 18: Kokybės užtikrinimo priemonės

VisualStudio

o Visi aukščiau paminėti įrankiai integruoti į programuotojo darbo aplinką (šiuo atveju į VisualStudio)

o Integruotas kodo metrikų apskaičiavimo įrankis

Page 19: Kokybės užtikrinimo priemonės

Kodo metrikos?

Page 20: Kokybės užtikrinimo priemonės

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

Page 21: Kokybės užtikrinimo priemonės

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

Page 22: Kokybės užtikrinimo priemonės

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

Page 23: Kokybės užtikrinimo priemonės

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

Page 24: Kokybės užtikrinimo priemonės

Kodo metrikos – priežiūros indeksas

o Ang. Maintainability Indexo Programos palaikymo sudėtingumo indeksas

Page 25: Kokybės užtikrinimo priemonės

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ę

Page 26: Kokybės užtikrinimo priemonės

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)

Page 27: Kokybės užtikrinimo priemonės

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

Page 28: Kokybės užtikrinimo priemonės

Apkrovos testavimas

o Projektas neatiduodamas klientui neatlikus apkrovos testavimo

Page 29: Kokybės užtikrinimo priemonės

Apkrovos testavimas - įrankiai

o Apache - Jmetero Redgate - Performance Profilero Chrome - Developer Toolso Firefox - Firebug

Page 30: Kokybės užtikrinimo priemonės

Apkrovos testavimas - Performance Profiler

Redgate - Performance Profiler