
Jak jsme si postavili TestBench
…aneb proč nepotřebujete celý mikroskop, když chcete otestovat firmware
Přejít na obsah|Přejít k hlavnímu menu|Přejít k vyhledávání
Při testování složitějších systémů často docházím do stavu, kdy potřebuji porovnávat hodnoty před a po provedení určité operace. Současně si také chci vypsat kompletní stav systému a ověřit, že provedená operace neovlivnila i něco dalšího.
Moje představa byla nechat si vypsat všechny hodnoty parametrů do přehledné tabulky a barevně označit ty, u kterých došlo ke změně.
Pro účely tohoto článku jsem potřeboval nějakou ukázkovou aplikaci, která by se podobala mému použití při testování aplikace pro elektronový mikroskop. Napadlo mě API pro ovládání digitálního fotoaparátu — je to sice něco jiného než mikroskop, ale nějaké čočky se zde najdou také. A protože jsem líný, nechal jsem ChatGPT, ať mi takové API vytvoří.

Jednoduché vypsání hodnot parametrů vypadá následovně. Při velkém počtu parametrů může být ale takový výpis nepřehledný.
Kompletní ukázkový skript najdete zde: test1.py
from dslr import DSLRCamera # dummy app
camera1 = DSLRCamera("Canon")
rint('Before:')
print(f'camera1.iso: {camera1.iso}')
...
camera1.iso = 700
...
print('After:')
print(f'camera1.iso: {camera1.iso}')
Pro zlepšení přehlednosti můžeme data vypsat formou ASCII tabulky. K tomu použijeme Python modul PrettyTable. Jeho použití je jednoduché:
from prettytable import PrettyTable
table = PrettyTable()
table.field_names = ["Column A", "Column B"]
table.add_row(["Value A1", "Value B1"])
table.add_row(["Value A2", "Value B2"])
print(table)Už tedy umíme vypsat tabulku, a výsledek je hned o něco přehlednější: test2.py

Teď už zbývá jen porovnat obě tabulky a zvýraznit hodnoty, u kterých došlo ke změně. Protože tabulka PrettyTable je vlastně dvourozměrné pole, stačí projít jednotlivé buňky první tabulky a zjistit, zda se jejich hodnota liší od hodnoty odpovídající pozici v druhé tabulce.
for x, row in enumerate(data_before):
for y, cell in enumerate(row):
if data_before[x][y] != data_after[x][y]:
data_after[x][y] = ...Pro zvýraznění použijeme modul Colorama, který nám do výstupu přidá barvičky:
print(Fore.GREEN + 'this is green text')Výsledkem je přehledná tabulka změn: test3.py

Všechny použité skripty a funkci pro porovnávání tabulek tables_diff() najdete na našem Githubu.

…aneb proč nepotřebujete celý mikroskop, když chcete otestovat firmware

Jak probíhá organizace game jamu, od prvotních kroků až po finální vyhlášení? V čem se náš game jam lišil od těch tradičních a proč je vlastně super nápad takový game jam ve firmě zorganizovat?

Každý projekt, ve kterém se používají LLM pro generování kódu, testů nebo dokumentace, by měl obsahovat i nějakou harness – sadu pravidel, podle které se má agent chovat. Konfigurace těchto pravidel je bohužel stále rozdílná; jednotlivé cloudové AI nástroje (Copilot, Codex, Claude) mají různé formáty. Náš tým je složen z lidí z různých organizací, proto se snažíme vytvořit harness, která by byla pro všechny nástroje společná a vedla by k podobnému chování agentů.
Děkujeme za váš zájem o odběr našeho newsletteru! Pro dokončení registrace je potřeba potvrdit vaše přihlášení. Na zadaný e-mail jsme vám právě zaslali potvrzovací odkaz. Klikněte prosím na tento odkaz, aby bylo vaše přihlášení dokončeno. Pokud e-mail nenajdete, zkontrolujte prosím složku nevyžádané pošty (spam) nebo složku hromadné pošty.
