softify.pro Flow — a COCO tesztelte

21.08.2026

Control. Clarity. Flow.

Minden komoly szoftvertermék végül egy második terméket fejleszt ki a termék mögött.

Az ügyfelek talán sohasem látják. A látogatók talán sohasem tudják meg, hogy létezik. De az adminisztrátorok, operátorok, és fejlesztők minden nap rá támaszkodnak.

A softify.pro Flow számára ez az alkalmazás az Administration — az üzemeltetési konzol, amely a felhasználók, szerepkörök, hozzáférési szintek, hitelesítési állapotok, adatbázis-környezetek, és egyéb konfiguráció kezeléséért felelős, amely egy Flow telepítést kontroll alatt tart.

A bejelentkezési képernyője három szót hordoz:
Control. Clarity. Flow.

Ezeket eredetileg azért választották, hogy leírják azt az élményt, amelyet szerettünk volna, ha az adminisztrátorok éreznek a rendszer üzemeltetése közben.

De meglepően jól leírják azt is, hogyan hisszük, hogy a szoftvert tesztelni kellene.

Ez tette a softify.pro Flow — Administration-t nyilvánvaló jelöltté egy valós COCO teszthez.

Nem egy laboratóriumi bemutató.
Nem elszigetelt gombok gyűjteménye, amelyet kifejezetten egy AI demóhoz készítettek.
Egy valódi többplatformos desktop alkalmazás valódi alkalmazáslogikával, több ablakkal, több adatbázis-backenddel, hitelesítéssel, jogosultságokkal, lokalizációval, és elegendő állapottal ahhoz, hogy a látszólag kis regressziókat ne lehessen könnyen kézzel észrevenni.

Az itt bemutatott nyilvános demonstrációhoz a COCO kizárólag generált demonstrációs adatokkal dolgozott. Az alkalmazást a fiktív Presentation GmbH vállalatnak licencelték, és semmilyen éles ügyféladatot, hitelesítő adatot, vagy személyes adatot nem használtak.

A cél egyszerű volt:
Hadd közelítse meg a COCO az alkalmazást úgy, ahogy egy tesztelő tenné, és állapítsa meg, hogy a teljes adminisztratív munkafolyamat még mindig úgy viselkedik-e, ahogy a szoftver állítja.

A kihívás

Első pillantásra egy adminisztrációs alkalmazás tesztelése egyszerűnek tűnik.

Nyisd meg.
Jelentkezz be.
Kattints végig több ablakon.
Ellenőrizd, hogy minden helyesnek tűnik-e.

Ez a feltételezés gyorsan megváltozik, amint az alkalmazás növekszik.

A softify.pro Flow — Administration nem egy statikus űrlap. Egymással összekapcsolt üzemeltetési nézetek gyűjteménye egyetlen alkalmazáshéjon belül.

Többek között az adminisztrátor dolgozhat:

  • felhasználói fiókokkal
  • szerepkörökkel és hozzáférési szintekkel
  • hitelesítési információval
  • kétfaktoros hitelesítés állapotával
  • operációsrendszer-információval
  • hálózati és IP-információval
  • adatbázis-konfigurációval
  • rendezési és megjelenítési opciókkal
  • élő nyelvválasztással
  • alkalmazás- és licencinformációval

A felület jelenleg tizenegy nyelvet támogat. Az alkalmazás emellett MySQL és PostgreSQL adatbázis-backenddel is működik. Egyenként ezen funkciók egyike sem jelent szokatlan tesztelési problémát.

A nehézség a kombinációikból ered.
Egy felhasználói táblázat helyesen működhet angolul, de elavult oszlopnevet jeleníthet meg horvátul.
A rendezés helyesen működhet MySQL-hez csatlakozva, de eltérően viselkedhet PostgreSQL-re váltás után.

Egy nyelvváltás frissítheti a legtöbb felületi elemet, miközben egy státuszüzenetet lefordítatlanul hagy. Az alkalmazás sikeresen válthat adatbázist, de megőrizheti az elavult információt az előző kapcsolatból. Egy új kiadás bevezethet egy funkciót, miközben az About párbeszédablak még mindig az előzőt írja le. A programnak nem kell összeomlania ahhoz, hogy ezen helyzetek bármelyike regresszió legyen. Valójában néhány a legkellemetlenebb szoftverhibák közül pontosan azok, ahol minden úgy tűnik, hogy működik.

Az alkalmazás elindul.
Az ablak megnyílik.
A gomb reagál.
De valami a felszín alatt már nincs egészen rendben.
Ezért fontos az ismétlődő regressziós tesztelés.

És pontosan az a fajta munka is, amelyben az emberek egyre rosszabbá válnak, miután ugyanazt a szekvenciát tucatszor megismételték.

Miért válik költségessé a manuális tesztelés

Egyszer tesztelni valamit könnyű.
Megbízhatóan tesztelni minden releváns kiadás után más dolog.

Vegyünk csak három dimenziót: 11 felületi nyelv × 2 adatbázis backend × több alkalmazás-munkafolyamat.

A kombinációk száma gyorsan növekszik.
Adjunk hozzá különböző felhasználói szerepköröket, hitelesítési állapotokat, rendezési viselkedést, konfigurációváltozásokat, és üzemeltetési környezeteket, és a tesztmátrix túl naggyá válik ahhoz, hogy alkalmi kézi ellenőrzőlistaként kezeljük.

Itt kezd gyakran erodálódni a regressziós tesztelés.
Nem szándékosan.
Egy kiadási határidő közeledik.
Valaki emlékszik, hogy az alkalmazást múlt héten tesztelték.
Egy fejlesztő gyorsan ellenőrzi a legfontosabb képernyőt.

A német működik.
Az angol működik.
A MySQL működik.
A feltételezés a következő lesz:
„A többi valószínűleg rendben van."

Általában rendben is van. Egészen addig a kiadásig, amíg nincs.
A COCO részben azért létezik, hogy eltávolítsa ezt a feltételezést a folyamatból.

Mit tett valójában a COCO

A COCO a softify.pro Flow — Administration-t egy hideg alkalmazásállapotból indította el, anélkül hogy egy korábban előkészített képernyőre vagy kézzel pozicionált munkafolyamatra támaszkodott volna.

Az első interakció ugyanaz volt, mint amelyet egy emberi adminisztrátornak mutatnak: a bejelentkezési ablak.

A COCO azonosította a hitelesítési felületet, amely tartalmazza:

  • felhasználónév
  • jelszó
  • kétfaktoros hitelesítési kód

és a sort közvetlenül a softify.pro Flow identitás alatt:
Control. Clarity. Flow.

Innentől a COCO folytatta egy meghatározott regressziós munkameneten keresztül. A lényeg nem egyszerűen annak megállapítása volt, hogy az alkalmazás megnyitható-e.

A lényeg annak ellenőrzése volt, hogy az alkalmazás állapota belsőleg konzisztens maradt-e, miközben a COCO interakcióba lépett vele.

A hitelesítés csak a kezdet

A bejelentkezés tesztelése az automatizálás egyik legnyilvánvalóbb jelöltje, de a sikeres hitelesítés önmagában nagyon keveset mond el egy adminisztratív alkalmazás többi részéről.

Miután bejutott, a COCO a tényleges üzemeltetési környezetbe lépett. Megvizsgálta a felhasználó-adminisztrációs felületet, és ellenőrizte, hogy a várt információ jelen van-e.

Ez olyan adatokat foglalt magában, mint:

  • felhasználónevek
  • maszkolt jelszavak
  • 2FA jelzők
  • hozzárendelt szerepkörök
  • operációsrendszer-információ
  • IP-címek

A COCO ezután interakcióba lépett a táblázattal, ahelyett hogy csupán megfigyelte volna.
A felhasználólista felhasználónév szerint lett rendezve.
Az eredményül kapott sorrendet megvizsgálták.
A fontos rész nem az volt, hogy az oszlopfejlécre kattintás okozott-e valamilyen látható változást.

A COCO ellenőrizte, hogy az eredményül kapott táblázatállapot megfelelt-e a kért műveletnek.

Ez a megkülönböztetés számít.
Egy funkcionális teszt azt kérdezi:
„Reagált a gomb?"

Egy hasznos regressziós teszt azt kérdezi:
„Az alkalmazás a helyes állapotba került-e?"

Az adatbázis-határ tesztelése

A softify.pro Flow egynél több adatbázis-backendet támogat.

Ez teszi az adatbázisváltást különösen fontos regressziós határrá.
A COCO megváltoztatta az aktív backendet MySQL-ről PostgreSQL-re.

A váltás után ismét megvizsgálta a felhasználói információt.
A teszt többet keresett, mint egy sikeres kapcsolatot.
Ellenőrizte, hogy az alkalmazás továbbra is a várt rekordokat mutatta-e be, és hogy a felületen keresztül megjelenített információ konzisztens maradt-e.

A COCO ezután ismét visszaváltott.


Ezt a fajta átmenetet könnyű alábecsülni.
A felhasználói felület vizuálisan azonos maradhat, miközben az alatta lévő tárolási réteg teljesen megváltozik.
Egy adminisztrátor szemszögéből ennek az átmenetnek szinte unalmasnak kellene tűnnie.
Ugyanazoknak a felhasználóknak továbbra is érthetőnek kellene lenniük.
Ugyanazoknak a szerepköröknek továbbra is értelmesnek kellene lenniük.

Ugyanannak a felületi viselkedésnek továbbra is érvényesnek kellene lennie.

Ez a látszólag eseménytelen folytonosság pontosan az, amit be kell bizonyítani.

Tizenegy nyelv, egy alkalmazásállapot

A lokalizáció egy másik terület, ahol a felszínes tesztelés különösen veszélyes.

Viszonylag könnyű ellenőrizni, hogy egy alkalmazás elindulhat-e egy másik nyelven.
Sokkal értékesebb ellenőrizni, mi történik, amikor a nyelv megváltozik, miközben az alkalmazás már fut és állapotot tart fenn.

A COCO élőben váltotta a felület nyelvét.

A munkamenet olyan nyelvek közötti átmeneteket tartalmazott, mint:
Német → Angol → Horvát
miközben az adminisztrációs nézet aktív maradt.

A COCO megfigyelte, hogy a felületi elemek helyesen megváltoztak-e a helyükön:

  • táblázatfejlécek
  • vezérlők
  • gombok
  • címkék
  • státuszüzenetek

Az alapul szolgáló táblázatnak és alkalmazásállapotnak is túl kellett élnie ezt az átmenetet.
Ez azért számít, mert a többnyelvű szoftver többől áll, mint lefordított szövegekből.
A nyelvváltások felfedhetnek:

  • elfelejtett erőforrásokat
  • elavult címkéket
  • elrendezési problémákat
  • lefordítatlan státuszüzeneteket
  • kódolási problémákat
  • állapot-visszaállításokat
  • vezérlő-újralétrehozási problémákat

Egy ablak, amely helyesnek tűnik, ha közvetlenül horvátul indul, mégis helytelenül viselkedhet, amikor a felhasználó németről horvátra vált egy aktív munkamenet során.

Ez a különbség a képernyőkép ellenőrzése és a munkafolyamat tesztelése között.

Az alkalmazásállapot visszaállítása

A COCO ezt követően visszaállította az alkalmazás alapértelmezett rendezési konfigurációját.

Ismét, a teszt nem magával a kattintással ért véget.

Az eredményül kapott sorrendet és az alkalmazás státuszterületén keresztül bemutatott megerősítést kiértékelték. Ez a fajta ellenőrzés jelentéktelennek tűnhet a hitelesítés vagy adatbázis-hozzáférés teszteléséhez képest.

Nem az.

A vállalati alkalmazások több száz ilyen kis állapotátmenetet halmoznak fel.
A felhasználók anélkül támaszkodnak rájuk, hogy tudatosan gondolkodnának róluk.
A szoftver pontosan azért érződik megbízhatónak, mert ezek az interakciók kiszámíthatók maradnak.
A regressziós tesztelés azért létezik, hogy megvédje ezt a kiszámíthatóságot.

A szoftver körüli információk tesztelése

A COCO az alkalmazás About párbeszédablakát is megnyitotta.

Miért teszteljünk egy About ablakot?

Mert a szoftverdokumentáció magán a szoftveren belül kezdődik.
A verziószámnak, funkcióleírásnak, és licencinformációnak, amelyet az operátornak bemutatnak, meg kell felelnie a ténylegesen futó alkalmazásnak.

Egy alkalmazás tökéletesen működhet, miközben még mindig elavult verzióinformációt mutat, vagy olyan képességeket ír le, amelyek már nem felelnek meg a kiadásnak.

Ez nem omlaszt össze egy adatbázist.
Valami finomabbat tesz:
csökkenti a bizalmat.

A vállalati szoftverek esetében az üzemeltetési pontosság magában foglalja ezeket a látszólag apró részleteket. A COCO ezért ezeket is ellenőrizte.

Control.

A softify.pro Flow szlogenjének első szava egyben a tesztkörnyezet első alapelve is.

A Control azt jelenti, hogy tudjuk, mit tesztelünk, milyen állapot ellenében, és milyen adatokkal.

A nyilvános COCO demonstráció nem használ ügyfél-éles adatokat.

Szándékosan előkészített demonstrációs adatokkal fut, amelyek várt állapota ismert.

Ez teszi az eredményeket reprodukálhatóvá.

Azt is jelenti, hogy a tesztfuttatások közötti különbségek kivizsgálhatók ahelyett, hogy az éles adatok véletlenszerű változásaként magyaráznánk el őket.

Még fontosabb, hogy a COCO-t önállóan üzemeltetett AI-tesztelő rendszerként tervezték.

A tesztelési bizonyítékok, alkalmazás-képernyőképek, és belső munkafolyamat-információ az ügyfél vagy üzemeltető saját kontrollja alatt álló infrastruktúrán belül maradhat, ahelyett hogy alapértelmezés szerint egy nem kapcsolódó harmadik féltől származó felhőszolgáltatáshoz küldenék.

Belső üzleti alkalmazásoknál ez nem csupán infrastrukturális preferencia. Lehet magának a tesztelési követelménynek a része.

Clarity.

Az automatizálás nem különösebben hasznos, ha a végső kimenete: FAILED
amelyet több száz sornyi technikai kimenet követ, amelyet valakinek kézzel kell rekonstruálnia, mielőtt megérti, mi történt.

A COCO-t úgy tervezték, hogy érthető bizonyítéknyomot őrizzen meg.

A jelentés leírja:

  • mit teszteltek
  • mely interakció zajlott le
  • milyen sorrendben történt
  • mit figyelt meg a COCO
  • milyen állapotot vártak
  • hol tért el a viselkedés, amikor valami meghiúsult

Képernyőképek és végrehajtási bizonyítékok kísérhetik ezt a szekvenciát.
A cél nem a technikai részletek elrejtése.

A cél az, hogy az eredmény érthető legyen, mielőtt valakinek meg kellene nyitnia egy debuggert.

Egy mérnöknek képesnek kellene lennie válaszolni:
Mi történt? mielőtt megkérdezné:
Hol a kódban történt?

Ez a megkülönböztetés drámaian lerövidíti a vizsgálatot, amikor regresszió jelenik meg.

Flow.

A hagyományos UI-automatizálás gyakran elemekben gondolkodik.

Keresd meg a szelektort.
Kattints a szelektorra.
Keress egy másik szelektort.
Ellenőrizd az értéket.

Ez a megközelítés hasznos marad, de az alkalmazásokat nem szelektorok gyűjteményeként élik meg.

Az emberek folyamatokat élnek meg.

Jelentkezz be.
Nyisd meg az adminisztrációt.
Találj egy felhasználót.
Változtass egy beállítást.
Válts adatbázist.
Változtass nyelvet.
Ellenőrizd az eredményt.

Folytasd a munkát.

A COCO ezért folyamatként kezeli a szekvenciát, nem pedig vezérlők véletlenszerű gyűjteményeként.

Követi, mit próbál elérni a felhasználó, és kontextusban értékeli az alkalmazást.

Ez különösen értékessé válik valódi üzleti szoftver tesztelésekor, mert a hibák gyakran képernyők között vagy állapotok között fordulnak elő, nem egy egyedi gombon belül.

Egy logisztikai munkafolyamat tartalmazhat egy rendelést, készletfoglalást, komissiózási műveletet, szállítólevelet, és szállítási megerősítést.
Minden egyes képernyő helyesnek tűnhet, miközben a teljes folyamat hibás.
Ugyanaz az elv érvényes itt kisebb léptékben.
Az adminisztrációs ablak nem a termék.

A rajta keresztüli munkafolyamat az.

Bizonyíték feltételezés helyett

A COCO egyik legfontosabb feladata nem a kattintás. Az, hogy emlékezzen arra, mi történt.
Az emberi regressziós tesztelés gyakran olyan kijelentéssel végződik, mint:
„Teszteltem, és minden rendben nézett ki."

Ez teljesen pontos lehet.
De néhány héttel később, amikor egy probléma felmerül, a hasznos kérdések mások:

  • Melyik kiadást tesztelték?
  • Melyik adatbázist?
  • Melyik nyelvet?
  • Milyen felhasználói állapotot?
  • Mi történt a probléma előtt?
  • Pontosan mi volt látható?

Milyen sorrendben hajtották végre a műveleteket?
A COCO tesztfuttatásait úgy tervezték, hogy bizonyítékot hagyjanak maguk után.

Ez egy teszteredményt véleményből valami vizsgálhatóvá alakít át. Egy sikeres futtatás ezért szintén hasznossá válik.
Egy ismert referenciaállapotot állapít meg, amelyhez a későbbi viselkedés hasonlítható.

A COCO nem a döntéshozó

Fontos határ van abban, ahogyan az AI-t szoftvertesztelésre használjuk.
A COCO célja nem a mérnöki felelősség helyettesítése.

Nem dönti el, milyennek kellene lennie egy üzleti szabálynak.

Az alkalmazáshoz meghatározott forgatókönyvek, követelmények, és elvárások ellenében teszteli a viselkedést. Jogosultságokat, árakat, készletet, pénzügyi tranzakciókat, vagy más kritikus üzleti állapotokat érintő érzékeny döntéseknél a helyes viselkedés meghatározása emberi felelősség marad.

Ez a megkülönböztetés számít.
Az AI kiváló abban, hogy koncentráció elvesztése nélkül ismételjen meg egy részletes tesztet. Kiváló bizonyítékok gyűjtésében.
Megvizsgálhat képernyőket, összehasonlíthatja a várt és megfigyelt viselkedést, és megmagyarázhatja az eltéréseket. De az üzlet határozza meg továbbra is, mit jelent a helyes.

A COCO tesztelhetővé teszi ezt a meghatározást.

A teszt, amelyet senki sem akar megismételni

Egyszerű oka van annak, hogy az automatizálás itt értéket ad.
Egy emberi tesztelő teljesen képes végrehajtani ezt a regressziós munkamenetet.
Az első nyelv teljes figyelmet kap.
Valószínűleg a második is.
Aztán egy másik.
Aztán egy másik.
A MySQL-t már ellenőrizték.
A PostgreSQL-t még ellenőrizni kell.
A rendezési tesztet már többször elvégezték.
Az About párbeszédablak hónapok óta nem változott.

Péntek délután van.

És az emberi figyelem azt teszi, amit az emberi figyelem természetesen tesz. Elkezd optimalizálni.
A COCO nem. A COCO saját szellemében:

  • Nem unom meg ugyanazt a gombot tizenegy nyelven kattintani. Nem hagyom ki a PostgreSQL menetet, mert péntek délután van. Nem feltételezem, hogy a rendezési sorrend megmaradt, mert az előző kiadásban működött.

A COCO számára minden regressziós munkamenet úgy kezelhető, mintha az első lenne. Ez nem intelligencia, amely helyettesíti az emberi tesztelőt.
Ez automatizálás, amely megvédi az emberi tesztelőt a tesztelés azon részétől, ahol az emberi figyelem a legkevésbé értékes.

Az ismétlődő teszteléstől a mérnöki bizonyítékig

A COCO nagyobb célja nem az automatizált műveletek számának maximalizálása.
Ezer automatizált kattintás jelentéktelen, ha senki sem érti, mit bizonyítanak. A hasznos eredmény bizonyítékkal alátámasztott bizalom.

A softify.pro Flow esetében ez azt jelenti, hogy el tudjuk mondani: egy kiadást átvizsgáltak azokon az üzemeltetési területeken, amelyek számítanak:

  • hitelesítés
  • felhasználó-adminisztráció
  • szerepkörök és hozzáférési információ
  • kétfaktoros hitelesítési állapot
  • rendezési viselkedés
  • MySQL működés
  • PostgreSQL működés
  • élő lokalizáció
  • státusz-visszajelzés
  • alkalmazás-információ
  • licencinformáció

és hogy az eredmény olyan formában marad meg, amely utólag áttekinthető. Ugyanaz az elv messze ezen az alkalmazáson túl is skálázódik.
Egy bejelentkezési folyamat így tesztelhető.
Egy foglalási munkafolyamat így tesztelhető.
Egy logisztikai folyamat így tesztelhető.
Egy többplatformos desktop alkalmazás így tesztelhető.
A képernyők változnak.
Az üzleti szabályok változnak.
Az elv nem:
határozza meg a várt munkafolyamatot, hajtsa végre következetesen, gyűjtsön bizonyítékot, és tegye érthetővé az eredményt.

Miért teszteljük saját szoftverünket a COCO-val

Van egy másik oka annak, hogy a softify.pro Flow fontos COCO esettanulmányként.

Ez a mi saját szoftverünk.
Ez eltávolítja azt a kényelmes távolságot, amely néha egy technológiai bemutató és a bemutatók emberei között fennáll.

Ha a COCO célja vállalati szoftver tesztelése, elég hasznosnak kell lennie ahhoz, hogy megbízzunk benne olyan szoftverrel, amelyet ténylegesen mi magunk fejlesztünk és adunk ki.

A Flow ezért egyszerre terméknek és próbaterepnek is szolgál.
Az új tesztelési képességek egy valódi alkalmazáson próbálhatók ki.
A váratlan viselkedés gyengeségeket tárhat fel az alkalmazásban, a teszttervben, vagy magában a COCO-ban.

Mindkét oldal javítja a másikat.
Ez a visszacsatolási hurok sokkal értékesebb, mint mesterséges bemutatók építése, amelyeket csak sikerre terveztek. Egy tesztrendszernek nem szabadna meggyőzőnek tűnnie azért, mert a bemutató könnyű volt.
Meggyőzővé kellene válnia, mert továbbra is megtalálja azokat az apróságokat, amelyeket az emberek idővel abbahagynák ellenőrizni.

Az eredmény

A softify.pro Flow — Administration-nak most már van egy dokumentált és megismételhető regressziós folyamata, amelyet a COCO a releváns kiadások előtt végrehajthat.

A teszt mindkét támogatott adatbázis-környezetet és az alkalmazás tizenegy nyelvű felületét lefedi, miközben úgy követi az alkalmazást, ahogyan egy adminisztrátor használná, ahelyett hogy minden képernyőt elszigetelt tesztcélpontként kezelne.

A COCO bizonyítéknyomot készít, amely megmutatja, mit teszteltek, mit figyeltek meg, és milyen sorrendben zajlott a munkamenet.

Ez a bizonyíték helyben kontrollálva maradhat.
A fejlesztők reprodukálható kiindulópontot kapnak, amikor valami megváltozik.
Az emberi tesztelők kevesebb időt töltenek kiszámítható interakciók ismétlésével, és több időt azon helyzetek vizsgálatával, amelyek valóban ítélőképességet igényelnek.

És a softify.pro Flow valami értékesebbet kap, mint egy zöld PASS jelzést.

Bizonyítékot kap arra, hogy a bejelentkezési képernyőjén ígért élmény továbbra is létezik, miután az alatta lévő kód megváltozik.

Control. Tudd, mit tesztelnek, és tartsd kontroll alatt a környezetet.

Clarity. Értsd meg, mi történt, anélkül hogy rekonstruálnál egy átláthatatlan automatizálási naplót.

Flow. Teszteld az alkalmazást olyan folyamatként, amelyet az emberek ténylegesen használnak.

Control. Clarity. Flow.

A szoftverhez írták.
Kiderült, hogy éppolyan jól leírja a mögötte álló tesztelési filozófiát is.