Domanda |
Risposta |
Co to jest test jednostkowy (unit test)? inizia ad imparare
|
|
Test jednostkowy sprawdza pojedyncze jednostki kodu (np. funkcje, metody) w izolacji, aby upewnić się, że działają one poprawnie.
|
|
|
Co to jest test integracyjny (integration test)? inizia ad imparare
|
|
Test integracyjny sprawdza interakcje pomiędzy różnymi modułami lub komponentami systemu, aby upewnić się, że współpracują one poprawnie.
|
|
|
Co to jest test funkcjonalny (functional test)? inizia ad imparare
|
|
Test funkcjonalny sprawdza działanie aplikacji na podstawie jej specyfikacji funkcjonalnych, koncentrując się na wynikach działań użytkownika.
|
|
|
Co to jest testowanie end-to-end (E2E)? inizia ad imparare
|
|
Testowanie end-to-end sprawdza cały proces działania aplikacji od początku do końca, symulując rzeczywiste scenariusze użytkownika.
|
|
|
Co to jest Test-Driven Development (TDD)? inizia ad imparare
|
|
TDD to metodyka programowania, w której pisze się testy jednostkowe przed implementacją funkcjonalności, a następnie kod jest tworzony, aby te testy przeszły.
|
|
|
inizia ad imparare
|
|
Zalety TDD obejmują poprawę jakości kodu, łatwiejsze refaktoryzacje, wczesne wykrywanie błędów oraz lepszą dokumentację kodu.
|
|
|
inizia ad imparare
|
|
Mocking to technika testowania, w której tworzy się atrapy obiektów lub metod, aby symulować ich zachowanie w testach jednostkowych.
|
|
|
Jakie narzędzie służy do testowania jednostkowego w PHP? inizia ad imparare
|
|
PHPUnit to popularne narzędzie do testowania jednostkowego w PHP.
|
|
|
Co to jest testowanie regresyjne? inizia ad imparare
|
|
Testowanie regresyjne to proces testowania aplikacji po wprowadzeniu zmian, aby upewnić się, że nowe zmiany nie wprowadziły nowych błędów.
|
|
|
Co to jest coverage (pokrycie) kodu? inizia ad imparare
|
|
Coverage kodu to metryka określająca, jaki procent kodu źródłowego został przetestowany przez testy jednostkowe.
|
|
|
inizia ad imparare
|
|
CI/CD to skrót od Continuous Integration/Continuous Deployment. CI/CD automatyzuje procesy integracji kodu i wdrażania aplikacji, zapewniając szybkie i niezawodne wdrożenia.
|
|
|
Jakie są popularne narzędzia CI/CD? inizia ad imparare
|
|
Popularne narzędzia CI/CD to Jenkins, GitLab CI, Travis CI i CircleCI.
|
|
|
inizia ad imparare
|
|
Smoke test to szybki test sprawdzający podstawową funkcjonalność aplikacji, aby upewnić się, że działa ona poprawnie po wdrożeniu.
|
|
|
Co to jest testowanie wydajnościowe? inizia ad imparare
|
|
Testowanie wydajnościowe ocenia, jak aplikacja działa pod względem szybkości, skalowalności i stabilności pod określonym obciążeniem.
|
|
|
Jakie są popularne narzędzia do testowania wydajnościowego? inizia ad imparare
|
|
Popularne narzędzia do testowania wydajnościowego to JMeter, Gatling i LoadRunner.
|
|
|
Co to jest testowanie eksploracyjne? inizia ad imparare
|
|
Testowanie eksploracyjne polega na ręcznym badaniu aplikacji bez wcześniej zaplanowanych przypadków testowych, aby odkryć nowe, niezauważone wcześniej błędy.
|
|
|
Co to jest testowanie A/B? inizia ad imparare
|
|
Testowanie A/B polega na porównywaniu dwóch wersji aplikacji (A i B) w celu określenia, która z nich lepiej spełnia określone kryteria.
|
|
|
inizia ad imparare
|
|
Selenium to narzędzie do automatyzacji przeglądarek internetowych, używane do testowania aplikacji webowych.
|
|
|
Co to jest testowanie black-box? inizia ad imparare
|
|
Testowanie black-box polega na testowaniu funkcjonalności aplikacji bez znajomości jej wewnętrznej struktury kodu.
|
|
|
Co to jest testowanie white-box? inizia ad imparare
|
|
estowanie white-box polega na testowaniu aplikacji z pełną znajomością jej wewnętrznej struktury kodu, koncentrując się na testowaniu konkretnych ścieżek kodu i logiki.
|
|
|
Jak napisać test sprawdzający wyjątki w PHPUnit? inizia ad imparare
|
|
Używając adnotacji @expectedException lub metody expectException() w teście.
|
|
|
Co to jest assert w PHPUnit? inizia ad imparare
|
|
Assert w PHPUnit to metoda sprawdzająca, czy wynik testu jest zgodny z oczekiwaniami, np. assertEquals(), assertTrue().
|
|
|
Co to jest mocking w PHPUnit? inizia ad imparare
|
|
Mocking w PHPUnit to tworzenie atrap obiektów lub metod za pomocą metody createMock(), aby symulować ich zachowanie podczas testów.
|
|
|
Jakie metody w PHPUnit są używane do ustawiania test fixture? inizia ad imparare
|
|
setUp() do przygotowania środowiska testowego przed każdym testem i tearDown() do czyszczenia po każdym teście.
|
|
|
Co to jest test fixture w PHPUnit? inizia ad imparare
|
|
Test fixture to zestaw warunków przygotowanych przed uruchomieniem testów, który umożliwia uruchamianie testów w kontrolowanym środowisku.
|
|
|
Jakie są różnice między assertEquals a assertSame w PHPUnit? inizia ad imparare
|
|
assertEquals sprawdza, czy dwie wartości są równe (również po konwersji typów), podczas gdy assertSame sprawdza, czy dwie wartości są identyczne pod względem typu i wartości.
|
|
|
Jakie są różnice między testem jednostkowym a testem integracyjnym? inizia ad imparare
|
|
Test jednostkowy sprawdza pojedyncze jednostki kodu w izolacji, natomiast test integracyjny sprawdza współdziałanie wielu jednostek lub modułów razem.
|
|
|
Co to jest data provider w PHPUnit? inizia ad imparare
|
|
Data provider to metoda, która dostarcza różne zestawy danych do testów, umożliwiając uruchomienie tego samego testu z różnymi danymi.
|
|
|
Co to jest setUpBeforeClass w PHPUnit? inizia ad imparare
|
|
setUpBeforeClass to metoda, która uruchamia się raz przed wszystkimi testami w klasie, służąc do ustawienia stanu wspólnego dla wszystkich testów.
|
|
|
Co to jest tearDownAfterClass w PHPUnit? inizia ad imparare
|
|
tearDownAfterClass to metoda, która uruchamia się raz po wszystkich testach w klasie, służąc do czyszczenia stanu wspólnego dla wszystkich testów.
|
|
|
Jak można zignorować test w PHPUnit? inizia ad imparare
|
|
Używając adnotacji @ignore przed metodą testową lub markTestSkipped w ciele testu.
|
|
|
Co to jest assert preconditions i postconditions w PHPUnit? inizia ad imparare
|
|
Assert preconditions to metoda assertPreConditions sprawdzająca warunki wstępne przed uruchomieniem testu, a assert postconditions to metoda assertPostConditions sprawdzająca warunki końcowe po wykonaniu testu.
|
|
|
Jakie są popularne rozszerzenia PHPUnit? inizia ad imparare
|
|
Popularne rozszerzenia to PHPUnit Mock Objects (mockowanie obiektów), DBUnit (testowanie baz danych) i PHPUnit Selenium (testowanie aplikacji webowych).
|
|
|
Co to jest testowanie mutacyjne? inizia ad imparare
|
|
Testowanie mutacyjne polega na wprowadzaniu drobnych zmian (mutacji) w kodzie źródłowym i sprawdzaniu, czy testy wykrywają te zmiany, co pomaga ocenić jakość testów.
|
|
|
Co to jest @depends w PHPUnit? inizia ad imparare
|
|
Adnotacja @depends pozwala określić zależność jednego testu od innego, dzięki czemu można używać wyników wcześniejszych testów w kolejnych.
|
|
|
Jakie są różnice między mock a stub? inizia ad imparare
|
|
Mock to obiekt, który symuluje zachowanie innego obiektu i umożliwia sprawdzenie interakcji z nim, natomiast stub to obiekt, który dostarcza z góry określone odpowiedzi na wywołania metod.
|
|
|
Co to jest assertCount w PHPUnit? inizia ad imparare
|
|
assertCount sprawdza, czy liczba elementów w kolekcji jest zgodna z oczekiwaną.
|
|
|
Jakie są zalety automatyzacji testów w PHP? inizia ad imparare
|
|
Automatyzacja testów poprawia efektywność, pozwala na szybkie wykrywanie błędów, umożliwia częste wdrażanie zmian oraz zapewnia większą stabilność i jakość aplikacji.
|
|
|
Co to jest assertFileEquals w PHPUnit? inizia ad imparare
|
|
assertFileEquals sprawdza, czy zawartość dwóch plików jest identyczna.
|
|
|
Jak zaimplementować testy zależne od bazy danych w PHPUnit? inizia ad imparare
|
|
Używając rozszerzenia DBUnit, które umożliwia zarządzanie stanem bazy danych przed i po testach.
|
|
|
Jakie są typowe wyzwania związane z testowaniem aplikacji PHP? inizia ad imparare
|
|
Typowe wyzwania to zależności między modułami, skomplikowane środowiska testowe, integracja z zewnętrznymi usługami i zarządzanie stanem bazy danych.
|
|
|
Co to jest assertStringContainsString w PHPUnit? inizia ad imparare
|
|
assertStringContainsString sprawdza, czy określony ciąg znaków znajduje się w innym ciągu.
|
|
|
Jakie są najlepsze praktyki testowania kodu w PHP? inizia ad imparare
|
|
Najlepsze praktyki to pisanie testów przed kodem (TDD), używanie mocków i stubów, regularne uruchamianie testów, dbanie o pokrycie kodu testami oraz dokumentowanie testów.
|
|
|
Co to jest assertJsonStringEqualsJsonString w PHPUnit? inizia ad imparare
|
|
assertJsonStringEqualsJsonString sprawdza, czy dwa ciągi JSON są równe.
|
|
|
inizia ad imparare
|
|
Psalm to statyczny analizator kodu PHP, który pomaga w wykrywaniu błędów i poprawianiu jakości kodu poprzez analizę statyczną.
|
|
|
Co to jest poziom trudności w Psalm? inizia ad imparare
|
|
Poziom trudności w Psalm określa rygorystyczność analizy kodu, od poziomu 1 (najbardziej restrykcyjny) do poziomu 8 (najbardziej luźny).
|
|
|
Jakie są typowe błędy wykrywane przez Psalm? inizia ad imparare
|
|
Psalm wykrywa błędy takie jak niezgodności typów, nieużywane zmienne, potencjalne null reference, błędy w logice kodu oraz brakujące typy zwracane i argumenty.
|
|
|
Co to jest @psalm-suppress? inizia ad imparare
|
|
@psalm-suppress to adnotacja pozwalająca na zignorowanie konkretnego ostrzeżenia Psalm dla danego fragmentu kodu.
|
|
|
inizia ad imparare
|
|
PHPStan to kolejne narzędzie do analizy statycznej kodu PHP, które pomaga w wykrywaniu błędów i poprawianiu jakości kodu.
|
|
|
Jakie są główne zalety i wady TDD (Test-Driven Development)? inizia ad imparare
|
|
Zalety to lepsza jakość kodu, łatwiejsza refaktoryzacja, wczesne wykrywanie błędów i lepsza dokumentacja. Wady to większy nakład pracy na początku, konieczność pisania wielu testów i możliwe spowolnienie procesu developmentu.
|
|
|
Co to jest refaktoryzacja i jak testy mogą w niej pomóc? inizia ad imparare
|
|
Refaktoryzacja to proces poprawy struktury kodu bez zmiany jego zewnętrznego zachowania. Testy zapewniają, że zmiany w kodzie nie wprowadziły nowych błędów.
|
|
|
Jakie są typowe narzędzia do testowania end-to-end (E2E) w PHP? inizia ad imparare
|
|
Typowe narzędzia to Selenium, Codeception i Cypress.
|
|
|
Jakie są najczęstsze wyzwania związane z testowaniem aplikacji PHP? inizia ad imparare
|
|
Wyzwania to zarządzanie zależnościami, testowanie złożonych interakcji, utrzymanie aktualności testów, oraz zarządzanie danymi testowymi.
|
|
|
Co to jest Continuous Integration (CI) i Continuous Deployment (CD)? inizia ad imparare
|
|
CI to praktyka automatycznego integrowania kodu od wielu deweloperów i jego częstego testowania, a CD to praktyka automatycznego wdrażania przetestowanego kodu na środowisko produkcyjne.
|
|
|
Jakie są kluczowe metryki do oceny jakości testów jednostkowych? inizia ad imparare
|
|
Kluczowe metryki to pokrycie kodu, liczba testów, liczba wykrytych błędów, czas wykonywania testów oraz wskaźniki mutacyjne.
|
|
|
inizia ad imparare
|
|
Wady to większy nakład pracy na początku, konieczność pisania wielu testów, możliwe spowolnienie procesu developmentu oraz trudność w zastosowaniu TDD w przypadku legacy code.
|
|
|