Co to jest Software Quality Assurance?

  • Software Quality Assurance (SQA) to zestaw działań mających na celu zapewnienie jakości opracowywanego oprogramowania. Badania wykazały, że 98% projektów ostatecznie zakończyło się niepowodzeniem na rynku z następujących powodów, takich jak szacowany czas, zmiana wymagań, wyższe koszty niż oczekiwano lub wysokie koszty utrzymania. Dlatego bardzo ważne jest, aby pamiętać o różnych parametrach przed opracowaniem oprogramowania, aby zminimalizować ryzyko awarii.
  • Aby zminimalizować ryzyko awarii oprogramowania na rynku, pojawiła się kontrola jakości oprogramowania.
  • Obejmuje zestaw działań, procesów, procedur i standardów, które są odpowiednie dla projektu. Obejmuje wszystkie standardy jakości oprogramowania od momentu zebrania wymagań do jego opracowania, wydania i utrzymania.
  • SQA działa równolegle z cyklem życia oprogramowania, który regularnie sprawdza, czy opracowywane oprogramowanie powinno spełniać swoje standardy na każdym etapie, aby uniknąć problemów na wczesnych etapach, zamiast zajmować się nim po zakończeniu projektu.
  • SQA obejmuje audyt, szkolenie, definicję procesu i wdrożenie jako główne działania. Po zdefiniowaniu procesu SQA zaczyna odnajdywać słabości i sposoby ich korygowania w celu uzyskania lepszego oprogramowania.

Działania związane z zapewnianiem jakości oprogramowania

Poniżej podano niektóre z działań zapewniania jakości oprogramowania.

1. Ustawienie punktu kontrolnego

Zespół SQA ustala punkty kontrolne po określonych odstępach czasu w celu sprawdzenia postępu, jakości, wydajności oprogramowania oraz tego, czy praca nad jakością oprogramowania jest wykonywana na czas zgodnie z harmonogramem i dokumentami.

2. Zmierz wpływ zmiany

W przypadku usterki zgłoszonej przez QA i naprawionej przez programistę bardzo ważne jest ponowne przetestowanie poprawki usterki i sprawdzenie, czy naprawiona wada nie wprowadza nowych wad w działającym oprogramowaniu. W tym celu kierownicy i programiści utrzymują i obserwują pomiary testowe w celu sprawdzenia nowo wygenerowanych defektów poprzez wprowadzenie nowej funkcjonalności lub naprawy wszelkich defektów.

3. Posiadanie strategii wielokrotnego testowania

Nie należy polegać na jednym podejściu i strategii testowania oprogramowania. W oprogramowaniu należy wdrożyć wiele strategii testowania, aby przetestować je pod różnymi kątami i objąć wszystkie obszary. W przypadku testów bezpieczeństwa witryny e-commerce, testowania wydajności, testowania obciążenia, testowania bazy danych, należy wszystko zrobić, aby zapewnić lepszą jakość oprogramowania.

4. Prowadzenie dokumentacji i raportów

Ważne jest, aby przechowywać wszystkie zapisy i dokumenty związane z kontrolą jakości i udostępniać je okresowo zainteresowanym stronom. Wykonane przypadki testowe, cykle testowe, zarejestrowane usterki, usunięte usterki, utworzone przypadki testowe, zmiana wymagań klienta dotyczących konkretnego przypadku testowego, wszystkie powinny być odpowiednio udokumentowane do wykorzystania w przyszłości.

5. Zarządzanie dobrymi relacjami

Zarządzanie dobrymi relacjami między testerami a programistami odgrywa ważną rolę w projekcie. Ponieważ rola programisty i testera stoi w sprzeczności, nie należy tego jednak traktować osobiście. Głównym celem obu zespołów powinno być dostarczanie dobrej jakości projektów przy minimalnym ryzyku niepowodzenia.

6. Plan zarządzania SQA

Obejmuje to znalezienie sposobu, w jaki SQA będzie działać w nowym projekcie w najbardziej efektywny sposób. Pomyśl o strategiach SQA, procesach inżynierii oprogramowania, które można wdrożyć zgodnie z wymaganiami projektu oraz o indywidualnych umiejętnościach członków zespołu.

Komponenty systemu SQA

Elementy SQA można podzielić na 6 klas:

1. Komponenty przedprojektowe

Zapewnia to, że zaangażowanie projektu zostało jasno określone w odniesieniu do szacowania czasu, wyjaśnienia wymagań klienta, całkowitego budżetu projektu, oceny ryzyka rozwoju, całkowitej liczby pracowników wymaganej dla tego konkretnego projektu. Zapewnia również, że plany rozwoju i plany jakości zostały jasno określone.

2. Elementy cyklu życia projektu oprogramowania

Ten komponent obejmuje przegląd, ekspertyzy, testowanie oprogramowania, komponenty do konserwacji oprogramowania. W cyklu życia projektu obejmuje komponenty, takie jak recenzje, ekspertyzy i znajdowanie defektów w projektowaniu i programowaniu oprogramowania, natomiast w cyklu życia oprogramowania obejmuje elementy konserwacyjne i komponenty cyklu życia oprogramowania w celu usprawnienia zadań konserwacyjnych.

3. Elementy infrastruktury do zapobiegania błędom i ulepszeń

Ten komponent obejmuje szkolenie personelu, certyfikację, zarządzanie konfiguracją, środki zapobiegawcze i naprawcze w celu zmniejszenia liczby błędów w oprogramowaniu opartym na zgromadzonym doświadczeniu SQA organizacji.

4. Elementy zarządzania SQA

Klasa ta obejmuje wskaźniki jakości oprogramowania, koszty jakości oprogramowania, które obejmują kontrolę działań związanych z utrzymaniem i rozwojem oraz wprowadzenie zaangażowania kierownictwa w celu zmniejszenia ryzyka jakości, harmonogramu i budżetu w projekcie.

5. Elementy standaryzacji, certyfikacji i oceny systemu SQA

Głównym celem tej klasy jest wykorzystanie profesjonalnej wiedzy międzynarodowej, która pomaga w koordynacji między różnymi systemami jakości organizacji na poziomie profesjonalnym.

6. Organizowanie dla SQA Human Components

Baza ta obejmuje menedżerów, testerów i innych praktyków SQA, którzy są zainteresowani SQA. Głównym celem jest wspieranie i inicjowanie działań SQA, wykrywanie luk / odchyleń w nich i sugerowanie usprawnień.

Standardy zapewniania jakości oprogramowania

W rozwój standardów SQA zaangażowanych jest kilka organizacji, krajowych i międzynarodowych instytutów. Poniżej wymienione są główne organizacje i instytuty zaangażowane w to:

  1. IEEE
  2. KROPKA
  3. ISO
  4. ANSI
  5. OOŚ
  6. IEC

Standardy SQA są zasadniczo podzielone na dwie kategorie:

1. Standard zapewniania jakości oprogramowania, znany jako standardy zarządzania jakością.

Przykład: ISO 9000-3, CMM (Capability Maturity Model).

Koncentrują się na infrastrukturze organizacji, systemie SQA, wymaganiach pozostawiając wybór narzędzi i metod testowania organizacji. Ich standardowym celem jest „co” osiągnąć. Zapewnia, że ​​organizacje osiągają akceptowalną jakość oprogramowania.

2. Standardy procesu opracowywania oprogramowania, które są znane jako standardy procesu projektowania.

Przykład: ISO / IEC 12207 IEEEStd 1012-1998.

Koncentrują się na metodologiach, które należy wdrożyć podczas opracowywania i konserwacji oprogramowania. Koncentruje się na „jak” wykonać. Obejmuje wymagania dotyczące dokumentacji projektowej, kroki, które należy podjąć, testy oprogramowania do wykonania oraz problemy z przeglądem i przeglądem projektu.

Techniki SQA

Istnieje kilka technik SQA. Niektóre z nich są wymienione poniżej:

1. Recenzowanie

Podczas recenzji spotkanie jest prowadzone zarówno przez interesariuszy wewnętrznych, jak i zewnętrznych w celu przeglądu całego projektu, który analizuje całe oprogramowanie, a jeśli znajdzie problem, rozróżnia, czy chodzi o testowanie, rozwój, wymaganie czy projekt. Głównym celem jest pomiar jakości oprogramowanie i upewnij się, czy spełnia ono oczekiwania klienta, czy nie.

2. Audyt

W przypadku kontroli cały produkt pracy i wszystkie dane są sprawdzane przez interesariuszy, aby sprawdzić, czy postępuje zgodnie ze standardowymi procesami, czy nie.

3. Testy funkcjonalne

Podczas testów funkcjonalnych sprawdza się funkcjonalność całego oprogramowania, niezależnie od tego, czy działa ono zgodnie z oczekiwaniami. Sprawdza „co system działa”, nie wiedząc „jak system działa”. To jest jak testowanie czarnej skrzynki aplikacji, w której użytkownik zna oczekiwany wynik, nie wiedząc, w jaki sposób jest on wytwarzany.

4. Standaryzacja

Zapewnia to, że wszystko w oprogramowaniu powinno być znormalizowane, tzn. Spełnia wszystkie standardy albo standardy w dokumentacji, rozwoju, kontroli jakości. Zmniejsza to niejednoznaczność, a tym samym poprawia jakość oprogramowania.

5. Kontrola kodu

Kontrola kodu jest jednym z najbardziej formalnych rodzajów przeglądu, którego głównym celem jest wykrywanie błędów w kodzie i podkreślanie wszelkich problemów podczas kontroli kodu, prowadzonych przez przeszkolonego moderatora, a nie autora kodu. Spotkanie ma odpowiednie kryteria wejścia i wyjścia. Użytkownicy muszą mieć pełne przygotowanie przed spotkaniem, aby mieć pełną wiedzę na temat dokumentów i wszystkich przed podniesieniem swoich punktów.

6. Wskazówki

Przewodnik po oprogramowaniu jest rodzajem nieformalnego procesu i zwykle inicjowany jest przez autora w celu odczytania dokumentu lub kodu, a członkowie równorzędni zapisują w nim swoje sugestie lub błędy i przesyłają je. Nie jest to formalnie udokumentowane jak inspekcja, a moderator nie jest konieczny na spotkaniu. Jego głównym celem jest poznanie statusu kodu ukończonego do daty i zebranie sugestii od innych użytkowników w celu uzyskania lepszej jakości oprogramowania.

7. Testy warunków skrajnych

Przeprowadzane są testy warunków skrajnych w celu sprawdzenia, jak system działa pod dużym obciążeniem. Testy te odgrywają ważną rolę w jakości oprogramowania, ponieważ w aplikacjach e-commerce testy obciążenia i obciążenia są przeprowadzane prawidłowo w celu przetestowania wydajności oprogramowania (ile maksymalnej liczby użytkowników może uzyskać dostęp do aplikacji na raz).

8. Kontrola projektu

Kontrola projektu jest przeprowadzana w celu sprawdzenia różnych obszarów oprogramowania przy użyciu listy kontrolnej, takiej jak projektowanie funkcjonalne i interfejsowe, konwencje, wymagania ogólne i projektowanie, identyfikacja wymagań, logika, sprzężenie i spójność.

Zalety SQA

Omówmy zalety SQA.

1. Zwiększa zaufanie klienta

Właściwa kontrola jakości na różnych poziomach oprogramowania, takich jak przegląd, kontrola, audyt itp. Oraz przy zaangażowaniu interesariuszy wewnętrznych i zewnętrznych, zwiększa zaufanie klientów do składania cotygodniowych raportów o wadach i wskaźnikach wymagań, również bardzo pomaga w zapewnieniu klient, że praca jest wykonywana na czas.

2. SQA oszczędza pieniądze

Wady wykryte na wczesnym etapie albo przy zbieraniu wymagań, kodowaniu, testowaniu są łatwe i opłacalne. Właściwa kontrola jakości przeprowadzona na kilku poziomach pomaga zmniejszyć ryzyko, ponieważ maksymalne usterki zostały odkryte i usunięte na wczesnych etapach, a tym samym oszczędza pieniądze na naprawę wadliwe oprogramowanie po przedstawieniu klientowi, które może kosztować reputację firmy, użytkowników i klientów.

3. Zwiększ satysfakcję klienta

Terminowe zaangażowanie klienta w tworzenie i testowanie oprogramowania zwiększa satysfakcję klienta z tego, że oprogramowanie wysokiej jakości jest opracowywane i zgodnie z wymaganiami oraz uwzględnianie sugestii pomiędzy nimi zwiększa satysfakcję klienta.

4. Promuje produktywność i wydajność

Gdy programowanie i testowanie odbywa się równolegle, defekty wykryte wcześnie tuż po opracowaniu pojedynczego modułu są wykonywane i naprawiane przez programistów w odpowiednim czasie, co pozwala wszystkim pracować w spokoju i bardziej produktywny sposób, zamiast obciążać się wieloma błędami naraz po zakończeniu całego oprogramowania.

5. Zapobiega nieprzewidzianym sytuacjom awaryjnym

Przy tworzeniu oprogramowania korporacyjnego stawki są również bardzo wysokie. Ponieważ oprogramowanie obsługuje wiele poufnych danych klienta, musi działać zgodnie z oczekiwaniami, bez żadnych przerw w dostawie energii, uszkodzeń ani zakłóceń komunikacji. Oprogramowanie należy przetestować bardzo rygorystycznie, aby działało zgodnie z oczekiwaniami.

6. Redukuje konflikty czasu zakończenia klienta

Istnieje wiele przypadków późniejszego braku zgody klienta i organizacji na zmianę wymagań, czasu i budżetu ustaloną na początku, co skutkuje anulowaniem projektu, utratą pieniędzy i złym wrażeniem firmy na rynku (utrata klienta jako stworzyłoby to złą reputację). W SQA wszystko jest ustalone na początku projektu i odpowiednio udokumentowane bez żadnych dwuznaczności, aby nie powstały żadne konflikty

Wady SQA

Omówmy wady SQA.

1. Czasami trudne do wdrożenia

Ponieważ SQA definiuje wszystkie działania i działania, które należy podjąć na każdym etapie tworzenia oprogramowania, w bardzo szczegółowy sposób, czasami trudno jest wdrożyć każde pojedyncze działanie i proces w fazie rozwoju. Osoba wie więc, że byłoby to korzystne, ale szczegółowa koncentracja na każdym kroku staje się trudna podczas pracy w dużych zespołach.

2. Czasochłonne

Wdrażanie każdego działania w SQA jest bardzo czasochłonne, a czasem marnuje więcej czasu na dokumentację i spotkania niż na faktyczne opracowywanie i testowanie oprogramowania.

3. Wysoki koszt

Dzięki wdrożeniu SQA koszt naprawy błędów na późniejszych etapach można zmniejszyć, znajdując je i naprawiając tylko na początku, ale w przypadku małych projektów o niskim budżecie bardzo trudno jest wdrożyć SQA, ponieważ liczba zasobów rośnie w projekt tak samo jak budżet projektu. W przypadku małych projektów zatrudnienie całego zespołu kontroli jakości i wdrożenie SQA powoduje drastyczny wzrost kosztów projektu.

Wniosek

SQA to działalność parasolowa obejmująca cały projekt w całym cyklu życia oprogramowania, od gromadzenia wymagań do utrzymania projektu. Obejmuje wszystkie działania i procesy na różnych etapach tworzenia oprogramowania, aby zapewnić, że dostarczane oprogramowanie powinno charakteryzować się wysoką jakością i minimalnym ryzykiem, aby mogło odnieść sukces na rynku i spełniać oczekiwania klientów.

Polecane artykuły

To jest przewodnik po Software Quality Assurance. Tutaj omawiamy działania, komponenty, zalety i wady SQA. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Zasady testowania oprogramowania
  2. Cykl życia testowania oprogramowania
  3. Zwinne oprogramowanie
  4. Zapewnienie jakości a kontrola jakości
  5. Techniki testowania czarnej skrzynki