02 - Ocena i bezpieczeństwo / Pokrycie testowe

Pokrycie testowe

23Minds audytuje testy i wdraża testy krytycznych procesów w oprogramowaniu z kodem pisanym przez AI. Strategia mówi, co testować, co zastępować atrapą i co pominąć, a testy wykrywają błędy po kolejnych zmianach.

Pakiet wejściowyAudyt strategii testów: 1 repozytoriumod 16 000 PLN1 repozytorium · do 3 tygodni od ustalenia zakresuCo zawiera
W skrócie
01

Testy, które sprawdzają zgodność z wymaganiami

Audyt oddziela testy pilnujące tego, co ważne, od testów, które tylko podbijają procent pokrycia.

02

Ścieżki krytyczne pod testami

Testy ścieżek krytycznych sprawdzają działanie systemu według uzgodnionych wymagań i są wpięte w wasze CI.

03

Strategia, którą da się stosować

Co testować, co zastępować atrapą, co pominąć: spisane i powiązane z ryzykiem waszego produktu.

23Minds projektuje i wdraża strategię pokrycia testami dla zespołów, które wysyłają kod pisany przez AI.

Rozwiń podsumowanie

Testy pisane z AI często wyglądają na dokładne, ale sprawdzają to, co kod robi, a nie to, co powinien robić, więc wysokie pokrycie nie potwierdza zgodności z wymaganiami. Usługa audytuje obecne testy i projektuje strategię pokrycia powiązaną z ryzykiem produktu: procesy, których awaria ma największe skutki, dostają testy w pierwszej kolejności. Gdy testów nie ma, praca zaczyna się od wymagań, kodu i wyboru ścieżek krytycznych. Pakiet wejściowy obejmuje jedno repozytorium, pisemną strategię i do 20 testów ścieżek krytycznych działających w CI. Sygnały w CI i podręcznik pisania testów z AI są w zakresie projektu.

Dlaczego 23Minds

Dowody, które możecie sprawdzić.

  • Audyt przed pierwszym nowym testem

    Najpierw ocena istniejącego zestawu, żeby strategia odpowiadała na to, czego naprawdę brakuje.

  • Do 20 testów ścieżek krytycznych w pakiecie

    Napisane, przejrzane i działające w waszym CI przed przekazaniem.

  • Sygnały o niestabilnych testach i regresjach w CI

    W zakresie projektu pipeline zgłasza rodzaj problemu, a nie tylko czerwone albo zielone.

  • Wzorce promptów dla waszego zespołu

    W zakresie projektu podręcznik pisania dobrych testów z AI, żeby zestaw rósł dalej po zleceniu.

Jak pracujemy

Proces, faza po fazie.

  1. 1

    1. Audyt testów

    Próbkujemy istniejące testy w modułach. Oceniamy każdy: sprawdza zgodność z wymaganiami czy tylko podbija wskaźnik. Wskazujemy luki na ścieżkach krytycznych. Gdy testów nie ma, zaczynamy od wymagań i kodu.

    Tydzień 1
    Siatka kwadratów wypełniona mniej więcej do połowy, żółty pierścień wokół skupiska pustych: ścieżki, których istniejące testy nie dotykają.
  2. 2

    2. Projekt strategii

    Mapujemy ryzyko produktu na strategię testów. Ustalamy proporcje testów jednostkowych, integracyjnych i E2E. Decydujemy, co zastąpić atrapą, a co uruchamiać naprawdę.

    Tydzień 1-2
    Piramida z trzech warstw, środkowa żółta: proporcje testów jednostkowych, integracyjnych i E2E dobrane do tego produktu.
  3. 3

    3. Implementacja

    Piszemy testy ścieżek krytycznych według uzgodnionych wymagań i wpinamy je w CI. W projekcie ustawiamy też sygnały w CI i spisujemy wzorce promptów do testów pisanych z AI.

    Tydzień 2-3
    Rzędy linii kodu z polem wyboru obok każdej, jedno pole żółte i zaznaczone: test napisany dla ścieżki krytycznej i wpięty w CI.
  4. 4

    4. Przekazanie zespołowi

    Omawiamy strategię z zespołem i przekazujemy testy. W projekcie pracujemy w parach nad nowymi testami według podręcznika i ustalamy rytm przeglądu.

    Tydzień 3
    Żółty folder podawany wzdłuż strzałki trzem postaciom stojącym razem: testy i podręcznik przekazane zespołowi, który będzie je utrzymywał.
Jak zacząć

Sposoby rozpoczęcia współpracy, od bezpłatnego do pełnego projektu.

Każda usługa ma bezpłatny pierwszy krok, pakiet wejściowy z pisemnym rezultatem i ceną podaną tutaj oraz pełny projekt albo stałą współpracę, wyceniane po rozmowie wstępnej. Po ustaleniu zakresu cena jest stała, bez ukrytych kosztów.

  1. 1
    Krok 1 · Bezpłatnie

    Rozmowa wstępna z inżynierem

    do 60 minut · z inżynierem · bez zobowiązań

    Bezpłatnie
    Pokaż szczegóły
    • Rozmowa wstępna z inżynierem, a jeśli wolicie zacząć sami: samoocena online
    • Pisemne podsumowanie rozmowy z propozycją następnego kroku w ciągu jednego dnia roboczego
    • Bez zobowiązań i bez prezentacji sprzedażowej
    Porozmawiajcie z inżynierem
  2. Polecany
    2
    Krok 2 · Pakiet wejściowy

    Audyt strategii testów: 1 repozytorium

    1 repozytorium · do 3 tygodni od ustalenia zakresu

    od 16 000 PLN netto

    Cena stała po ustaleniu zakresu na rozmowie wstępnej, bez ukrytych kosztów; dopłaty tylko za pozycje z listy Poza zakresem.

    Pokaż szczegóły
    • Audyt istniejącego zestawu testów w jednym repozytorium
    • Pisemna strategia testów powiązana z ryzykiem
    • Do 20 testów ścieżek krytycznych, napisanych i działających w CI
    • Sesja przekazania dla zespołu
    • Poza zakresem: Doprowadzenie pokrycia do zadanego progu, testy wydajnościowe i E2E w pełnym zakresie, przebudowa CI, utrzymanie testów.
    Zapytajcie o ten pakiet
  3. 3
    Krok 3 · Projekt albo stała współpraca

    Pełny zakres, wycena po rozmowie wstępnej

    Zakres ustalony po rozmowie · praca w etapach · osobna wycena każdego etapu

    od 80 000 PLN netto, wycena po rozmowie wstępnej
    Pokaż szczegóły
    • Pełna przebudowa testów w całej platformie
    • Sygnały o rodzaju problemu w CI
    • Wdrożenie zespołu w nowy zestaw testów
    Porozmawiajcie o projekcie
Brzmi znajomo?

Problemy, które rozwiązuje ta usługa.

  • Testy pisane z AI przechodzą, ale nie sprawdzają zachowania ważnego dla biznesu
  • Procent pokrycia rośnie, a razem z nim liczba regresji zgłaszanych przez klientów
  • Atrapy mnożą się, gdy AI zapełnia luki; zestaw testuje sam siebie, a nie system
Pokaż pozostałe problemy (1)
  • W testach brakuje scenariuszy obejmujących bazę danych, kolejki i zewnętrzne API, a nikt ich nie pisze
Dla kogo
  • Menedżerowie inżynierii, u których kod pisany przez AI powstaje szybciej, niż nadążają testy
  • Tech leadzi, którzy patrzą, jak rośnie procent pokrycia i razem z nim liczba regresji
  • CTO, którzy chcą skalować mały zespół z AI bez utraty jakości
  • Szefowie QA, którzy dostosowują strategię do kodu pisanego przez AI
Z doświadczenia

Co może pójść nie tak i co z tym robimy.

  1. 1. Pokrycie staje się celem i przestaje cokolwiek znaczyćCo zostaje u was: lista celowych uszkodzeń, których zestaw nie wyłapał, oraz przepisane testy, które teraz je łapią
    Co się dzieje

    Na forach na pytanie, jak testować kod pisany przez AI, najczęstsza rada brzmi: niech asystent napisze testy jednostkowe do prawie pełnego pokrycia. Testy pisane z AI zwykle sprawdzają, co kod robi, a nie co powinien robić. Wysokie pokrycie nie potwierdza więc, że kod spełnia wymagania, a cała klasa defektów przechodzi niezauważona.

    Co z tym robimy

    Sprawdzamy, co testy naprawdę wyłapią, psując kod celowo i patrząc, które testy padną. Takie próbkowanie mutacyjne na ścieżkach, które mają znaczenie, pokazuje, gdzie zestaw nie wykrywa błędów. Te testy przepisujemy według wymagań, a nie według implementacji.

  2. 2. Psuje się to, czego nikt nie automatyzujeCo zostaje u was: spisana strategia pokrycia z decyzją i powodem dla każdej granicy między modułami oraz testy integracyjne dla tych, które warto zautomatyzować
    Co się dzieje

    Zestawy pisane z AI mają dużo testów jednostkowych i mało integracyjnych, więc pomijają błędy współpracy między modułami. Awarie, które docierają do użytkowników, biorą się z granic między modułami i systemami: kontrakt, który się zmienił, migracja, która poszła w złej kolejności, zewnętrzny serwis, który odpowiedział inaczej. Żadna z nich nie mieści się w teście jednostkowym.

    Co z tym robimy

    Decydujemy, co testować, co zastąpić atrapą i co zostawić w spokoju, w tej kolejności. Każdą decyzję zapisujemy z powodem. Tam, gdzie granicy nie da się tanio pokryć testem, mówimy to wprost i proponujemy monitoring zamiast testu, który udaje.

  3. 3. Zestaw zwalnia, aż zaczyna być pomijanyCo zostaje u was: czas przebiegu przed i po, lista usuniętych testów z uzasadnieniem oraz zasady kwarantanny, które zespół stosuje sam
    Co się dzieje

    Wygenerowane testy tanio się dodaje i nikt ich nie usuwa. Czas przebiegu rośnie, razem z nim niestabilność, a zespół zaczyna scalać na czerwonym, bo czerwone to zwykle szum. W tym momencie zestaw kosztuje i nic nie daje.

    Co z tym robimy

    Mierzymy czas i niestabilność każdego testu. Usuwamy te, które dublują inne pokrycie, a naprawdę niestabilne odkładamy do kwarantanny, zamiast pozwolić im uczyć zespół ignorowania czerwonego.

Co dostajecie

Rezultaty, które zostają u was.

  • Audyt obecnego zestawu testów: co sprawdza zgodność z wymaganiami, a co tylko podbija wskaźniki
  • Dokument strategii testów powiązanej z ryzykiem: co testować, co zastępować atrapą, co pominąć
  • Testy ścieżek krytycznych napisane według uzgodnionych wymagań i wpięte w CI
  • W zakresie projektu: konfiguracja CI z sygnałami o rodzaju problemu (niestabilne testy, alerty o regresjach)
  • W zakresie projektu: podręcznik dla zespołu ze wzorcami promptów do pisania dobrych testów z AI
FAQ

Pytania przed rozpoczęciem współpracy.

Poprawny test wymaga wymagań, danych testowych i wiedzy o zależnościach systemu, a asystent ma w kontekście tylko część z tego. Dlatego testy jednostkowe na widocznych sygnaturach funkcji wychodzą mu dobrze, testy integracyjne zależne od stanu systemu gorzej, a testy E2E z rozbudowanym przygotowaniem danych najsłabiej. W efekcie zestaw jest mocny w łatwych miejscach i słaby tam, gdzie siedzi ryzyko.
Optymalizujemy zgodność działania z wymaganiami, a nie surowy procent pokrycia. Usuwamy testy, które dublują inne albo nie wykrywają błędów, więc procent może spaść, bo część pokrycia pochodziła z takich testów. Przy odbiorze raportujemy, ile celowych uszkodzeń kodu zestaw wyłapał przed zleceniem i po nim. Obserwację regresji po wdrożeniu ustalamy osobno.
Tak. GitHub Actions, GitLab CI, CircleCI, Jenkins, Buildkite; pracujemy na tym, co macie. Nie wprowadzamy nowych narzędzi CI bez mocnego powodu.
TypeScript i JavaScript, Python, Go, Ruby, Java i Kotlin. Aplikacje mobilne (Swift, Kotlin) i systemy wbudowane są poza zakresem tej praktyki.
Audyt kodu ocenia poprawność tego, co już jest. Pokrycie testowe buduje zestaw, który wykrywa regresje w objętych testami scenariuszach, zanim trafią na produkcję. Te dwie praktyki dobrze działają w parze.

Porozmawiajmy o AI w waszej firmie.

Napiszcie, na jakim etapie jesteście. Temat: Pokrycie testowe. Odpowiedź w ciągu jednego dnia roboczego.

Porozmawiajcie z inżynierem
Szczecin - ul. Wawrzyniaka 6WWarszawaZielona GóraKraków