what is software quality assurance
Co to jest gwarancja jakości oprogramowania?
Zapewnienie jakości oprogramowania (SQA) to proces, który zapewnia, że wszystkie procesy, metody, czynności i elementy pracy inżynierii oprogramowania są monitorowane i zgodne z określonymi standardami. Te zdefiniowane standardy mogą być jednym lub połączeniem dowolnego, takiego jak ISO 9000, model CMMI, ISO15504 itp.
SQA obejmuje wszystkie procesy tworzenia oprogramowania, począwszy od zdefiniowania wymagań, poprzez kodowanie, aż do wydania. Jej głównym celem jest zapewnienie jakości.
Czego się nauczysz:
- Plan zapewnienia jakości oprogramowania
- Działania SQA
- Standardy zapewniania jakości oprogramowania
- Elementy zapewnienia jakości oprogramowania
- Techniki SQA
- Wniosek
- rekomendowane lektury
Plan zapewnienia jakości oprogramowania
Plan zapewnienia jakości oprogramowania, w skrócie SQAP, obejmuje procedury, techniki i narzędzia, które są stosowane w celu zapewnienia zgodności produktu lub usługi z wymaganiami określonymi w SRS (specyfikacja wymagań oprogramowania).
Plan określa obowiązki zespołu w zakresie SQA, wymienia obszary, które wymagają przeglądu i audytu. Identyfikuje również produkty pracy SQA.
Dokument planu SQA składa się z poniższych sekcji:
- Część dotycząca celu
- Punkt odniesienia
- Sekcja zarządzania konfiguracją oprogramowania
- Sekcja dotycząca zgłaszania problemów i działań naprawczych
- Sekcja narzędzi, technologii i metodologii
- Sekcja kontroli kodu
- Dokumentacja: sekcja gromadzenia, konserwacji i przechowywania
- Metodyka badań
Działania SQA
Poniżej znajduje się lista działań SQA:
# 1) Tworzenie planu zarządzania SQA:
Najważniejsze działanie obejmuje ustalenie odpowiedniego planu dotyczącego sposobu przeprowadzenia SQA w Twoim projekcie.
Oprócz tego, jakie podejście SQA będziesz stosować, jakie działania inżynieryjne będą wykonywane, a także obejmuje zapewnienie odpowiedniego zestawu talentów w zespole.
# 2) Ustawianie punktów kontrolnych:
Zespół SQA wyznacza różne punkty kontrolne, według których ocenia jakość działań projektowych na każdym punkcie kontrolnym / etapie projektu. Zapewnia to regularną kontrolę jakości i pracę zgodnie z harmonogramem.
# 3) Zastosuj techniki inżynierii oprogramowania:
Zastosowanie pewnych technik inżynierii oprogramowania pomaga projektantowi oprogramowania w uzyskaniu specyfikacji wysokiej jakości. Do zbierania informacji projektant może wykorzystać takie techniki, jak wywiady i FAST (technika funkcjonalnego systemu analizy).
Później, na podstawie zebranych informacji, projektant oprogramowania może przygotować oszacowanie projektu przy użyciu technik takich jak WBS (struktura podziału pracy), SLOC (linia kodów źródłowych) i oszacowanie FP (punkt funkcjonalny).
# 4) Wykonywanie formalnych przeglądów technicznych:
FTR jest wykonywany w celu oceny jakości i projektu prototypu.
W tym procesie odbywa się spotkanie z personelem technicznym w celu omówienia rzeczywistych wymagań jakościowych oprogramowania i jakości projektu prototypu. To ćwiczenie pomaga w wykrywaniu błędów we wczesnej fazie SDLC i zmniejsza nakłady na przeróbki w późniejszych fazach.
5) Posiadanie strategii testowania wielokrotnego:
Przez strategię wielotestową rozumiemy, że nie należy polegać na jednym podejściu do testowania, zamiast tego należy przeprowadzić wiele rodzajów testów, aby oprogramowanie można było dobrze przetestować pod każdym kątem, aby zapewnić lepszą jakość.
# 6) Egzekwowanie przestrzegania procesu:
To działanie kładzie nacisk na potrzebę przestrzegania procesu podczas procesu tworzenia oprogramowania. Proces rozwoju powinien również trzymać się określonych procedur.
Ta aktywność jest połączeniem dwóch poddziałań, które szczegółowo wyjaśniono poniżej:
(i) Ocena produktu:
To działanie potwierdza, że oprogramowanie spełnia wymagania, które zostały wykryte w planie zarządzania projektem. Zapewnia prawidłowe przestrzeganie standardów wyznaczonych dla projektu.
(ii) Monitorowanie procesu:
Ta aktywność sprawdza, czy podczas tworzenia oprogramowania podjęto właściwe kroki. Odbywa się to poprzez porównanie faktycznie podjętych kroków z udokumentowanymi krokami.
# 7) Kontrolowanie zmian:
W tym ćwiczeniu używamy kombinacji ręcznych procedur i zautomatyzowanych narzędzi, aby mieć mechanizm kontroli zmian.
Walidacja żądań zmian, ocena charakteru zmiany i kontrolowanie wpływu zmiany zapewnia utrzymanie jakości oprogramowania na etapie rozwoju i utrzymania.
# 8) Zmierz wpływ zmiany:
Jeśli jakikolwiek defekt zostanie zgłoszony przez zespół ds. Zapewnienia jakości, zespół ten naprawia usterkę.
Następnie zespół ds. Kontroli jakości powinien określić wpływ zmiany wprowadzonej przez naprawę usterki. Muszą sprawdzić nie tylko, czy zmiana usunęła usterkę, ale także czy zmiana jest zgodna z całym projektem.
W tym celu wykorzystujemy mierniki jakości oprogramowania, które pozwalają menadżerom i programistom obserwować działania i proponowane zmiany od początku do końca SDLC oraz inicjować działania korygujące tam, gdzie jest to wymagane.
# 9) Przeprowadzanie audytów SQA:
Audyt SQA sprawdza cały rzeczywisty proces SDLC, a następnie porównuje go z ustalonym procesem.
Sprawdza również, co zgłoszone przez zespół w raportach o stanie zostało faktycznie wykonane, czy nie. Ta aktywność ujawnia również wszelkie problemy z niezgodnością.
# 10) Prowadzenie dokumentacji i raportów:
Bardzo ważne jest, aby zachować niezbędną dokumentację dotyczącą SQA i udostępniać wymagane informacje SQA interesariuszom. Wyniki testów, wyniki audytu, raporty z przeglądu, dokumentacja wniosków o zmianę itp. Należy zachować do wykorzystania w przyszłości.
java j2ee pytania do wywiadów i odpowiedzi dla doświadczonych
# 11) Zarządzaj dobrymi relacjami:
W rzeczywistości bardzo ważne jest, aby zachować harmonię między działem kontroli jakości a zespołem programistów.
Często słyszymy, że testerzy i programiści często czują się lepsi od siebie. Należy tego unikać, ponieważ może to wpłynąć na ogólną jakość projektu.
Standardy zapewniania jakości oprogramowania
Ogólnie rzecz biorąc, SQA może wymagać zgodności z jednym lub większą liczbą standardów.
Poniżej omówiono niektóre z najpopularniejszych standardów:
ISO 9000: Norma ta opiera się na siedmiu zasadach zarządzania jakością, które pomagają organizacjom zapewnić, że ich produkty lub usługi są dostosowane do potrzeb klientów ”.
Poniższy rysunek przedstawia 7 zasad ISO 9000:
Poziom CMMI: CMMI oznacza Integracja modelu dojrzałości zdolności . Ten model powstał w inżynierii oprogramowania. Może być stosowany do kierowania doskonaleniem procesów w całym projekcie, dziale lub całej organizacji.
5 poziomów CMMI i ich właściwości opisano na poniższym obrazku:
Organizacja jest oceniana i przyznawana na poziomie dojrzałości (1-5) na podstawie rodzaju oceny.
Integracja testowego modelu dojrzałości (TMMi): Oparty na CMMi model ten koncentruje się na poziomach dojrzałości w zarządzaniu jakością oprogramowania i testowaniu.
Na poniższym obrazku przedstawiono 5 poziomów TMMi:
Gdy organizacja osiąga wyższy poziom dojrzałości, osiąga wyższą zdolność do wytwarzania produktów wysokiej jakości z mniejszą liczbą defektów i ściśle spełnia wymagania biznesowe.
Elementy zapewnienia jakości oprogramowania
Istnieje 10 podstawowych elementów SQA, które są wymienione poniżej w celach informacyjnych:
- Standardy inżynierii oprogramowania
- Przeglądy i audyty techniczne
- Testowanie oprogramowania do kontroli jakości
- Gromadzenie i analiza błędów
- Zarządzanie zmianami
- Programy edukacyjne
- Zarządzanie dostawcami
- Zarządzanie bezpieczeństwem
- Bezpieczeństwo
- Zarządzanie ryzykiem
Techniki SQA
Istnieje kilka technik SQA. Audyt to główna technika, która jest powszechnie stosowana. Jednak mamy też kilka innych znaczących technik.
Różne techniki SQA obejmują:
- Audyt: Audyt obejmuje inspekcję produktów pracy i związanych z nimi informacji w celu ustalenia, czy zestaw standardowych procesów był przestrzegany, czy nie.
- Przeglądanie : Spotkanie, podczas którego oprogramowanie jest badane zarówno przez wewnętrznych, jak i zewnętrznych interesariuszy w celu uzyskania ich komentarzy i zatwierdzenia.
- Inspekcja kodu: Jest to najbardziej formalny rodzaj przeglądu, który przeprowadza testy statyczne w celu znalezienia błędów i uniknięcia wzrostu defektów na późniejszych etapach. Odbywa się to przez przeszkolonego mediatora / rówieśnika i opiera się na zasadach, liście kontrolnej, kryteriach wejścia i wyjścia. Recenzent nie powinien być autorem kodu.
- Inspekcja projektu: Inspekcja projektu odbywa się za pomocą listy kontrolnej, która sprawdza poniższe obszary projektowania oprogramowania:
- Ogólne wymagania i projekt
- Specyfikacje funkcjonalne i interfejsowe
- Konwencje
- Identyfikowalność wymagań
- Struktury i interfejsy
- Logika
- Wydajność
- Obsługa i odzyskiwanie błędów
- Testowalność, rozszerzalność
- Sprzężenie i spójność
- Symulacja: Symulacja to narzędzie, które modeluje rzeczywistą sytuację w celu wirtualnego zbadania zachowania badanego systemu.
- Testy funkcjonalności: Jest to technika zapewniania jakości, która weryfikuje działanie systemu bez zastanawiania się, jak to robi. Ten typ testowanie czarnoskrzynkowe koncentruje się głównie na testowaniu specyfikacji lub funkcji systemu.
- Normalizacja: Normalizacja odgrywa kluczową rolę w zapewnianiu jakości. Zmniejsza niejednoznaczność i domysły, zapewniając w ten sposób jakość.
- Analiza statyczna: Jest to analiza oprogramowania wykonywana przez zautomatyzowane narzędzie bez faktycznego wykonywania programu. Technika ta jest szeroko stosowana do zapewniania jakości oprogramowania medycznego, jądrowego i lotniczego. Metryki oprogramowania i inżynieria odwrotna to popularne formy analizy statycznej.
- Solucje: Przewodnik po oprogramowaniu lub przewodnik po kodzie to rodzaj wzajemnej oceny, w której programista prowadzi członków zespołu programistów, aby przejść przez produkt i zadawać pytania, sugerować alternatywy, komentować możliwe błędy, naruszenia standardów lub inne problemy.
- Testowanie ścieżki: To jest technika testowania białoskrzynkowego gdzie pełne pokrycie oddziału jest zapewnione poprzez wykonanie każdej niezależnej ścieżki przynajmniej raz.
- Test naprężeń: Ten rodzaj testów ma na celu sprawdzenie, jak wytrzymały jest system, testując go pod dużym obciążeniem, tj. Poza normalnymi warunkami.
- Six Sigma: Six Sigma to podejście do zapewniania jakości, które ma na celu uzyskanie niemal doskonałych produktów lub usług. Jest szeroko stosowany w wielu dziedzinach, w tym w oprogramowaniu. Głównym celem six sigma jest usprawnienie procesu, tak aby produkowane oprogramowanie było w 99,76% wolne od defektów.
Wniosek
SQA to działalność parasolowa, stosowana przez cały cykl życia oprogramowania.
Zapewnienie jakości oprogramowania jest bardzo ważne, aby oprogramowanie lub usługa odniosły sukces na rynku i sprostały oczekiwaniom klienta.
Istnieje wiele działań, standardów i technik, których należy przestrzegać, aby mieć pewność, że dostarczane oprogramowanie jest wysokiej jakości i ściśle odpowiada potrzebom biznesowym.
Mam nadzieję, że z tego artykułu informacyjnego miałbyś jasny pomysł na koncepcję kontroli jakości oprogramowania!
rekomendowane lektury
- Testowanie oprogramowania i certyfikaty zapewniania jakości - część 2
- Jakie są atrybuty jakości?
- Fałszywy Bóg jakości kontra prawdziwi ludzie - kto odpowiada za jakość oprogramowania?
- Różnica między zapewnianiem jakości a kontrolą jakości (QA vs QC)
- Doskonały przewodnik po testowaniu oprogramowania (z próbką wznowienia testera oprogramowania)
- Jak używać techniki Poka-Yoke (sprawdzania błędów) w celu poprawy jakości oprogramowania
- Wzajemne zrozumienie w testowaniu: klucz do dostarczania wysokiej jakości oprogramowania
- Asystent testowania oprogramowania