TestNGLukas

Lukáš Jungmann decided to improve TestNG as part of his bachelor's thesis. I am supposed to lead him and write a review. To follow the best practices of working backwards, let's write a review before we really start. As Lukáš writes his work in Czech, the review is in Czech as well.


Verified on May 7, 2012:

Hodnocení bakalářské práce

Dlouhodobě jsem nespokojený s tím, že studenské práce, jakkoli kvalitní, jen málokdy najdou uplatnění v praxi a končí jen ve školních archívech. Když mne Lukáš Jungmann kontaktoval, abych se stal vedoucím jeho bakalářské práce, nabídl jsem mu, že se to pokusíme změnit. Jsem šťastný, že Lukáš se této výzvy nezalekl a přijal ji. Jsem nadšený, když vidím, jak výborně se s ní dokázal vypořádat.

Lukáš prokázal hluboké znalosti JUnit a TestNG a různých způsobů testování obecně. Protože se testování čím dále více stává součástí programátorské práce, budou se mu tyto poznatky hodit v jeho budoucí profesní kariéře. A nejen to! Úvodní pasáže Lukášovi práce se skvěle hodí jako úvod do testování pro začínající programátory. Velmi dobře vysvětlují proč a jak testovat, přibližují různé způsoby testování a podávají ucelený obrázek toho, proč je testování důležité.

Lukáš se však nezastavil u pasivního popisu současného světa testování. Lukáš se jej rozhodl změnit! Na základě analýzy skutečných problémů, s nimiž se setkáváme při vývoji a testování NetBeans, se rozhodl usnadnit postupný přechod z JUnitu na TestNG. Díky Lukášově práci je nyní možno jednoduše používat TestNG souběžně s JUnitem. Tudíž NetBeans projekt může nadále spouštět již existující JUnit testy, nové psát v TestNG a krok za krokem přepisovat staré testy na nový styl. Tento inkrementální způsob přechodu na TestNG zřejmě ocení i mnohé další softwarové projekty. Autor TestNG, Cédric Beust, může být Lukášovi vděčný, že odstranil, dle mého názoru, největší překážku na cestě od JUnitu k TestNG. Věřím, že praktické důsledky Lukášovi práce budou mít větší vliv na množství uživatelů TestNG než Cédricovy knihy a několikaleté věrozvěstování na všemožných konferencích.

Kromě praktické užitečnosti a technické kvality věci, bych rád ocenil i sociální stránku Lukášovi práce. Tím, že se Lukáš rozhodl dovést TestNG do nových oblastí, narazil zcela zákonitě na limity a různá omezení původního návrhu. Klasický přístup by se pokusil tyto překážky nějakým způsobem obejít. Lukáš však zvolil z dlouhodobé perspektivy mnohem stabilnější postup - rozhodl se původní technologie vylepšit a tato omezení odstranit. Zde se projevily Lukášovi detailní znalosti TestNG, Antu a NetBeans, ale především jeho cit pro práci s ostatními programátory a jejich komunitami. Vnitřní kultura těchto projektů se liší a nalézt správný přístup, který je přesvědčí, aby přijali kontribuci zvně svých řad, není vždy jednoduché. To, že Lukáš dokázal najít způsob, jak dostat nezbytné změny do všech těchto projektů, a to, že tyto změny již jsou či v nejbližší době budou součástí produkčních verzí, je důkazem, že Lukáš nejenže odvedl kvalitní práci, ale že o tom dokáže přesvědčit i programátory přispívající do jedněch z nejdůležitějších Javovských projektů.

Pro ilustraci výše uvedených tvrzení cituji slova Cédrica Beusta, zakladatele projektu TestNG:

At any rate, I certainly agree that Lukáš deserves much praise for being
able to dive into the (complex) code base of TestNG and being able to add
such a core integration. In my opinion, this kind of feature is much, much
harder than writing your own code from scratch, so congratulations Lukáš.

Mně nezbývá než souhlasit, zvolat "Výborně!" a popřát Lukášovi podobné úspěchy v dalším studiu a hlavně v jeho budoucí programátorské práci.

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo