softify.pro Flow — testirano s COCO
21.08.2026
Control. Clarity. Flow.
Vsak resen programski izdelek sčasoma razvije drug izdelek za izdelkom.
Stranke ga morda nikoli ne vidijo. Obiskovalci morda nikoli ne izvedo, da obstaja. Toda administratorji, operaterji, in razvijalci se nanj zanašajo vsak dan.
Za softify.pro Flow je ta aplikacija Administration — operativna konzola, odgovorna za upravljanje uporabnikov, vlog, ravni dostopa, stanj avtentikacije, okolij podatkovnih zbirk, in drugih konfiguracij, ki ohranja uvedbo Flow pod nadzorom.
Njen prijavni zaslon nosi tri besede:
Control. Clarity. Flow.
Prvotno so bile izbrane, da opišejo izkušnjo, ki smo si jo želeli za administratorje pri upravljanju sistema.
A presenetljivo dobro opisujejo tudi to, kako po našem mnenju bi bilo treba testirati programsko opremo.
Zaradi tega je softify.pro Flow — Administration postal očiten kandidat za resničen test COCO.
Ne laboratorijska demonstracija.
Ne zbirka izoliranih gumbov, pripravljenih posebej za AI demo.
Prava medplatformska namizna aplikacija z resnično aplikacijsko logiko, več okni, več zaledji podatkovnih zbirk, avtentikacijo, dovoljenji, lokalizacijo, in dovolj stanja, da navidezno majhne regresije postane ročno težko opaziti.
Za javno demonstracijo, prikazano tukaj, je COCO deloval izključno z generiranimi demonstracijskimi podatki. Aplikacija je bila licencirana za fiktivno podjetje Presentation GmbH, in nobeni produkcijski podatki o strankah, poverilnice, ali osebni podatki niso bili uporabljeni.
Cilj je bil preprost:
Naj COCO pristopi k aplikaciji tako, kot bi to storil tester, in ugotovi, ali se celoten administrativni delovni tok še vedno obnaša tako, kot programska oprema trdi.
Izziv
Na prvi pogled se testiranje administrativne aplikacije zdi preprosto.
Odprite jo.
Prijavite se.
Kliknite skozi več oken.
Preverite, ali je vse videti pravilno.
Ta predpostavka se hitro spremeni, ko aplikacija zraste.
softify.pro Flow — Administration ni en sam statičen obrazec. Je zbirka medsebojno povezanih operativnih pogledov znotraj ene aplikacijske lupine.
Med drugim lahko administrator dela z:
- uporabniškimi računi
- vlogami in ravnmi dostopa
- informacijami o avtentikaciji
- stanjem dvofaktorske avtentikacije
- informacijami o operacijskem sistemu
- omrežnimi in IP informacijami
- konfiguracijo podatkovne zbirke
- možnostmi razvrščanja in prikaza
- izbiro jezika v živo
- informacijami o aplikaciji in licenciranju
Vmesnik trenutno podpira enajst jezikov.
Aplikacija deluje tudi z zaledji podatkovnih zbirk MySQL in PostgreSQL.
Posamično nobena od teh funkcij ne predstavlja nenavadnega testnega problema.
Težava izhaja iz njihovih kombinacij.
Uporabniška tabela lahko pravilno deluje v angleščini, a prikazuje zastarelo ime stolpca v hrvaščini.
Razvrščanje lahko pravilno deluje, ko je povezano z MySQL, a se obnaša drugače po preklopu na PostgreSQL.
Sprememba jezika lahko posodobi večino elementov vmesnika, medtem ko eno statusno sporočilo ostane neprevedeno.
Aplikacija lahko uspešno preklopi podatkovne zbirke, a ohrani zastarele informacije iz prejšnje povezave. Nova izdaja lahko uvede funkcijo, medtem ko pogovorno okno About še vedno opisuje prejšnjo. Program se ne rabi sesuti, da bi bila katera koli od teh situacij regresija.
Pravzaprav so nekatere najbolj neprijetne programske napake ravno tiste, kjer je videti, da vse deluje.
Aplikacija se zažene.
Okno se odpre.
Gumb se odzove.
A nekaj v ozadju ni več čisto v redu.
Zato je ponavljajoče regresijsko testiranje pomembno.
In je tudi natanko taka vrsta dela, pri kateri ljudje postajajo vse slabši, potem ko isto zaporedje ponovijo desetine krat.
Zakaj ročno testiranje postane drago
Nekaj testirati enkrat je enostavno.
Zanesljivo testirati po vsaki relevantni izdaji je nekaj drugega.
Upoštevajte samo tri razsežnosti:
11 jezikov vmesnika × 2 zaledji podatkovnih zbirk × več delovnih tokov aplikacije.
Število kombinacij hitro narašča.
Dodajte različne uporabniške vloge, stanja avtentikacije, obnašanje razvrščanja, spremembe konfiguracije, in operativna okolja, in testna matrika postane prevelika, da bi jo obravnavali kot občasen ročni kontrolni seznam.
Tu se regresijsko testiranje pogosto začne krhati.
Ne namerno.
Rok za izdajo se približuje.
Nekdo se spomni, da je bila aplikacija testirana prejšnji teden.
Razvijalec na hitro preveri najpomembnejši zaslon.
Nemščina deluje.
Angleščina deluje.
MySQL deluje.
Predpostavka postane:
„Ostalo je verjetno v redu."
Navadno je.
Do izdaje, kjer ni.
COCO deloma obstaja zato, da to predpostavko odstrani iz procesa.
Kaj je COCO dejansko naredil
COCO je zagnal softify.pro Flow — Administration iz hladnega stanja aplikacije, ne da bi se opiral na predhodno pripravljen zaslon ali ročno postavljen delovni tok.
Prva interakcija je bila enaka tisti, ki je predstavljena človeškemu administratorju:
prijavno okno.
COCO je prepoznal vmesnik za avtentikacijo, ki vsebuje:
- uporabniško ime
- geslo
- kodo dvofaktorske avtentikacije
in vrstico neposredno pod identiteto softify.pro Flow:
Control. Clarity. Flow.
Od tam je COCO nadaljeval skozi definirano regresijsko sejo.
Namen ni bil zgolj ugotoviti, ali je bilo aplikacijo mogoče odpreti.
Namen je bil preveriti, ali je stanje aplikacije ostalo notranje dosledno, medtem ko je COCO z njo komuniciral.
Avtentikacija je le začetek
Testiranje prijave je eden najbolj očitnih kandidatov za avtomatizacijo, a uspešna avtentikacija sama po sebi pove zelo malo o ostalem delu administrativne aplikacije.
Ko je bil enkrat notri, se je COCO premaknil v dejansko operativno okolje.
Pregledal je vmesnik za administracijo uporabnikov in preveril, da so bile pričakovane informacije prisotne.
To je vključevalo podatke, kot so:
- uporabniška imena
- maskirana gesla
- indikatorji 2FA
- dodeljene vloge
- informacije o operacijskem sistemu
- IP naslovi
COCO je nato komuniciral s tabelo, namesto da bi jo zgolj opazoval.
Seznam uporabnikov je bil razvrščen po uporabniškem imenu.
Nastali vrstni red je bil pregledan.
Pomemben del ni bil, ali je klik na glavo stolpca povzročil kakšno vidno spremembo.
COCO je preveril, ali se nastalo stanje tabele ujema z zahtevano operacijo.
Ta razlika je pomembna.
Funkcionalni test vpraša:
„Ali se je gumb odzval?"
Uporaben regresijski test vpraša:
„Ali je aplikacija na koncu prišla v pravilno stanje?"
Testiranje meje podatkovne zbirke
softify.pro Flow podpira več kot eno zaledje podatkovne zbirke.
Zaradi tega je preklop podatkovne zbirke še posebej pomembna regresijska meja.
COCO je spremenil aktivno zaledje z MySQL na PostgreSQL.
Po preklopu je znova pregledal informacije o uporabnikih.
Test je iskal več kot le uspešno povezavo.
Preveril je, ali je aplikacija še naprej prikazovala pričakovane zapise, in ali so informacije, prikazane prek vmesnika, ostale dosledne.
COCO se je nato znova preklopil nazaj.
Tovrsten prehod je enostavno podceniti.
Uporabniški vmesnik lahko ostane vizualno enak, medtem ko se shramba pod njim popolnoma spremeni.
Z vidika administratorja bi se moral ta prehod zdeti skoraj dolgočasen.
Isti uporabniki bi morali ostati razumljivi.
Iste vloge bi morale ostati smiselne.
Isto obnašanje vmesnika bi moralo še vedno veljati.
Ta navidezno nedramatična kontinuiteta je natanko to, kar je treba dokazati.
Enajst jezikov, eno stanje aplikacije
Lokalizacija je še eno področje, kjer je površno testiranje še posebej nevarno.
Razmeroma enostavno je preveriti, da se aplikacija lahko zažene v drugem jeziku.
Veliko bolj koristno je preveriti, kaj se zgodi, ko se jezik spremeni, medtem ko aplikacija že teče in hrani stanje.
COCO je jezik vmesnika preklopil v živo.
Seja je vključevala prehode med jeziki, kot so:
nemščina → angleščina → hrvaščina
medtem ko je pogled administracije ostal aktiven.
COCO je opazoval, ali so se elementi vmesnika pravilno spremenili na mestu:
- glave tabel
- kontrolniki
- gumbi
- oznake
- statusna sporočila
Osnovna tabela in stanje aplikacije sta morala prav tako preživeti ta prehod.
To je pomembno, ker večjezična programska oprema obsega več kot le prevedene nize.
Spremembe jezika lahko razkrijejo:
- pozabljene vire
- zastarele oznake
- težave z razporeditvijo
- neprevedena statusna sporočila
- težave s kodiranjem
- ponastavitve stanja
- težave s ponovnim ustvarjanjem kontrolnikov
Okno, ki je videti pravilno, ko se zažene neposredno v hrvaščini, se lahko še vedno obnaša napačno, ko uporabnik preklopi iz nemščine v hrvaščino med aktivno sejo.
To je razlika med preverjanjem posnetka zaslona in testiranjem delovnega toka.
Obnovitev stanja aplikacije
COCO je nato obnovil privzeto konfiguracijo razvrščanja aplikacije.
Spet, test se ni končal s samim klikom.
Nastali vrstni red in potrditev, predstavljena prek statusnega območja aplikacije, sta bila ovrednotena. Ta vrsta preverjanja se lahko zdi nepomembna v primerjavi s testiranjem avtentikacije ali dostopa do podatkovne zbirke.
Ni.
Poslovne aplikacije nakopičijo na stotine takšnih majhnih prehodov stanja.
Uporabniki se nanje zanašajo, ne da bi o njih zavestno razmišljali.
Programska oprema deluje zanesljivo prav zato, ker te interakcije ostajajo predvidljive.
Regresijsko testiranje obstaja, da to predvidljivost zaščiti.
Testiranje informacij okoli programske opreme
COCO je odprl tudi pogovorno okno About aplikacije.
Zakaj testirati okno About?
Ker se dokumentacija programske opreme začne znotraj same programske opreme.
Številka različice, opis funkcij, in informacije o licenciranju, predstavljene operaterju, bi morale ustrezati aplikaciji, ki dejansko teče.
Aplikacija lahko deluje popolno, medtem ko še vedno prikazuje zastarele informacije o različici ali opisuje zmožnosti, ki ne ustrezajo več izdaji.
To ne sesuje podatkovne zbirke.
Naredi nekaj bolj subtilnega:
zmanjša zaupanje.
Za poslovno programsko opremo operativna natančnost vključuje te navidezno majhne podrobnosti.
COCO je zato preveril tudi te.
Control.
Prva beseda v sloganu softify.pro Flow je tudi prvo načelo testnega okolja.
Control pomeni vedeti, kaj se testira, glede na katero stanje, in s katerimi podatki.
Javna demonstracija COCO ne uporablja produkcijskih zapisov strank.
Teče z namerno pripravljenimi demonstracijskimi podatki, katerih pričakovano stanje je znano.
To naredi rezultate ponovljive.
Prav tako pomeni, da je razlike med testnimi izvajanji mogoče preiskati, namesto da bi jih pojasnili kot naključne spremembe v produkcijskih podatkih.
Kar je še pomembneje, COCO je zasnovan kot samostojno gostovan AI testni sistem.
Testni dokazi, posnetki zaslona aplikacije, in informacije o notranjem delovnem toku lahko ostanejo znotraj infrastrukture pod lastnim nadzorom stranke ali operaterja, namesto da bi bili privzeto poslani nepovezani storitvi v oblaku tretje osebe.
Za notranje poslovne aplikacije to ni zgolj infrastrukturna preferenca.
Lahko je del same testne zahteve.
Clarity.
Avtomatizacija ni posebej koristna, če je njen končni rezultat:
FAILED
ki mu sledijo stotine vrstic tehničnega izpisa, ki ga mora nekdo ročno rekonstruirati, preden razume, kaj se je zgodilo.
COCO je zasnovan tako, da ohranja razumljivo sled dokazov.
Poročilo opisuje:
- kaj je bilo testirano
- katera interakcija se je zgodila
- v kakšnem zaporedju se je zgodila
- kaj je COCO opazil
- katero stanje je bilo pričakovano
- kje se je obnašanje razlikovalo, ko je nekaj spodletelo
Posnetki zaslona in dokazi o izvajanju lahko spremljajo to zaporedje.
Namen ni skriti tehnične podrobnosti.
Je narediti rezultat razumljiv, preden mora nekdo odpreti razhroščevalnik.
Inženir bi moral biti sposoben odgovoriti:
Kaj se je zgodilo?
preden vpraša:
Kje v kodi se je to zgodilo?
Ta razlika dramatično skrajša preiskavo, ko se pojavi regresija.
Flow.
Tradicionalna avtomatizacija UI pogosto razmišlja v elementih.
Najdi selektor.
Klikni selektor.
Najdi drug selektor.
Preveri vrednost.
Ta pristop ostaja koristen, a aplikacij ne doživljamo kot zbirke selektorjev.
Ljudje doživljajo tokove.
Prijavite se.
Odprite administracijo.
Najdite uporabnika.
Spremenite nastavitev.
Preklopite podatkovno zbirko.
Spremenite jezik.
Preverite rezultat.
Nadaljujte z delom.
COCO zato zaporedje obravnava kot proces, ne kot naključno zbirko kontrolnikov.
Sledi temu, kar uporabnik poskuša doseči, in vrednoti aplikacijo v kontekstu.
To postane še posebej dragoceno pri testiranju resnične poslovne programske opreme, ker se napake pogosto pojavijo med zasloni ali med stanji, ne znotraj posameznega gumba.
Logistični delovni tok lahko vsebuje naročilo, rezervacijo zaloge, operacijo komisioniranja, dobavnico, in potrditev pošiljke.
Vsak posamezen zaslon je lahko videti pravilen, medtem ko je celoten proces napačen.
Isto načelo velja tukaj v manjšem obsegu.
Okno administracije ni izdelek.
Delovni tok skozenj je.
Dokazi namesto predpostavk
Ena najpomembnejših nalog COCO ni klikanje.
Je pomniti, kaj se je zgodilo.
Človeško regresijsko testiranje se pogosto konča z izjavo, kot je:
„Testiral sem in vse je bilo videti v redu."
To je morda popolnoma točno.
A nekaj tednov pozneje, ko se pojavi problem, so koristna vprašanja drugačna:
- Katera izdaja je bila testirana?
- Katera podatkovna zbirka?
- Kateri jezik?
- Katero stanje uporabnika?
- Kaj se je zgodilo pred problemom?
- Kaj natanko je bilo vidno?
V kakšnem vrstnem redu so bila dejanja izvedena?
Testna izvajanja COCO so zasnovana tako, da za seboj puščajo dokaze.
To preoblikuje rezultat testa iz mnenja v nekaj, kar je mogoče pregledati.
Uspešno izvajanje zato postane koristno tudi samo po sebi.
Vzpostavi znano referenčno stanje, s katerim je mogoče primerjati poznejše obnašanje.
COCO ni tisti, ki odloča
Obstaja pomembna meja v načinu, kako uporabljamo AI za testiranje programske opreme.
COCO ni namenjen nadomeščanju inženirske odgovornosti.
Ne odloča, kakšno naj bi bilo poslovno pravilo.
Testira obnašanje glede na scenarije, zahteve, in pričakovanja, opredeljena za aplikacijo.
Za občutljive odločitve, ki vključujejo dovoljenja, cene, zaloge, finančne transakcije, ali druga kritična poslovna stanja, opredelitev pravilnega obnašanja ostaja človeška odgovornost.
Ta razlika je pomembna.
AI je odličen pri ponavljanju podrobnega testa, ne da bi izgubil koncentracijo.
Odličen je pri zbiranju dokazov.
Lahko pregleduje zaslone, primerja pričakovano in opaženo obnašanje, in pojasni neskladja.
A posel še vedno definira, kaj pomeni pravilno.
COCO to definicijo naredi testljivo.
Test, ki ga nihče ne želi ponoviti
Obstaja preprost razlog, zakaj avtomatizacija tukaj dodaja vrednost.
Človeški tester lahko to regresijsko sejo povsem opravi.
Prvi jezik dobi polno pozornost.
Verjetno tudi drugi.
Nato še eden.
Nato še eden.
MySQL je bil že preverjen.
PostgreSQL je še treba preveriti.
Test razvrščanja je bil že izveden večkrat.
Pogovorno okno About se že mesece ni spremenilo.
Petek popoldne je.
In človeška pozornost počne to, kar človeška pozornost naravno počne.
Začne optimizirati.
COCO ne.
V duhu samega COCO:
- Ne naveličam se klikanja istega gumba v enajstih jezikih. Ne preskočim preizkusa PostgreSQL, ker je petek popoldne. Ne predpostavim, da je vrstni red razvrščanja obveljal, ker je deloval v prejšnji izdaji.
Za COCO je vsako regresijsko sejo mogoče obravnavati, kot da je prva.
To ni inteligenca, ki nadomešča človeškega testerja.
Je avtomatizacija, ki ščiti človeškega testerja pred delom testiranja, kjer je človeška pozornost najmanj dragocena.
Od ponavljajočega testiranja do inženirskih dokazov
Širši namen COCO ni maksimirati število avtomatiziranih dejanj.
Tisoč avtomatiziranih klikov je brez pomena, če nihče ne razume, kaj dokazujejo.
Koristen izid je zaupanje, podprto z dokazi.
Za softify.pro Flow to pomeni, da lahko rečemo, da je bila izdaja preizkušena po operativnih področjih, ki štejejo:
- avtentikacija
- administracija uporabnikov
- informacije o vlogah in dostopu
- stanje dvofaktorske avtentikacije
- obnašanje razvrščanja
- delovanje MySQL
- delovanje PostgreSQL
- lokalizacija v živo
- statusne povratne informacije
- informacije o aplikaciji
- informacije o licenciranju
in da je rezultat ohranjen v obliki, ki jo je mogoče pozneje pregledati.
Isto načelo se razteza daleč onkraj te aplikacije.
Prijavni proces je mogoče testirati na ta način.
Delovni tok rezervacije je mogoče testirati na ta način.
Logistični proces je mogoče testirati na ta način.
Medplatformsko namizno aplikacijo je mogoče testirati na ta način.
Zasloni se spreminjajo.
Poslovna pravila se spreminjajo.
Načelo se ne:
opredeli pričakovan delovni tok, ga dosledno izvaja, zbira dokaze, in naredi rezultat razumljiv.
Zakaj testiramo lastno programsko opremo s COCO
Obstaja še en razlog, zakaj je softify.pro Flow pomemben kot študija primera COCO.
Je naša lastna programska oprema.
To odpravi udobno razdaljo, ki včasih obstaja med tehnološko demonstracijo in ljudmi, ki jo predstavljajo.
Če je COCO namenjen testiranju poslovne programske opreme, mora biti dovolj koristen, da mu zaupamo programsko opremo, ki jo dejansko sami razvijamo in izdajamo.
Flow tako deluje kot izdelek in kot preizkusno polje hkrati.
Nove testne zmožnosti je mogoče preizkusiti na resnični aplikaciji.
Nepričakovano obnašanje lahko razkrije šibkosti v aplikaciji, testnem načrtu, ali samem COCO.
Vsaka stran izboljšuje drugo.
Ta povratna zanka je veliko bolj dragocena od gradnje umetnih demonstracij, zasnovanih zgolj za uspeh. Testni sistem ne bi smel biti videti prepričljiv zato, ker je bila demonstracija enostavna.
Postati bi moral prepričljiv zato, ker še naprej najde majhne stvari, ki bi jih ljudje sčasoma nehali preverjati.
Rezultat
softify.pro Flow — Administration ima zdaj dokumentiran in ponovljiv regresijski proces, ki ga lahko COCO izvede pred relevantnimi izdajami.
Test obsega obe podprti okolji podatkovnih zbirk, in enajstjezični vmesnik aplikacije, medtem ko sledi aplikaciji tako, kot bi jo uporabljal administrator, namesto da bi vsak zaslon obravnaval kot izoliran testni cilj.
COCO ustvari sled dokazov, ki prikazuje, kaj je bilo testirano, kaj je bilo opaženo, in v kakšnem vrstnem redu se je seja odvijala.
Ti dokazi lahko ostanejo pod lokalnim nadzorom.
Razvijalci pridobijo ponovljivo izhodišče, ko se nekaj spremeni.
Človeški testerji porabijo manj časa za ponavljanje predvidljivih interakcij, in več časa za preiskovanje situacij, ki resnično zahtevajo presojo.
In softify.pro Flow prejme nekaj bolj dragocenega kot zelen indikator PASS.
Prejme dokaz, da izkušnja, obljubljena na njegovem prijavnem zaslonu, še naprej obstaja, potem ko se koda pod njo spremeni.
Control.
Vedite, kaj se testira, in ohranite okolje pod nadzorom.
Clarity.
Razumite, kaj se je zgodilo, ne da bi morali rekonstruirati nepregleden dnevnik avtomatizacije.
Flow.
Testirajte aplikacijo kot proces, ki ga ljudje dejansko uporabljajo.
Control. Clarity. Flow.
Napisano je bilo za programsko opremo.
Izkazalo se je, da enako dobro opisuje tudi testno filozofijo, ki stoji za njo.