39 top automation testing interview questions
Najczęściej zadawane pytania podczas rozmowy kwalifikacyjnej w zakresie testowania automatyzacji dla kandydatów na poziomie początkującym i zaawansowanym:
Automatyzacja testów odgrywa bardzo ważną rolę w całym cyklu życia oprogramowania. W większości przypadków, gdy chcemy przygotować się do rozmowy z testowaniem automatyzacji, skupiamy się tylko na pytaniach związanych z narzędziem.
Jednak powinniśmy również wziąć pod uwagę fakt, że uczenie się i poznanie narzędzia to tylko środek, a nie ostateczny cel.
Dlatego zawsze, gdy przygotowujemy się do rozmowy kwalifikacyjnej z testerem automatyzacji, musimy rozważyć „automatyzację” jako całość i skupić się na frameworku i etapach z nim związanych.
Wszyscy wiemy, że testowanie oprogramowania jest bardzo ważną częścią tworzenia oprogramowania. Jednak wraz z szybko rozwijającymi się metodologiami i środowiskami tworzenia oprogramowania, ręczne testowanie wszystkiego dla aplikacji w ograniczonym czasie i przy ograniczeniach kosztów staje się trudne.
W związku z tym na rynku szybko rośnie liczba testów automatyzacji, aby przyspieszyć do tempa rozwoju. Ten samouczek zawiera najczęściej zadawane pytania podczas rozmowy kwalifikacyjnej na temat testów automatyzacji. Próbowałem przytoczyć krótkie i szybkie pytania, które są bardzo specyficzne dla automatyzacji jako całości i nie są specyficzne dla żadnego „narzędzia”.
39 najczęściej zadawanych pytań dotyczących testów automatyzacji
Omówiliśmy podstawowe pytania dotyczące automatyzacji testów, a także niektóre zaawansowane pytania dla kandydatów na poziomie średnio zaawansowanym i eksperckim z doświadczeniem od 2 do 5 lat.
P # 1) Co to jest automatyzacja?
Odpowiedź: Automatyzacja to każde działanie, które może zmniejszyć wysiłek człowieka.
P # 2) Co to jest testowanie automatyczne?
Odpowiedź: Proces używania specjalnych narzędzi programowych lub skryptów do wykonywania zadań testowych, takich jak wprowadzanie danych, wykonywanie kroków testowych i porównywanie wyników itp., Jest znany jako testowanie automatyczne.
Pytanie 3) Jakie wszystkie rzeczy możesz zautomatyzować?
Odpowiedź:
- Zestaw testów regresji
- Zestaw testów dymu / zdrowia psychicznego
- Twórz wdrażanie
- Tworzenie danych testowych
- Automatyzacja za GUI, taka jak testowanie interfejsów API i metod.
P # 4) Kiedy testowanie automatyczne jest przydatne?
Odpowiedź: Testowanie automatyczne jest przydatne w następujących scenariuszach:
a) Testowanie regresji: W przypadku poprawki błędu lub wdrożenia nowego modułu musimy upewnić się, że nie ma to wpływu na już zaimplementowaną lub niezmienioną funkcjonalność. W tym przypadku wielokrotnie uruchamiamy test regresji.
Na przykład: Po każdym żądaniu zmiany lub naprawie błędu, po każdej iteracji w przypadku podejścia przyrostowego itp.
b) Testowanie niefunkcjonalne: Testowanie niefunkcjonalnych aspektów aplikacji.
Na przykład, Testy obciążeniowe lub testy wydajnościowe itp. Są bardzo trudne do śledzenia i analizowania dla ludzi.
c) Złożone obliczenia kontrole lub scenariusze testowe, które są podatne na błędy ludzkie.
d) Wielokrotne wykonywanie tych samych testów: Czasami musimy uruchomić ten sam zestaw przypadków testowych dla innego zestawu danych lub po każdej wersji kompilacji lub na wielu sprzęcie, oprogramowaniu lub kombinacji obu.
Automatyzacja przypadków testowych w powyższych scenariuszach pomaga w osiągnięciu szybkości testowania i minimalizacji błędów ludzkich.
P # 5) W jaki sposób identyfikujecie przypadki testowe, które nadają się do automatyzacji?
Odpowiedź: Identyfikacja odpowiednich przypadków testowych do automatyzacji jest najważniejszym krokiem w kierunku automatyzacji.
P # 6) Czy możesz osiągnąć 100% automatyzacji?
Odpowiedź: Stuprocentowa automatyzacja byłaby trudna do osiągnięcia, ponieważ byłoby wiele przypadków testów brzegowych, a niektóre przypadki są wykonywane rzadko. Automatyzacja tych przypadków, które nie są wykonywane, często nie doda wartości do automatycznego zestawu.
Q # 7) Jak wybrać narzędzie, którego należy użyć do testowania automatyzacji w swoich projektach?
Odpowiedź: Aby zidentyfikować narzędzie do testowania automatyzacji w Twoim projekcie:
do) Dokładnie zapoznaj się z wymaganiami projektu i zidentyfikuj scenariusze testowania, które chcesz zautomatyzować.
b) Wyszukaj listę narzędzi, które obsługują wymagania Twojego projektu.
do) Określ swój budżet na narzędzie do automatyzacji. Wybierz narzędzia w ramach swojego budżetu.
re) Sprawdź, czy masz już wykwalifikowane zasoby do narzędzi. Jeśli nie masz niezbędnych wykwalifikowanych zasobów, określ koszt szkolenia istniejących zasobów lub zatrudnienia nowych.
jest) Teraz porównaj każde narzędzie pod kątem kluczowych kryteriów, takich jak:
- Jak łatwo jest tworzyć i utrzymywać skrypty dla narzędzia?
- Czy osoba nietechniczna może również wykonywać przypadki testowe przy niewielkim przeszkoleniu?
- Czy narzędzie obsługuje różne typy platform, takie jak internetowa, mobilna, komputerowa itp., W zależności od wymagań projektu?
- Czy narzędzie ma funkcję raportowania testów? Jeśli nie, czy można je łatwo skonfigurować dla narzędzia?
- Jakie jest narzędzie do obsługi różnych przeglądarek dla aplikacji internetowych?
- Ile różnych typów testów może obsługiwać to narzędzie?
- Ile języków obsługuje to narzędzie?
fa) Po porównaniu narzędzi wybierz narzędzie, które mieści się w Twoim budżecie i spełnia wymagania projektu oraz zapewnia więcej korzyści w oparciu o kluczowe kryteria wymienione powyżej.
P # 8) Obecnie nie mam żadnej automatyzacji w moim projekcie, ale teraz chcę wdrożyć automatyzację, jakie byłyby moje kroki?
Odpowiedź:
- Najpierw określ, jaki typ testów / przypadków testowych chcesz zautomatyzować.
- Zidentyfikuj narzędzie
- Zaprojektuj ramy
- Twórz pliki narzędziowe i pliki środowiskowe.
- Rozpocznij pisanie skryptów
- Identyfikuj i pracuj nad raportowaniem.
- Przeznaczenie czasu na ulepszanie i konserwację skryptów.
Kroki wymagane do wprowadzenia testów automatyzacyjnych dla projektu obejmują:
- Zrozum zalety i wady testów automatycznych i zidentyfikuj scenariusze testowe, które są odpowiednie do automatyzacji.
- Wybierz narzędzie automatyzacji, które najlepiej nadaje się do automatyzacji zidentyfikowanych scenariuszy
- Znajdź eksperta ds. Narzędzi, który pomoże w skonfigurowaniu narzędzia i wymaganego środowiska do wykonywania przypadków testowych za pomocą tego narzędzia.
- Przeszkol zespół, aby mógł pisać skrypty w języku programowania obsługiwanym przez narzędzie.
- Utwórz framework testowy lub zidentyfikuj już istniejący, który spełnia Twoje wymagania.
- Napisz plan wykonania dla systemu operacyjnego, przeglądarek, urządzeń mobilnych itp.
- Napisz skrypty programistyczne do ręcznych przypadków testowych, aby przekształcić je w automatyczne przypadki testowe.
- Zgłoś stan przypadku testowego za pomocą funkcji raportowania narzędzia.
- Utrzymuj skrypty dla bieżących zmian lub nowych funkcji.
P # 9) W jaki sposób decydujesz, którego narzędzia użyć?
Odpowiedź: Podsumowując które narzędzie jest najbardziej odpowiednie projekt wymaga wielu burzy mózgów i dyskusji.
P # 10) Po zidentyfikowaniu narzędzia, jakie będą następne kroki?
Odpowiedź: Po ukończeniu narzędzia następnym krokiem będzie zaprojektowanie szkieletu.
P # 11) Co to jest framework?
Odpowiedź: Framework to zestaw struktur całego pakietu automatyzacji. Jest to również wskazówka, której przestrzeganie może skutkować konstrukcją łatwą w utrzymaniu i ulepszaniu.
Te wytyczne obejmują:
- Standardy kodowania
- Obsługa danych testowych
- Utrzymanie i obsługa elementów (repozytorium obiektów w QTP)
- Obsługa plików środowiskowych i plików właściwości
- Raportowanie danych
- Obsługa dzienników
P # 12) Jakie są atrybuty dobrego frameworka?
Odpowiedź: Cechy obejmują:
- Modułowa: Ramy powinny dawać się dostosowywać do zmian. Testerzy powinni mieć możliwość modyfikowania skryptów zgodnie ze zmianą środowiska lub danych logowania.
- Wielokrotnego użytku: Powszechnie używane metody lub narzędzia powinny być zapisane we wspólnym pliku, do którego mają dostęp wszystkie skrypty.
- Zgodny: Pakiet powinien być napisany w spójnym formacie, przestrzegając wszystkich przyjętych praktyk kodowania.
- Niezależny: Skrypty powinny być napisane w taki sposób, aby były od siebie niezależne. W przypadku niepowodzenia jednego testu nie powinien wstrzymywać pozostałych przypadków testowych (chyba że jest to strona logowania)
- Dzienniki: Dobrze jest zaimplementować funkcję logowania we frameworku. Pomogłoby to w przypadku, gdyby nasze skrypty działały przez dłuższe godziny (np. Tryb nocny), jeśli skrypt zawiedzie w dowolnym momencie, posiadanie pliku dziennika pomoże nam wykryć lokalizację wraz z rodzajem błędu.
- Raportowanie: Dobrze jest mieć funkcję raportowania automatycznie osadzoną we frameworku. Po wykonaniu skryptów możemy przesłać wyniki i raporty pocztą elektroniczną.
- Integracja: Struktura automatyzacji powinna umożliwiać łatwą integrację z innymi aplikacjami, takimi jak ciągła integracja lub uruchamianie automatycznego skryptu zaraz po wdrożeniu kompilacji.
Q # 13) Czy możesz obejść się bez frameworka?
Odpowiedź: Ramy są wytycznymi, a nie obowiązkowymi zasadami, więc możemy obejść się bez ram, ale jeśli je stworzymy i będziemy postępować zgodnie z nimi, ulepszanie i utrzymywanie będzie łatwe do wdrożenia.
P # 14) Jakie rodzaje narzędzi do automatyzacji są Ci znane?
Odpowiedź: Narzędzie open source, takie jak Selenium, JMeter itp.
Płatne narzędzia, takie jak QTP, Load Runner, Ranorex, RFT i Rational Robot.
P # 15) Jaka jest ogólnie struktura frameworka?
Odpowiedź: Zwykle struktura powinna mieć - (Różni się w zależności od projektu)
- Folder „src” (źródłowy) zawierający aktualne skrypty testowe.
- Folder „lib” (biblioteka) zawierający wszystkie biblioteki i popularne metody.
- Folder „class” zawierający wszystkie pliki klas (w przypadku użycia języka Java).
- Folder „dziennika” zawierający plik (i) dziennika.
- Plik / folder zawierający wszystkie identyfikatory elementów sieci.
- Plik zawierający adres URL, środowisko i informacje logowania.
Pytanie nr 16) Gdzie będziesz przechowywać informacje takie jak adres URL, login, hasło?
Odpowiedź: Informacje te należy zawsze przechowywać w oddzielnym pliku.
P # 17) Dlaczego chcesz przechowywać tego rodzaju informacje w osobnym pliku, a nie bezpośrednio w kodzie?
Odpowiedź: Adres URL, login i hasła to rodzaje pól, które są używane bardzo często i zmieniają się w zależności od środowiska i autoryzacji. W przypadku, gdy zakodujemy go na stałe w naszym kodzie, musimy to zmienić w każdym pliku, który ma swoje odniesienie.
W przypadku, gdy jest więcej niż 100 plików, bardzo trudno jest zmienić wszystkie 100 plików, a to z kolei może prowadzić do błędów. Tak więc tego rodzaju informacje są przechowywane w oddzielnym pliku, dzięki czemu aktualizacja staje się łatwa.
P # 18) Jakie są różne typy frameworków?
Odpowiedź: Różne typy ram obejmują:
- Framework oparty na słowach kluczowych
- Framework oparty na danych
- Hybrydowa struktura
- Skrypty liniowe
Pytanie nr 19) Czy możesz powiedzieć kilka dobrych praktyk kodowania podczas automatyzacji?
Odpowiedź: Niektóre z dobrych praktyk kodowania obejmują:
- Dodaj odpowiednie komentarze.
- Zidentyfikuj metody wielokrotnego użytku i zapisz je w osobnym pliku.
- Postępuj zgodnie z konwencjami kodowania specyficznymi dla języka.
- Zachowaj dane testowe w oddzielnym pliku.
- Uruchamiaj swoje skrypty regularnie.
P # 20) Jakiekolwiek testy, które Twoim zdaniem nie powinny być zautomatyzowane?
Odpowiedź:
- Testy, które są rzadko wykonywane.
- Testowanie eksploracyjne
- Test użyteczności
- Test, który jest wykonywany szybko, gdy jest wykonywany ręcznie.
Q # 21) Czy uważasz, że testowanie można przeprowadzić tylko na poziomie interfejsu użytkownika?
SQL Database Pytania i odpowiedzi do wywiadów
Odpowiedź: Dziś, gdy przechodzimy do trybu Agile, testowanie nie ogranicza się do warstwy interfejsu użytkownika. Wczesna opinia jest niezbędna dla zwinnego projektu. Jeśli skoncentrujemy się tylko na warstwie interfejsu użytkownika, w rzeczywistości czekamy, aż interfejs użytkownika zostanie opracowany i dostępny do testowania.
Raczej możemy testować, zanim interfejs użytkownika zostanie faktycznie opracowany. Możemy bezpośrednio testować interfejsy API lub metody za pomocą narzędzi takich jak Cucumber i FitNesse .
W ten sposób przekazujemy opinie dużo wcześnie i testujemy jeszcze przed opracowaniem interfejsu użytkownika. Takie podejście pomoże nam przetestować tylko aspekt GUI drobnych zmian kosmetycznych lub niektórych weryfikacji interfejsu użytkownika i pomoże programistom, dając więcej czasu na naprawienie błędów.
P # 22) W jaki sposób wybierasz, które narzędzie do automatyzacji najlepiej Ci odpowiada?
Odpowiedź: Wybór narzędzia do automatyzacji zależy od różnych czynników, takich jak:
- Zakres aplikacji, którą chcemy zautomatyzować.
- Ogólne koszty zarządzania, takie jak koszty i budżet.
- Czas na naukę i wdrożenie narzędzia.
- Rodzaj wsparcia dostępnego dla narzędzia.
- Ograniczenie narzędzia
Pytanie # 23) Jak myślisz, co powstrzymuje testerów przed automatyzacją? Czy jest sposób, aby to przezwyciężyć?
Odpowiedź: Główną przeszkodą dla testerów jest nauka programowania / kodowania, gdy chcą zautomatyzować. Ponieważ testerzy nie kodują, przystosowanie się do kodowania jest dla testerów pewnym wyzwaniem.
Możemy to pokonać poprzez:
- Współpraca z programistami podczas automatyzacji.
- Biorąc pod uwagę, że za automatyzację odpowiedzialny jest cały zespół, a nie tylko testerzy.
- Poświęcenie czasu i skupienie się na automatyzacji.
- Uzyskanie odpowiedniego wsparcia w zarządzaniu.
Możesz zapisać te pytania z rozmowy kwalifikacyjnej testującej automatyzację jako plik PDF i wydrukować do dalszego czytania.
P # 24) Co to jest platforma testowania automatyzacji?
Odpowiedź: Ramy to ogólnie zbiór wytycznych. Zbiór wytycznych, założeń, koncepcji i praktyk kodowania służących do tworzenia środowiska wykonawczego, w którym testy będą zautomatyzowane, jest znany jako framework do testów automatyzacji.
Framework do testów automatyzacji jest odpowiedzialny za tworzenie wiązki testowej z mechanizmem łączenia się z testowaną aplikacją, pobierania danych wejściowych z pliku, wykonywania przypadków testowych i generowania raportów do wykonania testów. Framework do testowania automatyzacji powinien być niezależny od aplikacji i powinien być łatwy w użyciu, modyfikowaniu lub rozszerzaniu.
P # 25) Jakie są ważne moduły platformy testowania automatyzacji?
Odpowiedź: Ważnymi modułami struktury testowania automatyzacji są:
- Narzędzie potwierdzenia testu: To narzędzie zapewni instrukcje assert do testowania oczekiwanych wartości w testowanej aplikacji. Na przykład. TestNG, Junit itp.
- Konfiguracja danych: Każdy przypadek testowy musi pobierać dane użytkownika z bazy danych, z pliku lub osadzone w skrypcie testowym. Moduł danych frameworka powinien zająć się pobieraniem danych dla skryptów testowych i zmiennych globalnych.
- Narzędzie do zarządzania kompilacją: Należy zbudować i wdrożyć framework do tworzenia skryptów testowych.
- Narzędzie do ciągłej integracji: Po wdrożeniu CICD (Continuous Integration and Continuous Development) narzędzie ciągłej integracji jest wymagane do integracji i wdrażania zmian wprowadzanych w ramach w każdej iteracji.
- Narzędzie do raportowania: Potrzebne jest narzędzie do raportowania, aby wygenerować czytelny raport po wykonaniu przypadków testowych, aby uzyskać lepszy wgląd w kroki, wyniki i awarie.
- Narzędzie do logowania: Narzędzie do logowania we frameworku pomaga w lepszym debugowaniu błędów i błędów.
Q # 26) Wyjaśnij niektóre narzędzia do testowania automatyzacji.
Odpowiedź: Poniżej wyjaśniono niektóre ze słynnych narzędzi do testowania automatyzacji:
(i) selen : Selenium to platforma testowa do testowania automatyzacji aplikacji internetowych. Obsługuje wiele przeglądarek i jest niezależny od systemu operacyjnego. Selenium obsługuje również różne języki programowania, takie jak Java, C #, PHP, Ruby i Perl itp.
Selen jest zestawem bibliotek typu open source, które można wykorzystać do tworzenia dodatkowych struktur testowych lub skryptów testowych do testowania aplikacji internetowych.
(ii) UFT : Unified Functional Testing to licencjonowane narzędzie do testowania funkcjonalnego. Zapewnia szeroką gamę funkcji, takich jak interfejsy API, usługi internetowe itp., A także obsługuje wiele platform, takich jak komputery stacjonarne, internet i urządzenia mobilne. Skrypty UFT są napisane w wizualnym podstawowym języku skryptowym.
(Ii) epoki : Appium to narzędzie do testowania aplikacji mobilnych typu open source. Służy do automatyzacji testów na wieloplatformowych, natywnych, hybrydowych i internetowych aplikacjach mobilnych. Appium automatyzuje każdą aplikację mobilną z dowolnego języka z pełnym dostępem do API i DB z kodu testowego.
Appium jest oparte na architekturze klient-serwer i ewoluowało od selenu.
(iv) Ogórek : Cucumber to oparte na zachowaniu narzędzie programistyczne typu open source. Jest używany do testowania automatyzacji aplikacji internetowych i obsługuje języki takie jak ruby, java, scala, groovy itp. Cucumber czyta specyfikację pliku wykonywalnego napisaną zwykłym tekstem i testuje testowaną aplikację pod kątem tych specyfikacji.
Aby ogórek zrozumiał scenariusze w postaci zwykłego tekstu, musimy przestrzegać kilku podstawowych reguł składni, znanych jako korniszon.
(v) TestComplete : TestComplete to licencjonowane zautomatyzowane narzędzie do testowania interfejsu użytkownika do testowania aplikacji na różnych platformach, takich jak komputery stacjonarne, internet, urządzenia mobilne itp. Zapewnia elastyczność rejestrowania przypadku testowego w jednej przeglądarce i uruchamiania go w wielu przeglądarkach, a tym samym obsługuje testy między przeglądarkami.
TestComplete ma wbudowany algorytm rozpoznawania obiektów, który jednoznacznie identyfikuje obiekt i przechowuje go w repozytorium.
P # 27) Jakie są różne rodzaje technik testowania ram?
Odpowiedź: Istnieją cztery rodzaje technik testowania automatyzacji.
Oni są:
(i) Modułowe ramy testowania:
Ramy te są oparte na koncepcji abstrakcji. W tym frameworku tester tworzy skrypty dla każdego modułu testowanej aplikacji indywidualnie, a następnie te skrypty są łączone w hierarchicznej kolejności w celu utworzenia dużych przypadków testowych.
Tworzy warstwę abstrakcji pomiędzy modułami, więc wszelkie modyfikacje w skryptach testowych dla jednego modułu nie wpływają na inne moduły.
Zalety tej struktury:
- Łatwiejsza konserwacja i skalowalność przypadków testowych.
- Tworzenie przypadków testowych przy użyciu już skryptowanych modułów jest łatwiejsze i szybsze.
Niedogodności:
- Przypadki testowe mają osadzone dane. Zatem wykonanie tego samego skryptu testowego z różnymi danymi jest dużą zmianą na poziomie skryptu.
(ii) Struktura testowania opartego na danych:
W ramach testowania opartego na danych dane wejściowe i oczekiwane dane wyjściowe odpowiadające danym wejściowym są przechowywane w pliku lub bazie danych, a zautomatyzowany skrypt uruchamia ten sam zestaw kroków testowych dla wielu zestawów danych. Dzięki tej strukturze możemy uruchomić wiele przypadków testowych, w których różnią się tylko dane wejściowe, a kroki wykonania są takie same.
Zalety:
- Zmniejsza liczbę skryptów testowych, które są wymagane do wykonania. Wykonujemy ten sam skrypt wiele razy z różnymi danymi.
- Mniej kodowania do testowania automatyzacji.
- Większa elastyczność w utrzymywaniu i naprawianiu błędów lub zwiększaniu funkcjonalności.
- Dane testowe mogą być tworzone jeszcze zanim zautomatyzowany system do testowania będzie gotowy.
Niedogodności:
- Tylko podobne przypadki testowe z tym samym zestawem kroków wykonania mogą być łączone dla wielu zestawów danych. Różne zestawy czynności wykonawczych wymagają innego przypadku testowego.
(iii) Struktura testowania oparta na słowach kluczowych:
Jest to niezależna od aplikacji platforma testowa, która wykorzystuje tabele danych i oczywiste słowa kluczowe. Słowa kluczowe wyjaśniają działania, które mają zostać wykonane na testowanej aplikacji, a tabela danych zawiera dane wejściowe i oczekiwane dane wyjściowe.
Testowanie oparte na słowach kluczowych to kolejny krok w stosunku do testowania opartego na danych.
Zalety:
- Mniej kodowania i ten sam skrypt może być używany do wielu zestawów danych.
- Znajomość automatyzacji nie jest wymagana do tworzenia przypadku testowego przy użyciu już istniejących słów kluczowych dla działań.
- Te same słowa kluczowe mogą być używane w wielu przypadkach testowych.
Niedogodności:
- Ta struktura jest bardziej skomplikowana, ponieważ musi zająć się akcjami słów kluczowych, a także wprowadzaniem danych.
- Przypadki testowe stają się dłuższe i złożone, co wpływa na możliwość ich utrzymania.
(iv) Framework do testowania hybrydowego:
Ten framework to połączenie wszystkich wyżej wymienionych frameworków testowych (modułowych, opartych na danych i sterowanych słowami kluczowymi).
W tej strukturze przypadki testowe są opracowywane z modułowych skryptów poprzez połączenie ich w modułowej strukturze testowej. Każdy z przypadków testowych używa skryptu sterownika, który używa pliku danych, tak jak w strukturze opartej na danych, oraz pliku akcji opartego na słowach kluczowych.
Zalety:
- Modułowe i łatwe w utrzymaniu.
- Mniej kodowania może zająć więcej przypadków testowych.
- Jeden przypadek testowy można wykonać z wieloma zestawami danych.
Niedogodności:
- Złożone do czytania, utrzymywania i ulepszania.
P # 28) Kiedy wolisz testowanie ręczne od testowania automatycznego?
Odpowiedź: Preferujemy testowanie ręczne od testowania automatycznego w następujących przypadkach:
- Projekt jest krótkoterminowy, a pisanie skryptów będzie czasochłonne i kosztowne w porównaniu z testowaniem ręcznym.
- Wymagana jest elastyczność. Zautomatyzowane przypadki testowe są programowane i uruchamiane w określony sposób konfiguracji.
- Należy przeprowadzić testy użyteczności.
- Aplikacje / moduł są nowo opracowane i nie mają wcześniejszych przypadków testowych.
- Należy przeprowadzić testy doraźne lub eksploracyjne.
P # 29) Czy testowanie automatyczne w metodologii Agile jest przydatne, czy nie?
Odpowiedź: Testowanie automatyczne jest przydatne do testowania regresji, dymu lub normalności. Wszystkie te rodzaje testów w tradycyjnym modelu kaskadowym mają miejsce pod koniec cyklu i czasami, jeśli nie ma wielu ulepszeń aplikacji, możemy nawet nie musieć tego robić testy regresji .
Natomiast w zwinna metodologia , każda iteracja wymaga wykonania testu regresji w miarę dodawania nowych funkcji.
Ponadto sam zestaw regresji rośnie po każdym sprincie, ponieważ funkcjonalne przypadki testowe bieżącego modułu sprintu muszą zostać dodane do zestawu regresji na następny sprint.
Dlatego testy automatyczne w metodologii zwinnej są bardzo przydatne i pomagają w osiągnięciu maksymalnego pokrycia testów w krótszym czasie sprintu.
Q # 30) Wymień niektóre zalety i wady testów automatycznych.
Odpowiedź:
Zalety:
- Mniej zasobów ludzkich
- Możliwość ponownego użycia
- Więcej pokrycia testowego w krótszym czasie
- Niezawodność
- Równoległe wykonywanie przypadków testowych
- Szybki
Niedogodności:
podstawowe pytania do wywiadów Java dla doświadczonych
- Czas rozwoju i konserwacji to więcej.
- Koszt narzędzia
- Wymagane są wykwalifikowane zasoby.
- Konfiguracja środowiska
- Problemem jest debugowanie skryptu testowego.
P # 31) Wymień niektóre zalety i wady testowania ręcznego.
Odpowiedź:
Zalety:
- Nie jest wymagana konfiguracja środowiska.
- Znajomość programowania nie jest wymagana.
- Zalecane do dynamicznie zmieniających się wymagań.
- Pozwól ludzkim obserwacjom wykryć więcej błędów.
- Koszt jest mniejszy w przypadku projektów krótkoterminowych.
- Elastyczność
Niedogodności:
- Trudne do wykonywania złożonych obliczeń.
- Możliwość ponownego użycia
- Trwało
- Wysokie ryzyko błędów ludzkich lub pomyłek.
- Potrzebne są większe zasoby ludzkie.
P # 32) Czy możemy wykonywać testy automatyczne bez frameworka? Jeśli tak, to po co nam ramy?
Odpowiedź: Tak, możemy przeprowadzić testy automatyzacji nawet bez użycia frameworka. Możemy po prostu zrozumieć narzędzie, którego używamy do automatyzacji i zaprogramować kroki w języku programowania obsługiwanym przez narzędzia.
Jeśli zautomatyzujemy przypadki testowe bez frameworka, nie będzie żadnej spójności w skryptach programowania dla przypadków testowych.
Struktura jest wymagana, aby zapewnić zestaw wytycznych, których każdy musi przestrzegać, aby zachować czytelność, możliwość ponownego użycia i spójność skryptów testowych. Struktura zapewnia również jedną wspólną podstawę dla funkcji raportowania i rejestrowania.
P # 33) W jaki sposób zautomatyzujesz podstawowe przypadki testowe funkcji „logowania” dla aplikacji?
Odpowiedź: Zakładając, że narzędzie i framework do automatyzacji są już na miejscu środowiska testowego.
Aby przetestować podstawową funkcjonalność „Logowanie”:
- Zrozum wymagania projektu : Funkcja logowania będzie miała pole tekstowe nazwy użytkownika, pole tekstowe hasła i przycisk logowania.
- Zidentyfikuj scenariusze testowe: W przypadku funkcji logowania możliwe scenariusze testowe to:
- Pusta nazwa użytkownika i hasło
- Nieprawidłowa nazwa użytkownika i hasło
- Prawidłowa nazwa użytkownika i nieprawidłowe hasło
- Prawidłowa nazwa użytkownika i hasło
- Przygotować Plik wejściowy danych z danymi odpowiadającymi każdemu scenariuszowi.
- Uruchom narzędzie z programu.
- Zidentyfikuj pole nazwy użytkownika, pole hasła i przycisk logowania.
- Dla każdego scenariusza testowego pobierz dane z pliku danych i wprowadź je w odpowiednich polach. Program kliknij na przycisk logowania po wprowadzeniu danych.
- Uprawomocnić komunikat o błędzie dla negatywnych scenariuszy i komunikat o powodzeniu dla pozytywnych scenariuszy w skrypcie testowym za pomocą asercji.
- Biegać zestaw testów i wygeneruj raport.
Q # 34) Czy automatyzacja testowania to testowanie czarnoskrzynkowe czy białoskrzynkowe?
Odpowiedź: Testowanie automatyczne to głównie testowanie czarnoskrzynkowe ponieważ po prostu programujemy kroki, które tester ręczny wykonuje dla testowanej aplikacji, nie znając projektu niskopoziomowego lub kodu aplikacji.
Czasami zautomatyzowane skrypty testowe wymagają dostępu do szczegółów bazy danych, które są używane w testowanej aplikacji lub bardziej szczegółowych informacji dotyczących kodowania, a zatem mogą być rodzajem testów białoskrzynkowych.
Dlatego testy automatyczne mogą być testami typu czarno-białoskrzynkowego, w zależności od scenariuszy, w których wykonywana jest automatyzacja.
P # 35) Ile przypadków testowych zautomatyzowałeś dziennie?
Odpowiedź: Cóż, liczba zależy od złożoności przypadków testowych. Kiedy złożoność była ograniczona, mogłem zautomatyzować od 5 do 6 przypadków testowych dziennie. Czasami byłem w stanie zautomatyzować tylko jeden przypadek testowy dla złożonych scenariuszy.
Podzieliłem również moje przypadki testowe na różne komponenty, takie jak pobieranie danych wejściowych, wykonywanie obliczeń, weryfikowanie wyników itp. W przypadku bardzo złożonych scenariuszy i zajęło mi to 2 lub więcej dni.
P # 36) Jakie czynniki decydują o skuteczności testów automatycznych?
Odpowiedź: Niektóre z czynników, które decydują o skuteczności testów automatycznych to:
- Oszczędność czasu dzięki uruchamianiu skryptów zamiast ręcznego wykonywania przypadków testowych.
- Znaleziono wady
- Pokrycie testowe lub pokrycie kodu
- Czas konserwacji lub czas rozwoju
- Stabilność skryptów
- Przetestuj możliwość ponownego użycia
- Jakość testowanego oprogramowania
P # 37) Które przypadki testowe można zautomatyzować?
Odpowiedź: Typy przypadków testowych, które można zautomatyzować, to:
(i) Przypadki testowe z dymem: Testowanie dymu jest również znane jako testowanie weryfikacji kompilacji. Przypadki testowe Smoke są uruchamiane za każdym razem, gdy publikowana jest nowa kompilacja, aby sprawdzić jej kondycję w celu zaakceptowania jej do wykonania testów.
(ii) Przypadki testów regresji : Testy regresyjne to testowanie zapewniające, że wcześniej opracowane moduły działają zgodnie z oczekiwaniami po dodaniu nowego modułu lub naprawieniu błędu.
Przypadki testowe regresji są bardzo ważne w przyrostowym podejściu programowym, gdzie w każdej fazie przyrostu dodawana jest nowa funkcjonalność. W takim przypadku testy regresji są wykonywane w każdej fazie przyrostowej.
(iii) Przypadki testowe do obliczeń złożonych: Przypadki testowe, które obejmują skomplikowane obliczenia w celu zweryfikowania pola aplikacji, należą do tej kategorii. Złożone wyniki obliczeń są bardziej podatne na błędy ludzkie, dlatego po zautomatyzowaniu dają dokładne wyniki.
(iv) Przypadki testowe oparte na danych: Przypadki testowe, które mają ten sam zestaw kroków i są uruchamiane wiele razy ze zmianą danych, są nazywane przypadkami testowymi opartymi na danych. Zautomatyzowane testowanie tego rodzaju przypadków testowych jest szybkie i opłacalne.
(v) Niefunkcjonalne przypadki testowe : Przypadki testowe, takie jak testy obciążenia i testy wydajności, wymagają symulowanego środowiska z wieloma użytkownikami i wieloma kombinacjami sprzętu lub oprogramowania.
Ręczne skonfigurowanie wielu środowisk nie jest możliwe dla każdej kombinacji lub liczby użytkowników. Zautomatyzowane narzędzia mogą łatwo utworzyć to środowisko, aby łatwo przeprowadzić testy niefunkcjonalne.
P # 38) Jakie są fazy cyklu życia testów automatycznych?
Odpowiedź: Fazy cyklu życia testów automatycznych obejmują:
- Decyzja o wykonaniu testów automatyzacyjnych.
- Zidentyfikuj i poznaj narzędzie do automatyzacji.
- Określ zakres testów automatyzacji.
- Zaprojektuj i opracuj zestaw testów.
- Wykonanie testu
- Utrzymanie skryptów testowych.
P # 39) Co to jest skrypt automatycznego testu?
Odpowiedź: Skrypt testu automatycznego to krótki program napisany w języku programowania w celu wykonania zestawu instrukcji dotyczących testowanej aplikacji w celu sprawdzenia, czy aplikacja spełnia wymagania.
Ten program po uruchomieniu podaje wyniki testu jako pozytywne lub nie w zależności od tego, czy aplikacja jest zgodna z oczekiwaniami.
Wniosek
Są to główne pytania niezależne od narzędzia automatyzacji lub języka programowania. Wywiady z testami automatyzacji obejmują również pytania dotyczące narzędzi i języków programowania, w zależności od narzędzia, z którym pracowałeś.
Większość pytań do rozmowy kwalifikacyjnej dotyczącej automatyzacji testów koncentruje się na opracowywanej strukturze, dlatego zaleca się dokładne utworzenie i zrozumienie struktury testowej. Kiedy przeprowadzam rozmowę kwalifikacyjną, a kandydat odpowiedział na moje pytanie dotyczące frameworka, wolę również zadać pytanie dotyczące języka (w moim przypadku core java).
Pytania zaczynają się od podstaw javy, aby napisać logikę niektórych podstawowych scenariuszy, takich jak:
- Jak wyodrębniłbyś zestaw tekstu z danej linii?
- Jak wyodrębniłbyś adres URL?
- Na dowolnej stronie internetowej, w dowolnej ramce, liczba linków i ich zawartość zmieniają się dynamicznie, jak byś sobie z tym poradził?
- Jak radzisz sobie z obrazami i obiektami flash?
- Jak znaleźć słowo w linii?
Odpowiedzi na to wszystko pytania do wywiadu dotyczącego automatyzacji testów są bardzo specyficzne dla narzędzia / języka, którego używasz do automatyzacji. Dlatego zanim pójdziesz na rozmowę kwalifikacyjną, odświeżysz swoje umiejętności programistyczne.
Jeśli nie miałeś okazji stworzyć swojego frameworka, a stworzył go ktoś inny, poświęć trochę czasu na dokładne zrozumienie, zanim przystąpisz do rozmowy kwalifikacyjnej.
Oto kilka wskazówek dotyczących wywiadów z testami automatyzacji:
- Dokładnie poznaj swoje narzędzie.
- Poznaj techniki lokalizatora używane przez Twoje narzędzie.
- Poćwicz programowanie w języku, którego używasz do testowania automatyzacji.
- Poznaj swój framework i jego komponenty.
- Jest to zawsze korzystne, jeśli byłeś zaangażowany w tworzenie swojego frameworka. Dlatego dokładnie zapoznaj się z modułami we frameworku, nad którym pracowałeś.
Mam nadzieję, że te pytania będą przydatne w przygotowaniu się do rozmowy kwalifikacyjnej dotyczącej automatyzacji testów.
rekomendowane lektury
- Pytania i odpowiedzi do wywiadu
- ETL Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej testującej
- Kilka interesujących pytań do rozmowy kwalifikacyjnej dotyczącej testowania oprogramowania
- 25 najlepszych pytań i odpowiedzi na rozmowę z testami zwinnymi
- 20 najważniejszych pytań i odpowiedzi do wywiadów dotyczących testowania API
- Pytania i odpowiedzi dotyczące testowania oprogramowania (część 1)
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- 30 najczęściej zadawanych pytań i odpowiedzi na rozmowę z testami bezpieczeństwa