1 / 30

Kokybės užtikrinimo priemonės

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ė ?.

masato
Télécharger la présentation

Kokybės užtikrinimo priemonės

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kokybės užtikrinimo priemonės • Darius Kučinskas

  2. 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)

  3. PĮ kokybė?

  4. PĮ kokybė? • Tai ką jūs pirmiausiai bandote sukurti kurdami programinę įrangą yra vertė (PĮ vartotojui) • Kokybė yra vienas iš vertės aspektų, taip pat kaip ir kaina, bei kiti faktoriai

  5. Statinė analizė?

  6. Statinė analizė • PĮ kokybės užtikrinimo priemonė • Atliekama neįvykdant pačios programos • Vykdoma automatinių įrankių • Objektas programos išeities arba objektinis kodas • Sudėtingumas svyruoja nuo individualių sakinių nagrinėjimo iki viso kodo analizės

  7. Statinė analizė • Rezultate gali nurodyti programavimo klaidas arba formaliais metodais matematiškai įrodyti tam tikras programos savybes (pvz., jos atitikimą specifikacijai) • PĮ metrikų rinkimas taip pat laikomas viena iš statinės analizės formų

  8. Statinė analizė įrankiai?

  9. Statinė analizė įrankiai • C# kompiliatorius (C#) • StyleCop (C#) • ReSharper (C#, JavaScript, HTML, CSS) • NCover • JSHint (JavaScript) • VisualStudio

  10. C# kompiliatorius • Įjungti aukščiausią įspėjimų lygį (ang. warning level) • Įspėjimą traktuoti kaip klaidą (angl. treat warnings as errors) • Esant nors vienam įspėjimui, projektas turi nesikompiliuoti

  11. StyleCop • Atviro kodo statinės analizės įrankis • Pagamintas Microsoft'o kompanijos • Galima parsisiųsti iš http://stylecop.codeplex.com svetainės • Analizuoja programos išeities kodą • Tikrina ar kodas atitinka rekomenduojamą programavimo stilių bei Microsoft NET Framework dizaino gaires

  12. StyleCop • Taisyklės skirstomos į šias kategorijas: • Dokumentacija • Išdėstymas • Priežiūra (ang. Maintainability) • Pavadinimai (ang. Naming) • Skaitomumas (angl. Readability) • Savos sukurtos taisyklės

  13. StyleCop • Taisyklės pritaikytos būtent mūsų organizacijai, gali skirtis projekto lygmenyje • Taisyklės saugomos centralizuotai, prieinamos kiekvienam programuotojui • Pažeidus taisyklę projektas nesikompiliuoja

  14. ReSharper • Komercinis įrankis skirtas kodo pertvarkymui • Pagamintas JetBrains kompanijos • Integruotas į VisualStudio kaip išplėtimas • Palaiko C#, VB, JavaScript, CSS, HTML • Kodo taisyklių tikrinimas, rezultatai pateikiami klaidų, įspėjimų, pasiūlymų ir patarimų pavidalu • Automatizuotas klaidų taisymas ir kodo optimizavimas • Palaiko kodo pertvarkymą (angl. code refactoring)

  15. ReSharper • Taisyklės pritaikytos būtent mūsų organizacijai, gali skirtis projekto lygmenyje • Taisyklės saugomos centralizuotai, prieinamos kiekvienam programuotojui • Pažeidus taisyklę projektas nesikompiliuoja

  16. JSHint • Įrankis, skirtas aptikti klaidas ir galimas problemas JavaScript kode • Gali būti naudojamas siekiant užtikrinti programavimo konvencijų laikymosi • Taisyklės nustatomos vieno failo lygyje

  17. NCover • Kodo padengimo įrankis skirtas .NET • Kodo padengimas yra priemonė, naudojama programinės įrangos testavime, nusakanti iki kokio laipsnio programos kodas yra ištestuotas

  18. VisualStudio • Visi aukščiau paminėti įrankiai integruoti į programuotojo darbo aplinką (šiuo atveju į VisualStudio) • Integruotas kodo metrikų apskaičiavimo įrankis

  19. Kodo metrikos?

  20. Kodo metrikos - eilučių skaičius • Kodo eilučių skaičius - nurodo apytikslį kodo eilučių skaičių • Labai didelis eilučių skaičius galimai rodo, kad tipas ar metodas bando daryti per daug • Jis turėtų būti suskaidytas • Kitaip jį bus sunku palaikyti ir plėsti

  21. Kodo metrikos – klasių susiejimas • Ang. Class Coupling • Apibrėžia klasių tarpusavio susiejimo lygį • Gero dizaino požymis yra mažas klasių susiejimo lygis • Didelis susiejimas reiškia, kad tokį kodą bus sunku palaikyti ir plėtoti

  22. Kodo metrikos – paveldėjimo gylis • Rodo klasių apibrėžimų skaičių iki klasių hierarchijos šaknų • Kuo gilesnė hierarchija, tuo sunkiau gali būti suprasti, kur yra apibrėžti konkretūs metodai ir laukai • Didelis susiejimas reiškia, kad tokį kodą bus sunku palaikyti ir plėtoti

  23. Kodo metrikos – ciklomatinis sudėtingumas • Ang. Cyclomatic Complexity • Priemonė apibrėžianti programos valdymo srauto struktūrinį sudėtingumą • Didelė reikšmė reiškia, kad bus sunku palaikyti ir plėtoti

  24. Kodo metrikos – priežiūros indeksas • Ang. Maintainability Index • Programos palaikymo sudėtingumo indeksas

  25. 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) • Iš kodo dydžio galima prognozuoti jo kokybę

  26. Išeities kodo peržiūros • Ang. Code review • Kiekvienas baigtas projektas patenka į peržiūrą • Ar laikomasi organizacijos nustatytų programavimo konvencijų • Ar teisinga projekto struktūra • Ar teisingai parinkti sluoksniai • Ar naudojami teisingi dizaino šablonai (ang. design patterns)

  27. Išeities kodo peržiūros • Ar yra unit testai • Ar yra duomenų bazės sukūrimo / atnaujinimo skriptai • Ar projaktas įtrauktas į nuolatinės integracijos aplinką • Programos kodas turi turėti atskiras šakas vįstymui / testavimui • Turi būti paruoštas bent minimalus aprašas

  28. Apkrovos testavimas • Projektas neatiduodamas klientui neatlikus apkrovos testavimo

  29. Apkrovos testavimas - įrankiai • Apache - Jmeter • Redgate - Performance Profiler • Chrome - Developer Tools • Firefox - Firebug

  30. Apkrovos testavimas - Performance Profiler • Redgate - Performance Profiler

More Related