Kokybės užtikrinimo priemonės

Post on 29-Jan-2016

67 views 1 download

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 Presentation

Transcript of Kokybės užtikrinimo priemonės

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