175 Shares 5380 views

programy badawcze – proces wykrywania błędów w oprogramowaniu produktu

W rozwoju oprogramowania, znaczna część procesu produkcyjnego opiera się na testowaniu oprogramowania. Co to jest i jak jest taka działalność będzie omawiać w tym artykule.

Co nazywa się test?

To odnosi się do procesu uruchamiania oprogramowania do wykrywania lokalizacji nieprawidłowego działania kodu. Dla uzyskania najlepszych rezultatów, celowo skonstruowany trudny zestaw danych wejściowych. Głównym celem kontroli jest stworzyć najlepszą okazję do awarii oprogramowania. Chociaż czasami testowania opracowanego programu można uprościć do rutynowej kontroli zdolności do pracy i wykonywania funkcji. To oszczędza czas, ale często towarzyszy zawodności oprogramowania, niezadowolenie użytkownika, i tak dalej.

skuteczność

Jak dobrze i szybko są błędy, znaczący wpływ na koszty i czas tworzenia oprogramowania wymaganej jakości. Tak więc, pomimo faktu, że testerzy otrzymają wynagrodzenie kilkakrotnie mniejszy niż programistów, koszt ich usług jest zazwyczaj do 30 – 40% kosztów całego projektu. Wynika to z liczby personelu, ponieważ poszukiwanie pomyłkę – to niezwykła i bardzo trudny proces. Ale nawet jeśli oprogramowanie przechodzi szereg testów szacunku, nie ma 100% gwarancji, że błąd nie będzie się działo. Tylko nie wiem, kiedy one wystąpią. Aby zachęcić testerów aby wybrać rodzaje testów, które są bardziej prawdopodobne, aby znaleźć usterkę, wykorzystywane są różne narzędzia motywacyjne: zarówno moralnych i materialnych.

Podejście do pracy

Optymalne jest, gdy do wdrożenia różnych mechanizmów w celu zapewnienia, że błędy w oprogramowaniu nie było od początku. Aby to zrobić, trzeba zadbać o odpowiednie projektowanie architektury, przejrzystych warunków zamówienia, i ważne jest, aby nie wprowadzać zmian w komunikacji, kiedy prace nad projektem już się rozpoczęły. W tym przypadku, tester do zadania znalezienia i identyfikacji niewielką liczbę błędów, które pozostają w wyniku końcowego. Pozwoli to zaoszczędzić czas i pieniądze.

Co to jest test?

Jest to ważny aspekt działań inspekcyjnych, które jest niezbędne dla skutecznego wykrywania defektów w kodzie. Są one niezbędne w celu kontroli prawidłowego stosowania. Co jest wliczone w teście? Składa się on z danych i ich wartości wyjściowe, które powinno być uzyskane jako wypadkowa (lub produktu pośredniego). Aby skutecznie zidentyfikować problemy i nieścisłości, testy powinny być po algorytm został opracowany, ale nie rozpocząć programowanie. Pożądane jest, aby korzystać z kilku podejść do szacowania wymagane dane. W tym przypadku, co zwiększa prawdopodobieństwo wykrycia błędu, ponieważ można zbadać kod z innej perspektywy. Kompleksowe testy musi zapewnić weryfikację efektów zewnętrznych gotowych produktów oprogramowania, jak i jego algorytmów pracy. Przedmiotem szczególnego zainteresowania i zapewnić marginalne przypadki zdegenerowane. Zatem w praktyce błędy często ujawniają, że cykl działa w jednym lub więcej razy mniej niż planowano. Równie ważne jest testowanie komputer, za pomocą którego można sprawdzić, pożądanego wyniku na różnych maszynach. Jest to konieczne, aby upewnić się, że oprogramowanie będzie działać na wszystkich komputerach. Ponadto, test komputerowy, na których rozwój zostanie przeprowadzona, jest ważne w tworzeniu rozwoju wielu platform.

Rozwiązywanie problemów Arts

Programy często dążyć do współpracy z ogromnych zbiorów danych. Jest to konieczne, aby całkowicie utworzyć? Nie. Powszechna praktyka nabyta „miniaturyzacji” programu. W tym przypadku nie jest to rozsądne ograniczenie ilości danych w porównaniu z tym, by zostać użyte. Spójrzmy na przykład: jest to program, który tworzy macierz o rozmiarze 50×50. Innymi słowy – należy ręcznie wprowadzić wartości 2500. Jest oczywiście możliwe, ale to zajmie bardzo dużo czasu. Jednak w celu przetestowania funkcjonalności, oprogramowanie otrzyma matrycę, której wymiar jest 5×5. Aby to zrobić, trzeba wprowadzić więcej niż 25 wartości. Jeżeli w tym przypadku, to normalne, działanie wolne od błędów, to znaczy, że wszystko jest w porządku. Chociaż istnieją pułapek, które polega na tym, że występuje sytuacja z miniaturyzacji, co skutkuje zmianą staje niejawna i tymczasowo zniknąć. Jest to również bardzo rzadkie, ale nadal zdarza się, że pojawiają się nowe błędy.

cele realizowane

Badanie nie jest łatwym zadaniem ze względu na fakt, że proces ten nie jest podatny na formalizacji w całości. Duże programy prawie nigdy nie mają niezbędnej dokładne odniesienia. Dlatego też, jako wytyczne przy użyciu szeregu danych pośrednich, które jednak nie mogą w pełni odzwierciedlają cechy i funkcje tworzenia oprogramowania, które pozbawione błędów. Ponadto, powinny być tak dobrane, że prawidłowy wynik obliczony przed jak oprogramowanie będzie testowane. Jeśli nie wcześniej, to jest kuszące, aby wziąć pod uwagę wszystkie informacje, a jeśli wynik maszyny dostaje w oczekiwanym zakresie, to zostanie wykonany złą decyzję, że wszystko jest w porządku.

Sprawdzić w różnych warunkach

Z reguły, badania programu odbywa się w ilości, które są konieczne do minimum funkcji testowej w ograniczonym stopniu. Działania prowadzone ze zmianą parametrów, jak również warunków pracy. Sposób testowania może być podzielona na trzy etapy:

  • Sprawdzić w warunkach normalnych. W tym przypadku możemy przetestować podstawowe funkcje opracowanego oprogramowania. Wynik musi być zgodna z oczekiwaniami.
  • Sprawdzić w ekstremalnych warunkach. W tych przypadkach, jako synonim danych brzegowych, które mogą negatywnie wpłynąć na wydajność tworzonego oprogramowania. Jako przykład, możemy pracować z bardzo dużych lub małych ilościach lub nawet całkowitego braku informacji otrzymanych.
  • Sprawdzanie w wyjątkowych sytuacjach. Polega ona na wykorzystanie danych, które są poza leczeniem. W takich sytuacjach, to jest bardzo zły, gdy oprogramowanie postrzega je jako przydatne do obliczania i daje wiarygodny wynik. Należy uważać, że w takich przypadkach nie jest odrzuceniem wszelkich danych, które nie mogą być przetwarzane poprawnie. Konieczne jest także zapewnienie informowania o tym użytkownika

Testowanie: Rodzaje

Tworzenie oprogramowania bez błędu jest bardzo trudne. To wymaga dużo czasu. Aby uzyskać dobry produkt jest często używane dwa rodzaje testów: „Alfa” i „beta”. Co to jest? Kiedy ludzie mówią o testach alfa, oznacza to, że przegląd będzie zachowywał się w stanie rozwoju warunków „laboratorium”. Jest to ostatni etap testów zanim program zostanie przeniesiony do użytkowników końcowych. Dlatego deweloperzy starają się odwrócić maksimum. Dla ułatwienia obsługi, dane mogą być rejestrowane, aby stworzyć chronologię problemów i ich rozwiązań. W ramach testu beta zrozumieć dostawę oprogramowania do ograniczonej liczby użytkowników, tak aby mogły one wykorzystać program i zidentyfikować błędy przeoczyłeś. Szczególną cechą w tym przypadku jest fakt, że często oprogramowanie nie jest używany zgodnie z jego przeznaczeniem. Z tego powodu awarii zostanie zidentyfikowany, gdzie nie było nic wcześniej nie widział. Jest to zupełnie normalne i martwić się o to nie jest konieczne.

Zakończenie testu

Jeśli poprzednie kroki zostały pomyślnie zakończone, pozostaje do przeprowadzenia testów akceptacyjnych. On w tym przypadku staje się formalnością. Podczas tego testu przychodzi potwierdzenie, że żadne dodatkowe problemy zostały odnalezione i oprogramowanie może zostać wydany na rynku. Najważniejszy będzie końcowy wynik, tym bardziej ściśle, że powinna być zweryfikowana. Należy dołożyć starań, aby upewnić się, że wszystkie czynności zostały zakończone pomyślnie. Oto proces testowania jako całości. Teraz zagłębić się w szczegóły techniczne i mówić o takim przydatnym narzędziem, jak programach badawczych. Czym są i kiedy stosować?

Badania wspomagane komputerowo

Wcześniej sądzono, że dynamiczna analiza opracowanego oprogramowania – jest zbyt ciężki podejście, które skutecznie wykorzystywane do wykrywania wad. Ale ze względu na rosnącą złożoność i objętości programów pojawiła przeciwnego zdania. Automatyczne testowanie służy gdzie najważniejszymi priorytetami są bezpieczeństwo i skuteczność. I powinny być pod każdym wejściu. Jako przykład, programy, za które jest odpowiednie do takich badań, obejmują następujące elementy: protokoły sieciowe, serwer WWW, piaskownice. Nadal spojrzeć na kilka próbek, które mogą być używane do takich działań. Jeśli jesteś zainteresowany darmowych programów testowych, jakość jest trudno znaleźć wśród nich. Ale nie są popękane „pirackie” wersje ugruntowanych projektów, więc można odnieść się do ich usług.

lawina

To narzędzie pomaga wykryć defekty są testowane programy w trybie analizy dynamicznej. Zbiera dane i analizuje wykonanie przedmiotu sportowa zaprojektowany. Tester jest podany zestaw wejść, które powodują błąd lub omijają istniejący zestaw ograniczeń. Dzięki dobrym testem algorytmu opracowanego przez dużą liczbę możliwych sytuacjach. Program otrzymuje inny zestaw danych wejściowych, które pozwalają symulować wiele sytuacji i stworzyć warunki, w których najprawdopodobniej jest występowanie awarii. Ważną zaletą programu jest wykorzystanie heurystycznego metryki. Jeśli jest problem, to błąd aplikacji jest wysoce prawdopodobne. Ale ten program ma ograniczenia, takie jak tylko jeden czek oznaczone gniazda wejściowego lub pliku. Podczas przeprowadzania operacji, takich jak programy badań będzie zawierać szczegółowe informacje o problemach z zerowym wskaźnikiem, nieskończone pętle, nieprawidłowych adresów lub usterki powstałe w wyniku korzystania z bibliotek. Oczywiście, nie jest to pełna lista wykrytych błędów i ich jedynym wspólnym przykładów. Niedobory Korygowanie, niestety, mają programistów – zautomatyzowane środki nie nadają się do tych celów.

KLEE

To jest dobry program do testowania pamięci. może przechwycić około 50 wywołań systemowych i dużą liczbę procesów wirtualnych tak wykonywane równolegle lub oddzielnie. Ale ogólnie rzecz biorąc, program nie szuka niektórych podejrzanych miejscach i przetwarza maksymalną możliwą ilość kodu i analiz wykorzystywane ścieżek danych. Z tego powodu program testowy zależy od wielkości obiektu. Podczas sprawdzania zakład znajduje się na procesach symbolicznych. Są one jednym z możliwych sposobów wykonywania zadań w programie, który jest testowany. Dzięki pracy równoległej można analizować dużą liczbę wariantów pracy aplikacji testowej. Dla każdej ścieżki zestawów danych wejściowych są zapisywane po teście, który rozpoczął się wraz z czekiem. Należy zauważyć, że programy badawcze wykorzystujące Klee pomaga zidentyfikować dużą liczbę odmian, które nie powinno być. Można go znaleźć problemy nawet w aplikacjach, które są rozwijane przez dziesięciolecia.