V minulém roce jsem byl přizván k řešení chyby aplikace, která se projevila až v jejím produkčním provozu. Uživatelé si stěžovali, že se práce s aplikací zpomaluje, zpomalují se o odezvy operačního systému, až dojde k jeho úplnému zatuhnutí. K problémům docházelo vždy až po několika hodinách práce s aplikací.
Primární podpora zjistila nárůst spotřeby operační paměti prohlížečem Internet Explorer 8. Problém byl simulován pouze v Microsoft Internet Exploreru, což je vždy příjemná zpráva. Dost mne poblavila informace, že ke vzniku memory leaks v tomto prohlížeči už není nutné vytvářet cyklické reference ani uzávěry, v Redmondu se tedy naučili bez nich obejít.
K sepsání tohoto článku mne vedla otázka, proč tento problém nebyl odhalen během uživatelského testování. Odpověď je ve způsobu, jakým jsou tyto testy organizovány. Testeři pracují podle testovacích scénářů. Ty zpravidla vyžadují přihlášení do aplikace pod nějakým účtem, provedení několika kliků a ověření výsledku akce. Takový tester většinou několikrát za den svůj prohlížeč restartuje, většinou tehdy, když se chce přihlásit jako jiný uživatel. Tester navíc občas smaže dočasná data, aby se zbavil kešovaného obsahu a cookies. Uživatelé aplikace však pracují jinak. Ráno se do aplikace přihlásí a pracují v ní do zemdlení. Případně do zemdlení operačního systému. Nemažou žádná dočasná data a nerestartují prohlížeč.
Jsem toho názoru, že při vytváření testovacích scénářů je nutné pokrýt nejenom to, co budou uživatelé s aplikací dělat, ale také jak to budou dělat. Takže když se očekává, že budou aplikaci používat celý den, měl by být vytvořen test, patrně automatizovaný, který dlouhodobé použití otestuje.