Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat



Podobné dokumenty
Agenda. Smysl teoretických cvičení Klasifikace Obecná pravidla Bugzilla Klasické problémy Poznámky k jednotlivým pojmům Antipatterns Testování testů

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

KTE / ZPE Informační technologie

Testování SW produktů. Jiří Sochor, Jaroslav Ráček 1

Základy programování Zdrojový kód, dokumentace, týmová práce

Agenda. Docházka Odhadování Neohlášený test Vedení projektů Historie projektů

17. Projekt Trojúhelníky

Úvod do softwarového inženýrství a týmového vývoje

C# &.NET. Cvičení Mgr. Filip Krijt.

Nebojte se přiznat, že potřebujete SQA

programátor vs. vývojář

Vedení projektů, Odhadování, historie

1. Téma 12 - Textové soubory a výjimky

Řízení reálných projektů, agilní metodiky

Vývoj řízený testy Test Driven Development

Algoritmizace a programování

3 KTE / ZPE Informační technologie

Analýza a Návrh. Analýza

Programátorská příručka

Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu

FlowMon novinky. Představení FlowMon verze 5.0. Petr Špringl

IRAE 07/08 Přednáška č. 1

Java a XML. 10/26/09 1/7 Java a XML

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

MBI - technologická realizace modelu

1. Programování proti rozhraní

Java - výjimky. private void vstup() throws IOException {... }

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

Aplikační Dokumentace Standardy ICT MPSV

Účel, použití, analýza rizik Milan Turinský Únor 2018

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

2013 IBM Corporation

Typický prvek kolekce pro české řazení

Pokročilé schopnosti OOP

UJO Framework. revoluční architektura beans. verze

Analýza a design na reálném projektu. Richard Michalský

Výchozí a statické metody rozhraní. Tomáš Pitner, upravil Marek Šabo

Testovací metoda. Testovací metoda. public class SimpleTest {

Seminární práce Vývoj informačního systému. Manažerská informatika 2 Ing. Miroslav Lorenc

14. května 2012, Brno

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Základy analýzy. autor. Jan Novotný února 2007

20. Projekt Domácí mediotéka

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Testování, ladění a dokumentace programů

Analýza a design na reálném projektu. Richard Michalský

Generické programování

SOFTWAROVÉ INŽENÝRSTVÍ 1

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Quality assurance a testování

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz

12. VHDL pro verifikaci - Testbench I

RMI Remote Method Invocation

Nástroje pro vývoj software

Metodický list pro předmět Aplikační software v řízení podniku

Robert Haken. HAVIT, s.r.o. knowledge-base.havit.cz

Řízení kvality SW produktů Jiří Sochor, Jaroslav Ráček 1

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Datové struktury. alg12 1

Softwarový proces. Bohumír Zoubek, Tomáš Krátký

Objektově orientované programování

Konstruktory překladačů

Projekty pro výuku programování v jazyce Java

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Doxygen. Jakub Břečka

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Agilní metodiky vývoje softwaru

CASE nástroje. Jaroslav Žáček

Java - řazení objektů

Novinky ve Visual Studio Tomáš Kroupa

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

7 Jazyk UML (Unified Modeling Language)

Metodický list pro předmět Aplikační software ve veřejné správě

Výčtový typ strana 67

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

Michal Podzimek

Architektury Informačních systémů. Jaroslav Žáček

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

SonarQube - statická analýza kódu a její zapojení v CI. Babu Červenková Big Data developer - Java Fulltext - Robot tým

MHD v mobilu. Instalace a spuštění. Co to umí

1. Úvod. 2. CryptoPlus jak začít. 2.1 HW a SW předpoklady. 2.2 Licenční ujednání a omezení. 2.3 Jazyková podpora. Požadavky na HW.

Zuzana Šochová MFF Modelování a realizace softwarových projektů

Dokumentace, konfigurační řízení

Open Journal Systems na ČVUT. Věra Pilecká (ÚK ČVUT)

Objektově orientované programování

Dalším příkladem může být například výstup dat na různá zařízení, souborů, grafických rozhraní, sítě atd.

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

DATOVÁ ARCHIVACE. Principy datové archivace a její výhody při migraci na SAP HANA. Štěpán Bouda Business Consultant

OOPR_05. Případové studie

ŘÍZENÍ UDÁLOSTÍ V EXCELU

Návrh softwarových systémů - úvod, motivace

Vytváření a použití knihoven tříd

Začínáme s vývojem pro Android

Architektury Informačních systémů. Jaroslav Žáček

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

7 Jazyk UML (Unified Modeling Language)

Transkript:

QA & Dokumentace

Agenda Docházka Návrat k minulému praktickému cvičení Zápočtové práce QA opakování Dokumentace Co, jak a proč dokumentovat Dotazy, přání, stížnosti

Kde je chyba? public static StringBuilder sbd = new StringBuilder(); @Test public void test() { } sbd.clear(); sbd.append( ab ); Assert.assertEquals(sbd.toString(), ab );

QA Obecně zajišťování kvality V průmyslu cíl Six Sigma Kvalita vs. cena QA stojí peníze Chyby stojí peníze Pragmatismus V&V Verifikace a Validace Testování Přezkoumání

V - model Business case Product verification review Requirements User acceptance tests review Functional design System, integration tests review Design & Coding review Unit tests, code analysis

Doporučení Klíčové dokumenty (nabídka, specifikace, design, plán testů, projektový plán, ) někdo zkontroluje. Někdo jiný než autor :-) Chyby se evidují (např. v Bugzille) Nejen chyby v kódu Opravy chyb se před dodávkou přetestovávají Někdo jiný než autor Dodržování domluvených postupů se kontroluje Pragmatismus (vyhnout se byrokracii)

Dokumentace Druhy Vývojářská Projektová Uživatelská Administrátorská (instalační) Mýtus - Dobrý kód se dokumentuje sám To platí nejvýš pro zápočťáky. Nicméně špatnému kódu ani dobrá dokumentace nepomůže

Dokumentace - forma Není příliš důležitá Musí informace zobrazovat přehledně Dobré je, pokud podporuje efektivní vyhledávání Wiki Forrest Word (Writer, ) Textové soubory Anotace či i speciální komentáře v kódu Generování dokumentace

Cvičení Máte za úkol napsat specifikaci jaký formát zvolíte a proč? Kdy by se mělo dokumentovat? Projekt trvá 6 měsíců ů a má rozsah 200 MD, kolik času by mělo být naplánováno na dokumentaci? Jak dokumentovat automatické testy? Je lepší mít 60 desetistránkových dokumentů nebo 6 stostránkových?

Uživatelská dokumentace Forma Kontextová nápověda Příručka Jiné Ideální, pokud ji píše někdo z businessu ve spolupráci s vývojáři. Jak se v programu udělá to, co uživatel potřebuje Většinou utopie.

Administrátorská dok. Instalační Potřebný SW a HW Včetně verzí Co musí být splněno Hodnoty DB options Postup instalace V jakém pořadí nasazovat uloženky, Troubleshooting Většinou se neřeší eší papírově, nýbrž telefonicky Techničtější než uživatelská Pozor! Administrátoři i nejsou vývojáři. Jsou pro ně důležité jiné věci než pro vás.

Vývojářská dokumentace Design High level pohled na aplikaci. Kuchařky, návody Jak se co udělá Dokumentace testů a postupů Slovníček pojmů (jak rozumět zákazníkům) JavaDoc Přítel na telefonu :-)

Cvičení Co by mělo být součástí JavaDoc třídy? Dokumentovat gettery a settery? Je třeba psát JavaDoc privátním atributům? Je třeba psát JavaDoc implementacím metod z interfaců?

Cvičení napište JavaDoc public class BinTree<T> { private BinTree left; private BinTree right; private T data; } public BinTree(BinTree left, BinTree r, T data) { this.left=left; this.right=r; this.data=data; } // Gettery Je to dobrý nápad, nedělat tam žádné settery? Jaké další problémy má tento kód?

Cvičení napište JavaDoc public int VynasobZadanaCislaAVratVysledekPokudAniJednoZCiselNeniZap ornejinakvyhodvyjimku (int prvni, int druhe) throws Exception { } if (prvni * druhe >= prvni + druhe 1 && druhe > 0) { log.fatal( Nektere cislo je zaporne ); throw new Exception( Spatny vstup!!!!! ); } else { return prvni * druhe; } Jaké problémy má tento kód?

Doporučení pro JavaDoc Popisujte, CO metoda dělá a ne jak. Popisujte, k čemu je daná třída a ne co obsahuje. Vždy dokumentujte metody interfaců První věta končí tečkou. Dodržujte konvence: http://www.oracle.com/technetwork/java/javase/docu mentation/index-137868.html

Doporučení pro komentáře Popisujte své předpoklady Pokud jsou špatné (situace se od napsání kódu mohla změnit), snáze se na to přijde z komentáře než z kódu. Popisujte netriviální obraty v kódu Popisujte, co se dělá ne jak. NE: Když je částka větší než 1000 tak odečti pět procent částky. Lepší je třeba Aplikace pásmové slevy. Mě se osvědčilo komentovat bloky kódu Rychlejší orientace v kódu

Projektová dokumentace Projektový plán Forma: MS Project, Excel, linkovaný sešit Není důležitá (pokud plní svoji funkci) Obsah Nikdy nebude obsahovat vše Podrobný rozpad úkolů ů na nejbližší dny až týdny Může mít PM v hlavě Milestones a strategické úkoly Detailněji bude probrán v některém z následujících cvičení.

Projektová dokumentace (2) Historie projektu Dělá se zpravidla na začátku fáze údržby. Měření práce, řádek kódu Důležité pro budoucí odhady a pro vylepšování procesů. Plán testů Opakování co by měl obsahovat.

Dokumentace - údržba Svět se mění dokumenty zastarávají. Zastaralá dokumentace je občas horší než žádná. =>Na dokumentaci se nikdy nedá 100% spolehnout. Které dokumenty udržovat? Všechny, u kterých se to vyplatí Projektový plán, design, kuchařky, Vyplatí se to, pokud dokument šetří čas (i se započítaným časem na údržbu). Největší žrout času diagramy. Text je snadné změnit, u obrázku už je to horší.

Automatizace dokumentace Generování dokumentů z metadat Princip DRY JavaDoc Osvědčený Doporučuji uji psaní komentářů neodkládat Generování UML ze zdrojových kódů Vhodné, pokud se spojí s JavaDocem Přínos není tak velký

Diskuse Komentáře Otázky Připomínky Upřesnění Poznámky