
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í
Streamlit je framework, pomocí kterého můžete převést data na interaktivní webové aplikace. K dispozici je zdarma a jediné, co budete potřebovat, je znalost Pythonu. Nejvíce se využívá pro zpracování vědeckých dat, ale my si ukážeme, jak pomocí Streamlit prezentovat výsledky testování.
Streamlit by měl být součástí každého balíčkovacího systému, já budu používat pip. Více informací ohledně instalace najdete na oficálních stránkách framewroku.
Kromě Streamlitu si nainstalujem také Pandas pro práci s daty:
pip install streamlit
pip install pandasVytvoříme nový soubor hello-world.py a vložíme do něj následující kód:
import streamlit as stst.markdown("Hello world")Spuštěním si ověříme, že vše funguje, jak má:
streamlit run .\hello-world.pyPro účely tohoto seriálu jsem vytvořil jednoduchou tabulku s výsledky testů (test-results.csv):

Vykreslení tabulky je jednoduché, pomocí Pandas načteme datový soubor a ten následně vykreslíme:
import pandas as pd import streamlit as st
st.title("Test results")
df = pd.read_csv("test-results.csv")
st.dataframe(df)
Následně si vytvoříme funkci colorize, ve které definujeme, jak budou buňky označené, a potom ji aplikujeme pomocí applymap. Jako subset použijeme názvy sloupců (df.columns), tzn. hlavičku tabulky:
def colorize(val):
if val == "Passed":
return f'background-color: green; color:white'
if val == "Failed":
return f'background-color: red; color:white'
else:
return None
st.dataframe(df.style.applymap(colorize, subset=df.columns))
Nejdříve si vytvoříme seznam verzí, se kterým budeme dále pracovat. Pomocí df.columns zjistíme názvy sloupců, které obsahují právě číslo verze. Jen přeskočíme první sloupec, protože ten číslo verze neosahuje:
versions = []
i = 0
for version in df.columns:
if i > 0:
versions.append(version)
i += 1A můžeme začít tabulku filtrovat. Vytvoříme si select boxy s výsledky a verzemi:
filter_result = st.multiselect(
label='Result',
options=('Passed', 'Failed'),
default=('Passed', 'Failed')
)
filer_version = st.multiselect(
label='Version',
options=versions,
default=versions)Chtěl jsem, aby ve výchozím stavu byly vybrané všechny hodnoty, proto jsem “naplnil” oba parametry options a default stejnými hodnotami.

Následně už nám stačí jen data přefiltrovat na základě vybraných hodnot. Použijeme k tomu metody pandas.DataFrame.loc a pandas.DataFrame.iloc, které nám umožňují přistupovat na jednotlivé buňky pomocí zadaných parametrů a pandas.DataFrame.isin, která nám je pomůže odfiltrovat.
Aby se nám v tabulce stále zobrazoval i první sloupec s názvem testu, explicitně ho přidáme do filtrování verzí:
filer_version.append("Test")
df = df.loc[:, df.columns.isin(filer_version)]Pro filtrování pomocí výsledků potřebujeme prohledávanou oblast omezit jen na sloupce s výsledky, proměnná num udává, kolik sloupců máme na filtr použit:
num = -1 * len(versions)
df = df[df.iloc[:,num:].isin(filter_result).any(axis=1)]
Celý skript si můžete stáhnout zde: 01-table.py

…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.
