Co to jest testowanie niezawodności? (Przykład)
Co to jest testowanie niezawodności?
Testowanie niezawodności jest procesem testowania oprogramowania, który sprawdza, czy oprogramowanie może wykonywać bezawaryjne działanie w określonym środowisku przez określony czas. Celem testowania niezawodności jest zapewnienie, że produkt oprogramowania jest wolny od błędów i wystarczająco niezawodny do oczekiwanego celu.
Niezawodność oznacza „dawanie takich samych wyników”, innymi słowy słowo „niezawodność” oznacza, że coś jest niezawodne i daje za każdym razem ten sam wynik. To samo dotyczy testów niezawodności.
Przykład testowania niezawodności
Prawdopodobieństwo, że komputer w sklepie będzie działał przez osiem godzin bez awarii, wynosi 99%. Nazywa się to niezawodnością.
Testowanie niezawodności można podzielić na trzy segmenty:
- Modelowanie
- Pomiary
- Poprawa
Poniższy wzór służy do obliczenia prawdopodobieństwa awarii.
Probability = Number of failing cases/ Total number of cases under consideration
Czynniki wpływające na niezawodność oprogramowania
- Liczba błędów występujących w oprogramowaniu
- Sposób, w jaki użytkownicy obsługują system
Testowanie niezawodności jest jednym z kluczy do lepszej jakości oprogramowania. Testowanie to pomaga odkryć wiele problemów w projektowaniu i funkcjonalności oprogramowania.
Głównym celem testów niezawodności jest sprawdzenie, czy oprogramowanie spełnia wymagania niezawodności klienta.
Testowanie niezawodności będzie przeprowadzane na kilku poziomach. Złożone systemy będą testowane na poziomie jednostki, zespołu, podsystemu i systemu.
Dlaczego warto testować niezawodność?
Testowanie niezawodności ma na celu sprawdzenie wydajności oprogramowania w danych warunkach.
Celem przeprowadzania testów niezawodności jest:
- Znalezienie struktury powtarzających się awarii.
- Aby znaleźć liczbę występujących awarii, wystarczy określony czas.
- Aby odkryć główną przyczynę niepowodzenia.
- Przewodzić Test wydajności różnych modułów aplikacji po naprawieniu usterki.
Również po wydaniu produktu możemy zminimalizować możliwość wystąpienia defektów, a tym samym poprawić niezawodność oprogramowania. Niektóre z narzędzi przydatnych do tego to: Analiza trendów, Ortogonalna Wada Klasyfikacja i metody formalne itp.
Rodzaje badań niezawodności
Testowanie niezawodności oprogramowania obejmuje testowanie funkcji, Testowanie obciążenia, Testy regresji
Testowanie funkcji: -
Testowanie wyróżnione polega na sprawdzeniu funkcji udostępnianych przez oprogramowanie i przebiega 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 jej prawidłowego wykonania.
Testowanie obciążenia: -
Zwykle oprogramowanie będzie działać lepiej na początku procesu, a następnie zacznie się pogarszać. Testy obciążeniowe przeprowadzane są w celu sprawdzenia wydajności oprogramowania przy maksymalnym obciążeniu.
Test regresji: -
Testy regresyjne służą głównie do sprawdzenia, czy w wyniku naprawienia poprzednich błędów nie pojawiły się nowe błędy. Testy regresyjne przeprowadzane są po każdej zmianie lub aktualizacji funkcji oprogramowania i ich funkcjonalności.
Jak przeprowadzić test niezawodności
Testowanie niezawodności jest kosztowne w porównaniu do innych rodzajów testów. Dlatego podczas testowania niezawodności wymagane jest właściwe planowanie i zarządzanie. Obejmuje to proces testowania, który ma zostać wdrożony, dane dla środowiska testowego, harmonogram testów, punkty testowe itp.
Aby rozpocząć testowanie niezawodności, tester musi stale śledzić pewne rzeczy,
- Ustal cele w zakresie niezawodności
- Opracowanie profilu operacyjnego
- Planuj i wykonuj testy
- Wykorzystaj wyniki testów do podejmowania decyzji
Jak wspomnieliśmy wcześniej, istnieją trzy kategorie, w których możemy przeprowadzać testy niezawodności: Modelowanie, pomiary i doskonalenie.
Kluczowe parametry biorące udział w testowaniu niezawodności to: -
- Prawdopodobieństwo bezawaryjnej pracy
- Czas bezawaryjnej pracy
- Środowisko, w którym jest wykonywane
Krok 1) Modelowanie
Technikę modelowania oprogramowania można podzielić na dwie podkategorie:
1. Modelowanie prognostyczne
2. Modelowanie estymacyjne
- Znaczące wyniki można uzyskać stosując odpowiednie modele.
- Aby uprościć problemy, można przyjąć założenia i abstrakcje, a żaden pojedynczy model nie będzie odpowiedni dla wszystkich sytuacji. Główne różnice między tymi dwoma modelami to: -
pytania | Modele prognostyczne | Modele estymacyjne |
---|---|---|
Odniesienie do danych | Wykorzystuje dane historyczne | Wykorzystuje aktualne dane z rozwoju oprogramowania. |
Używane w cyklu rozwoju | Zwykle zostanie utworzony przed fazą rozwoju lub testowania. | Zazwyczaj będzie on używany na późniejszym etapie cyklu życia oprogramowania. |
Rama czasowa | 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 też w celu oszacowania niezawodności oprogramowania bierze się pod uwagę inne powiązane czynniki. Obecne praktyki pomiaru niezawodności oprogramowania dzielą się na cztery kategorie:
Pomiar 1: Metryki produktu
Metryki produktu to kombinacja 4 typów metryk:
- Rozmiar oprogramowania: – Linia kodu (LOC) to intuicyjna, wstępna metoda pomiaru rozmiaru oprogramowania. W tej metryce liczony jest tylko kod źródłowy, a komentarze i inne niewykonywalne instrukcje nie będą liczone.
- Punkt funkcyjny Metryczny:- Funkcja Pont Metric to metoda pomiaru funkcjonalności tworzenia oprogramowania. Uwzględni 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ązany z niezawodnością oprogramowania, więc przedstawienie złożoności jest ważne. Metryka zorientowana na złożoność określa złożoność struktury sterowania programu poprzez uproszczenie kodu do graficznej reprezentacji.
- Metryki pokrycia testów:- Jest to sposób oszacowania usterek i niezawodności poprzez wykonanie testów oprogramowania. Niezawodność oprogramowania oznacza, że jest to funkcja określająca, czy system został całkowicie zweryfikowany i przetestowany.
Pomiar 2: Wskaźniki zarządzania projektem
- Naukowcy zdali sobie sprawę, że dobre zarządzanie może skutkować lepszymi produktami.
- Dobre zarządzanie może osiągnąć wyższą niezawodność dzięki lepszemu rozwojowi, zarządzaniu ryzykiem i procesom zarządzania konfiguracją.
Pomiar 3: Metryki procesu
Jakość produktu jest bezpośrednio powiązana z procesem. Metryki procesów można wykorzystać do szacowania, monitorowania i poprawy niezawodności i jakości oprogramowania.
Pomiar 4: Metryki usterek i awarii
Metryki błędów i awarii służą głównie do sprawdzania, czy system jest całkowicie wolny od awarii. Zarówno typy błędów znalezione podczas procesu testowania (tj. przed dostawą), jak i awarie zgłoszone przez użytkowników po dostawie są zbierane, podsumowywane i analizowane w celu osiągnięcia tego celu.
Niezawodność oprogramowania mierzy się w kategoriach średni czas między awariami (MTBF). MTBF składa się z
- Średnia do awarii (MTTF): Jest to różnica czasu między dwiema kolejnymi awariami.
- Średni czas naprawy (MTTR): Jest to czas wymagany do usunięcia awarii.
MTBF = MTTF + MTTR
Niezawodność dobrego oprogramowania to liczba pomiędzy 0 i 1.
Niezawodność wzrasta, gdy błędy lub błędy z programu zostaną usunięte.
Krok 3) Poprawa
Poprawa całkowicie zależy od problemów, które wystąpiły w aplikacji lub systemie, lub też od cech oprogramowania. W zależności od złożoności modułu oprogramowania, sposób poprawy również będzie się różnić. Dwa główne ograniczenia, czas i budżet, ograniczą wysiłki włożone w poprawę niezawodności oprogramowania.
Przykładowe metody badania niezawodności
Testowanie niezawodności polega na przetestowaniu aplikacji w celu wykrycia i usunięcia awarii przed wdrożeniem systemu.
Do testowania niezawodności stosowane są głównie trzy podejścia
- Niezawodność testu-ponownego testu
- Niezawodność form równoległych
- Spójność decyzji
Poniżej próbowaliśmy to wszystko wyjaśnić na przykładzie.
Niezawodność testu-ponownego testu
Aby oszacować wiarygodność testu-powtórnika, pojedyncza grupa zdających przeprowadzi proces testowania 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ącego w danym obszarze. Zależność pomiędzy wynikami zdającego z dwóch różnych administracji jest szacowana poprzez korelację statystyczną. Ten rodzaj wiarygodności pokazuje, w jakim stopniu test jest w stanie uzyskać stabilne, spójne wyniki w czasie.
Niezawodność form równoległych
Wiele egzaminów ma wiele formatów arkuszy egzaminacyjnych, te równoległe formy egzaminu zapewniają bezpieczeństwo. Niezawodność równoległych form jest szacowana poprzez przeprowadzanie obu form egzaminu dla tej samej grupy zdających. Wyniki zdających w obu formach testu są korelowane w celu określenia, jak podobne są te dwie formy testu. Ta ocena niezawodności jest miarą tego, jak spójnych wyników zdających można oczekiwać w różnych formach testu.
Spójność decyzji
Po wykonaniu testu-ponownego testu niezawodności i niezawodności w formie równoległej otrzymamy wynik, czy zdający zaliczyli, czy nie. Wiarygodność tej decyzji klasyfikacyjnej szacuje się na podstawie wiarygodności spójności decyzji.
Znaczenie testowania niezawodności
Aby poprawić wydajność produktów i procesów oprogramowania, 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 testowanie: -
- Należy wykonać dużą liczbę przypadków testowych przez dłuższy czas, aby określić, jak długo oprogramowanie będzie działać bezawaryjnie.
- Dystrybucja przypadków testowych powinna odpowiadać rzeczywistemu lub planowanemu profilowi operacyjnemu oprogramowania. Im częściej funkcja oprogramowania jest wykonywana, tym większy procent przypadków testowych powinien zostać przydzielony do tej funkcji lub podzbioru.
Narzędzia do testowania niezawodności
Niektóre z Narzędzia do testowania niezawodności stosowane w odniesieniu do niezawodności oprogramowania to:
1. WEIBULL++: - Niezawodność Trwałość Analiza danych
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ą na celu głównie wykrycie określonych trybów awarii i innych problemów podczas testowania oprogramowania.
In Inżynieria oprogramowaniaTestowanie niezawodności można podzielić na trzy segmenty,
- Modelowanie
- Pomiary
- Poprawa
Czynniki wpływające na niezawodność oprogramowania
- Liczba błędów występujących w oprogramowaniu
- Sposób, w jaki użytkownicy obsługują system