nový přístup ke generování testovacích sad, přizpůsobený technice CLI, zahrnuje použití plánovacího systému. Plánování je dobře-studoval techniku, od umělé inteligence (AI) domény, která se pokouší řešit problémy, které se týkají čtyři parametry:
- počáteční stav,
- cíl stát,
- soubor operátorů, a
- sada objektů pro provoz na.
plánovací systémy určují cestu z počátečního stavu do cílového stavu pomocí operátorů. Jako jednoduchý příklad problému plánování, vzhledem ke dvěma slovům a jedné operaci, která nahrazuje jedno písmeno ve slově jiným, může být cílem změnit jedno slovo na druhé.
autoři použili plánovač IPP k demonstraci této techniky. Uživatelské rozhraní systému je nejprve analyzováno, aby se určily možné operace. Ty se stávají operátory používanými při plánování problému. Dále je stanoven počáteční stav systému a je stanoven cílový stav, který tester cítí, že by umožnil výkon systému. Plánovací systém určuje cestu od počátečního stavu k cílovému stavu, který se stává testovacím plánem.
použití plánovače pro generování testovacích případů má některé specifické výhody oproti ruční generaci. Plánovací systém ze své podstaty generuje řešení problémů s plánováním způsobem, který je pro testera velmi přínosný:
- plány jsou vždy platné. Výstupem systému je buď platný a správný plán, který využívá operátory k dosažení cílového stavu, nebo vůbec žádný plán. To je výhodné, protože moc času může být zbytečná, když ruční vytvoření test suite z důvodu neplatných testovacích případů, které tester myslel, že bude fungovat, ale ne.
- systém plánování věnuje pozornost pořadí. Často testovat určitou funkci, testovací případ musí být složitý a sledovat cestu přes GUI, kde jsou operace prováděny v určitém pořadí. Když se provádí ručně, může to vést k chybám a také může být docela obtížné a časově náročné.
- konečně, a co je nejdůležitější, plánovací systém je zaměřen na cíl. Tester se zaměřuje na generování testovacích sad na to, co je nejdůležitější, testování funkčnosti systému.
při ručním vytváření testovací sady se tester více zaměřuje na to, jak testovat funkci (tj. konkrétní cestu přes GUI). Pomocí plánovacího systému je cesta postarána a tester se může soustředit na to, jakou funkci testovat. Další výhodou je to, že plánovací systém není při generování cesty nijak omezen a může často najít cestu, kterou tester nikdy nepředpokládal. Tento problém je velmi důležitý pro boj.
další metoda generování testovacích případů GUI simuluje začínajícího uživatele. Zkušený uživatel systému má tendenci sledovat přímou a předvídatelnou cestu prostřednictvím GUI, zatímco začínající uživatel by sledoval náhodnější cestu. Začínající uživatel pak pravděpodobně prozkoumá více možných stavů GUI než odborník.
obtížnost spočívá v generování testovacích sad, které simulují „začínající“ využití systému. K vyřešení tohoto problému bylo navrženo použití genetických algoritmů. Začínající cesty systémem nejsou náhodné cesty. Za prvé, začínající uživatel se naučí v průběhu času a obecně nebude dělat stejné chyby opakovaně, a za druhé, začínající uživatel sleduje plán a pravděpodobně má nějaké doménové nebo systémové znalosti.
genetické algoritmy fungují následovně: sada „genů“ je vytvořena náhodně a poté je podrobena určitému úkolu. Geny, které nejlépe splní úkol, jsou zachovány a ty, které nejsou, jsou vyřazeny. Tento proces se opět opakuje s přežívající geny jsou replikovány a zbytek sady vyplněna více náhodných genů. Nakonec jeden gen (nebo malá sada genů, pokud existuje nějaká prahová sada) bude jediným genem v sadě a je přirozeně nejvhodnější pro daný problém.
v případě testování GUI funguje metoda následovně. Každý gen je v podstatě seznam náhodných celočíselných hodnot určité pevné délky. Každý z těchto genů představuje cestu přes GUI. Například, pro daný strom widgetů, první hodnota v gen (každá hodnota se nazývá alela) vyberte widget, který chcete provozovat na následující alely by pak vyplňte vstup do widgetu v závislosti na počtu možných vstupů do widgetu (například pull down list box by měl jeden vstup…seznamu vybrané hodnoty). Úspěch genů je hodnocen kritériem, které odměňuje nejlepší chování „nováčků“.
je popsán systém, který provádí toto testování pro systém X window, ale rozšiřitelný na jakýkoli okenní systém. Systém X Window poskytuje funkce (přes XServer a protokol editorů) pro dynamické odesílání vstupu GUI a získání výstupu GUI z programu bez přímého použití GUI. Například, jeden může volat XSendEvent () simulovat kliknutí na rozbalovací menu, a tak dále. Tento systém umožňuje vědcům automatizovat tvorbu a testování genů, takže pro každou danou testovanou aplikaci lze vytvořit sadu testovacích případů začínajících uživatelů.