Začínáme s testováním, laděním a zpracováním výjimek
- 7 min
Každý vývojář softwaru musí při vývoji kódu dokončit určitou úroveň testování a ladění a často se vyžaduje zpracování výjimek. Jak spolu tyto tři úkoly souvisí a kdy by měly být implementovány?
Testování, ladění a zpracování výjimek
Ladění kódu jasně souvisí s vývojem a testováním kódu. Nakonec provedete opravy logiky kódu při vývoji aplikace a také pravidelně spouštíte kód, abyste ověřili správnost syntaxe kódu a logiky. Jsou ale úpravy logiky kódu během procesu vývoje skutečně tím, co se myslí laděním? Ověřujete, že sestavení a spuštění vašeho kódu je skutečně to, co se myslí testováním? Ne, opravdu ne.
Jak souvisí zpracování výjimek s vývojem a testováním kódu? Co vlastně znamená "zpracování výjimek" a očekává se, že to vývojář udělá? Ve vývoji jazyka C# se chyby, ke kterým dochází během modulu runtime aplikace (versus chyby sestavení, ke kterým dochází během procesu sestavení), označují jako výjimky a "zpracování výjimek" je proces, který vývojář používá ke správě těchto výjimek modulu runtime v rámci kódu.
Možná vás zajímá, jak zpracování výjimek souvisí s vývojem a testováním kódu. Co vlastně znamená "zpracování výjimek" a očekává se, že to vývojář udělá? Ve vývoji jazyka C# se chyby, ke kterým dochází při spuštění aplikace, označují jako výjimky. Termín "zpracování výjimek" odkazuje na proces, který vývojář používá ke správě těchto výjimek modulu runtime v kódu. Chyby, ke kterým dochází během procesu sestavení, se označují jako chyby a nejsou součástí procesu zpracování výjimek.
Následující části popisují roli vývojáře při testování, ladění a zpracování výjimek.
Odpovědnosti za testování softwaru a vývojáře
Proces vývoje softwaru může zahrnovat velké množství testování. Ve skutečnosti má testování softwaru vlastní specializovanou disciplínu a testeři softwaru hrají důležitou roli při vývoji velkých aplikací. Existují dokonce přístupy k procesu vývoje softwaru, které jsou založené na testování, jako je vývoj řízený testy.
Kategorie testování softwaru je možné uspořádat do typů testování, přístupů k testování nebo kombinace obou. Jedním ze způsobů, jak kategorizovat typy testování, je rozdělit testování na funkční a nefunkční testování. Mezi funkční a nefunkční kategorie patří podkategorie testování. Funkční a nefunkční testování je například možné rozdělit do následujících podkategorií:
- Funkční testování – Testování částí – Testování integrace – Testování systému – Testování přijetí
- Nefunkční testování – Testování zabezpečení – Testování výkonu – Testování použitelnosti – Testování kompatibility
I když většina vývojářů se pravděpodobně nepovažuje za testery, očekává se určitá úroveň testování před tím, než vývojář předá svou práci. Když jsou vývojáři přiřazování formální role v procesu testování, je často na úrovni testování jednotek.
Poznámka:
Vzhledem k tomu, že testování softwaru je tak rozsáhlé téma, a protože se často provádí samostatnou pracovní rolí, formální přístupy k testování softwaru nebudou diskutovány v tomto modulu.
Odpovědnosti při ladění kódu a při práci vývojářů
Ladění kódu je proces, který vývojáři používají k izolaci problému a identifikaci jednoho nebo několika způsobů, jak ho opravit. Problém může souviset s logikou kódu nebo výjimkou. V obou případech pracujete na ladění kódu, když nefunguje tak, jak chcete. Obecně řečeno, termín ladění je vyhrazen pro běhové problémy, které není snadné izolovat. Proto oprava problémů se syntaxí, jako je chybějící ";" na konci příkazu kódu, se obvykle nepovažuje za ladění.
Představte si následující ukázkový kód:
string[] students = new string[] {"Sophia", "Nicolas", "Zahirah", "Jeong"};
int studentCount = students.Length;
Console.WriteLine("The final name is: " + students[studentCount]);
Ukázka kódu je určená k provedení následujících kroků:
- Deklarujte pole řetězců s názvem
students. Polestudentsobsahuje jména studentů. - Deklarujte celé číslo s názvem
studentCount. Kód používáLengthmetodu pole k přiřazení hodnoty .studentCount - Vytiskněte jméno konečného studenta do konzoly. Kód používá
studentCountpro přístup ke konečnému názvu vstudentspoli a používá metoduConsole.WriteLine()k tisku informací do konzoly.
Na první pohled se všechno zdá být v pořádku. Tento kód však při pokusu o tisk jména studenta do konzoly vygeneruje výjimku. Vývojář zapomněl, že pole jsou založená na nule. Konečný název v poli by měl být přístupný pomocí students[studentCount - 1].
Ladění kódu je rozhodně zodpovědností vývojáře. V této ukázce kódu jste možná problém hned rozpoznali. V složitějších scénářích kódování ale nalezení problému není vždy snadné. Nemějte obavy, existují nástroje a přístupy, které můžete použít ke sledování problémů, které jsou obtížné najít.
Zpracování výjimek a zodpovědnosti vývojářů
Jak jste si přečetli dříve, chyby, ke kterým dochází během modulu runtime aplikace, se označují jako výjimky. Pokud aplikace vygeneruje výjimku a tato výjimka není spravovaná v kódu, může způsobit vypnutí aplikace.
Zpracování výjimek je rozhodně zodpovědností vývojáře. Jazyk C# poskytuje způsob, jak "vyzkoušet" kód, který víte, může vygenerovat výjimku a způsob, jak "zachytit" všechny výjimky, ke kterým dojde.
Rekapitulace
Tady je několik důležitých věcí, které je potřeba si z této lekce zapamatovat:
- Testování, ladění a zpracování výjimek jsou všechny důležité úlohy pro vývojáře softwaru.
- Testování je možné kategorizovat do funkčního a nefunkčního testování a očekává se, že vývojáři budou provádět určitou úroveň testování.
- Ladění kódu je proces izolace problémů a identifikace způsobů, jak je opravit, a je to vývojářská odpovědnost.
- Zpracování výjimek je proces správy chyb, ke kterým dochází během běhu, a vývojáři zodpovídají za zpracování výjimek pomocí příkazů try a catch ve svém kódu.