Testowanie niezawodności
Testowanie niezawodności to proces testowania oprogramowania, który sprawdza, czy oprogramowanie może działać bezawaryjnie przez określony czas w określonym środowisku. Celem testowania niezawodności jest upewnienie się, że produkt programowy jest wolny od błędów i wystarczająco niezawodny do oczekiwanego celu.
Niezawodność oznacza „dawanie tego samego”, innymi słowy, słowo „wiarygodność” oznacza, że coś jest niezawodne i za każdym razem da ten sam wynik. To samo dotyczy testów niezawodności.
W tym samouczku nauczysz się:
- Co to jest testowanie niezawodności?
- Przykład testu niezawodności
- Czynniki wpływające na niezawodność oprogramowania
- Dlaczego warto przeprowadzać testy niezawodności
- Rodzaje testów niezawodności
- Jak przeprowadzić testy niezawodności
- Przykładowe metody testowania niezawodności
- Narzędzia do testowania niezawodności
Przykład testu niezawodności
Prawdopodobieństwo, że komputer w sklepie będzie działał przez osiem godzin bez awarii, wynosi 99%; nazywa się to niezawodnością.
Testy niezawodności można podzielić na trzy segmenty,
- Modelowanie
- Pomiary
- Poprawa
Poniższy wzór służy do obliczania prawdopodobieństwa niepowodzenia.
Prawdopodobieństwo = liczba przypadków zakończonych niepowodzeniem / całkowita liczba rozważanych przypadków
Czynniki wpływające na niezawodność oprogramowania
- Liczba usterek prezentowanych w oprogramowaniu
- Sposób, w jaki użytkownicy obsługują system
- Testowanie niezawodności jest jednym z kluczy do lepszej jakości oprogramowania. To testowanie pomaga wykryć wiele problemów związanych z projektem i funkcjonalnością oprogramowania.
- Głównym celem testów niezawodności jest sprawdzenie, czy oprogramowanie spełnia wymagania niezawodności klienta.
- Testowanie niezawodności zostanie przeprowadzone na kilku poziomach. Złożone systemy będą testowane na poziomie jednostki, montażu, podsystemu i systemu.
Dlaczego warto przeprowadzać testy niezawodności
Testowanie niezawodności ma na celu sprawdzenie wydajności oprogramowania w określonych warunkach.
Celem przeprowadzania testów niezawodności są:
- Znaleźć strukturę powtarzających się awarii.
- Znalezienie liczby występujących awarii to określony czas.
- Aby odkryć główną przyczynę niepowodzenia
- Przeprowadzanie testów wydajności różnych modułów aplikacji po usunięciu usterki
Również po wydaniu produktu możemy zminimalizować możliwość wystąpienia usterek, a tym samym poprawić niezawodność oprogramowania. Niektóre z narzędzi przydatnych w tym celu to - Analiza trendów, Klasyfikacja ortogonalnych defektów i metody formalne itp.
Rodzaje testów niezawodności
Testowanie niezawodności oprogramowania obejmuje testowanie funkcji, testowanie obciążenia i testowanie regresji
Testowanie funkcji: -
Testy polecane sprawdzają funkcje oferowane przez oprogramowanie i są przeprowadzane w następujących krokach: -
- Każda operacja w oprogramowaniu jest wykonywana co najmniej raz.
- Interakcja między tymi dwiema operacjami jest ograniczona.
- Każda operacja musi zostać sprawdzona pod kątem prawidłowego wykonania.
Testowanie obciążenia: -
Zwykle oprogramowanie będzie działało lepiej na początku procesu, a potem zacznie się degradować. Testy obciążeniowe są przeprowadzane w celu sprawdzenia działania oprogramowania przy maksymalnym obciążeniu pracą.
Test regresji: -
Testy regresyjne służą głównie do sprawdzania, czy nie pojawiły się nowe błędy spowodowane naprawieniem poprzednich błędów. Testy regresyjne są przeprowadzane po każdej zmianie lub aktualizacji funkcji oprogramowania i ich funkcjonalności.
Jak przeprowadzić testy niezawodności
Testowanie niezawodności jest kosztowne w porównaniu z innymi typami testów. Dlatego podczas przeprowadzania testów niezawodności wymagane jest właściwe planowanie i zarządzanie. Obejmuje to proces testowania do wdrożenia, dane dla środowiska testowego, harmonogram testów, punkty testowe itp.
Aby rozpocząć testowanie niezawodności, tester musi przestrzegać następujących zasad:
- Ustal cele dotyczące niezawodności
- Opracuj profil operacyjny
- Zaplanuj i wykonaj testy
- Wykorzystaj wyniki testów do podejmowania decyzji
Jak omówiliśmy wcześniej, istnieją trzy kategorie, w których możemy przeprowadzić Test niezawodności - Modelowanie, Pomiar i Udoskonalanie .
Kluczowymi parametrami związanymi z testowaniem niezawodności są: -
- Prawdopodobieństwo bezawaryjnej pracy
- Długość czasu bezawaryjnej pracy
- Środowisko, w którym jest wykonywany
Krok 1) Modelowanie
Technikę modelowania oprogramowania można podzielić na dwie podkategorie:
1. Modelowanie predykcyjne
2. Modelowanie szacunkowe
- Znaczące wyniki można uzyskać, stosując odpowiednie modele.
- Można przyjąć założenia i abstrakcje, aby uprościć problemy i żaden pojedynczy model nie będzie pasował do wszystkich sytuacji.
Główne różnice między dwoma modelami to: -
Zagadnienia | Modele predykcyjne | Modele szacowania |
---|---|---|
Odniesienie do danych | Wykorzystuje dane historyczne | Wykorzystuje aktualne dane z rozwoju oprogramowania. |
Kiedy jest używany w cyklu rozwoju | Zwykle jest tworzony przed fazą rozwoju lub testowania. | Będzie on zwykle używany na późniejszym etapie cyklu życia oprogramowania. |
Ramy czasowe | Przewiduje niezawodność w przyszłości. | Przewiduje niezawodność w chwili obecnej lub w przyszłości. |
Krok 2) Pomiar
Niezawodności oprogramowania nie można zmierzyć bezpośrednio, dlatego w celu oszacowania niezawodności oprogramowania bierze się pod uwagę inne powiązane czynniki. Obecne praktyki pomiaru niezawodności oprogramowania są podzielone na cztery kategorie: -
1. Dane produktu: -
Dane produktu to połączenie 4 rodzajów danych:
- Rozmiar oprogramowania : - Line of Code (LOC) to intuicyjne podejście początkowe do pomiaru rozmiaru oprogramowania. Ta metryka obejmuje tylko kod źródłowy, a komentarze i inne niewykonalne instrukcje nie będą liczone.
- Punkt funkcyjny Metric : - Funkcja Pont Metric to metoda pomiaru funkcjonalności rozwoju oprogramowania. Bierze pod uwagę liczbę wejść, wyjść, plików głównych itp. Mierzy funkcjonalność dostarczoną użytkownikowi i jest niezależny od języka programowania.
- Złożoność : - Jest bezpośrednio związana z niezawodnością oprogramowania, dlatego ważne jest przedstawienie złożoności. Metryka zorientowana na złożoność to metoda określania złożoności struktury sterowania programu poprzez uproszczenie kodu do postaci graficznej.
- Wskaźniki pokrycia testów : - Jest to sposób szacowania błędów i niezawodności poprzez wykonanie pełnego testu oprogramowania. Niezawodność oprogramowania oznacza, że jest to funkcja określająca, czy system został w pełni zweryfikowany i przetestowany.
2. Metryki zarządzania projektami
- Badacze zdali sobie sprawę, że dobre zarządzanie może skutkować lepszymi produktami.
- Dobre zarządzanie może osiągnąć wyższą niezawodność poprzez zastosowanie lepszego procesu rozwoju, procesu zarządzania ryzykiem, procesu zarządzania konfiguracją itp.
3. Metryki procesu
Jakość produktu jest bezpośrednio związana z procesem. Metryki procesu można wykorzystać do szacowania, monitorowania i ulepszania niezawodności i jakości oprogramowania.
4. Wskaźniki błędów i awarii
Metryki błędów i awarii są używane głównie do sprawdzania, czy system jest całkowicie bezawaryjny. Aby osiągnąć ten cel, zbierane są, podsumowywane i analizowane zarówno typy usterek wykrytych podczas procesu testowania (tj. Przed dostawą), jak i awarie zgłaszane przez użytkowników po dostawie.
Niezawodność oprogramowania mierzy się jako średni czas między awariami (MTBF) . MTBF składa się z
- Średnia do awarii (MTTF): Jest to różnica czasu między dwoma kolejnymi awariami
- Średni czas naprawy (MTTR): jest to czas wymagany do usunięcia awarii.
MTBF = MTTF + MTTR
Niezawodność dobrego oprogramowania to liczba od 0 do 1.
Niezawodność wzrasta po usunięciu błędów lub błędów z programu.
Krok 3) Poprawa
Ulepszenie całkowicie zależy od problemów, które wystąpiły w aplikacji lub systemie, lub też od charakterystyki oprogramowania. W zależności od złożoności modułu oprogramowania, sposób doskonalenia również będzie się różnić. Dwa główne ograniczenia czasowe i budżetowe, które ograniczą wysiłki są wkładane w poprawę niezawodności oprogramowania.
Przykładowe metody testowania niezawodności
Testowanie niezawodności polega na przetestowaniu aplikacji w taki sposób, aby awarie były wykrywane i usuwane przed wdrożeniem systemu.
Istnieją głównie trzy podejścia do testowania niezawodności
- Niezawodność test-powtórka
- Niezawodność form równoległych
- Spójność decyzji
Poniżej staraliśmy się to wszystko wyjaśnić na przykładzie.
Niezawodność test-powtórka
Aby oszacować rzetelność powtórzenia testu, pojedyncza grupa zdających wykona proces testowy w odstępie zaledwie kilku dni lub tygodni. Czas powinien być na tyle krótki, aby można było ocenić umiejętności zdających w tej dziedzinie. Zależność między wynikami zdającego z dwóch różnych administracji jest szacowana za pomocą korelacji statystycznej. Ten rodzaj rzetelności pokazuje stopień, w jakim test jest w stanie wygenerować stabilne, spójne wyniki w czasie.
Niezawodność form równoległych
Wiele egzaminów ma różne formaty arkuszy pytań, te równoległe formy egzaminu zapewniają bezpieczeństwo. Rzetelność form równoległych szacuje się, podając obie formy egzaminu tej samej grupie zdających. Wyniki zdających z obu formularzy testowych są skorelowane w celu określenia, jak podobnie funkcjonują te dwa formularze. To oszacowanie rzetelności jest miarą tego, jak można oczekiwać spójnych wyników osób zdających we wszystkich formularzach testu.
Spójność decyzji
Po wykonaniu testu-powtórnego testu i niezawodności postaci równoległej otrzymamy wynik pozytywny lub negatywny. Wiarygodność tej decyzji klasyfikacyjnej jest oceniana w wiarygodności zgodności decyzji.
Znaczenie testowania niezawodności
Aby poprawić wydajność oprogramowania i procesu, wymagana jest dokładna ocena niezawodności. Testowanie niezawodności oprogramowania w dużym stopniu pomoże menedżerom oprogramowania i praktykom.
Aby sprawdzić niezawodność oprogramowania poprzez testy: -
- Duża liczba przypadków testowych powinna być wykonywana przez dłuższy czas, aby dowiedzieć się, jak długo oprogramowanie będzie działać bezawaryjnie.
- Dystrybucja przypadków testowych powinna odpowiadać faktycznemu lub planowanemu profilowi operacyjnemu oprogramowania. Im częściej wykonywana jest funkcja oprogramowania, tym większy procent przypadków testowych powinien być przypisany do tej funkcji lub podzbioru.
Narzędzia do testowania niezawodności
Niektóre z narzędzi do testowania niezawodności używanych do niezawodności oprogramowania to:
1. WEIBULL ++: - Analiza danych dotyczących niezawodności
2. RGA: - Analiza wzrostu niezawodności
3. RCM: -Konserwacja skoncentrowana na niezawodności
Podsumowanie:
Testowanie niezawodności jest ważną częścią programu inżynierii niezawodności. Mówiąc dokładniej, jest to dusza programu inżynierii niezawodności.
Ponadto testy niezawodności mają głównie na celu wykrycie określonych trybów awarii i innych problemów podczas testowania oprogramowania.
W inżynierii oprogramowania testowanie niezawodności można podzielić na trzy segmenty,
- Modelowanie
- Pomiary
- Poprawa
Czynniki wpływające na niezawodność oprogramowania
- Liczba usterek prezentowanych w oprogramowaniu
- Sposób, w jaki użytkownicy obsługują system