Inżynieria jakości a zapewnianie jakości

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Systemy, które traktują zapewnianie jakości jako coś, co należy robić dopiero na końcu cyklu produkcyjnego, stają się przestarzałe, ponieważ większość nowoczesnych systemów może obecnie zapewniać jakość produktu na każdym etapie procesu.

W obszarze produkcji, a w szczególności w tworzeniu oprogramowania, hybrydowe i zdalne zespoły QE odchodzą od zapewniania jakości (QA) na rzecz inżynierii jakości (QE). Jaka jest jednak różnica między tymi dwoma pojęciami i co napędza trendy w QE?

W tym artykule przyjrzę się metodykom, narzędziom i certyfikatom z zakresu inżynierii jakości dla osób rozważających karierę w tej dziedzinie. 

Czym jest inżynieria jakości?

Zdjęcie pracowników fabryki kontrolujących urządzenie
W inżynierii jakości każda osoba zaangażowana w rozwój produktu odpowiada za jego ogólną jakość.

Inżynieria jakości to stosunkowo nowa metoda zapewniania jakości produktów poprzez stosowanie rygorystycznych kontroli jakości na każdym etapie ich rozwoju. Model ten opiera się na założeniu, że każda osoba zaangażowana w tworzenie produktu odpowiada za jego jakość na etapie, na którym uczestniczy w pracach.

Jeśli ta perspektywa zostanie zastosowana na wszystkich etapach rozwoju produktu, zakłada się, że produkt końcowy będzie wysokiej jakości, ponieważ problemy można rozwiązywać w czasie rzeczywistym.

W modelu QE utrzymanie jakości nie kończy się wraz z ukończeniem produktu. Jest kontynuowane w ramach cyklu, a wszelkie informacje uzyskane na każdym etapie procesu rozwoju są wykorzystywane do udoskonalenia kolejnej iteracji.   

Inżynieria jakości koncentruje się na jakości produktu, a także kładzie nacisk na analizę procesów związanych z jego rozwojem w celu ograniczenia marnotrawstwa.

Marnotrawstwo ogranicza się poprzez minimalizowanie kosztów wynikających z defektów. Chodzi o to, że oczekiwanie z identyfikacją defektów aż do samego końca, tuż przed udostępnieniem produktu, jest kosztowne.    

QE w tworzeniu oprogramowania 

Zdjęcie projektanta oprogramowania pracującego z makietami na potrzeby tworzenia oprogramowania
Tworzenie oprogramowania często wykorzystuje programowanie sterowane testami jako część procesu inżynierii jakości.

W tworzeniu oprogramowania QE jest ściśle powiązane z metodyką programowania sterowanego testami (TDD).

U podstaw TDD leży założenie, że zanim programiści zaczną pisać kod aplikacji, tworzą test, który kod powinien przejść. Następnie uruchamiają test, który zakończy się niepowodzeniem, ponieważ kod aplikacji nie został jeszcze napisany. Po napisaniu kodu test zostanie uruchomiony ponownie, aby sprawdzić, czy kod go przechodzi. 

QE w kontekście tworzenia oprogramowania jest również powiązane z procesami DevOps i zwinnymi. DevOps łączy tworzenie oprogramowania i operacje IT, eliminując „silosy” (sytuację, w której działy nie dzielą się informacjami i celami) oraz sprawiając, że zespoły programistyczne i zespoły ds. bezpieczeństwa płynnie współpracują. Bezpieczeństwo zostaje wbudowane w każdy etap procesu rozwoju.

Procesy zwinne oznaczają zdolność do szybkiego i łatwego działania poprzez rozwiązywanie problemów w miarę ich pojawiania się w procesie rozwoju.

QE w tworzeniu oprogramowania ma kilka celów: 

  • Identyfikowanie problemów w momencie ich wystąpienia i rozwiązywanie ich poprzez działania korygujące.
  • Nadzór nad procesami i ich kontrola. 
  • Określanie wskaźników i standardów.
  • Gromadzenie i analizowanie danych. 
  • Opracowywanie odpowiednich testów.
  • Przeprowadzanie burz mózgów w celu znalezienia rozwiązań. 
  • Monitorowanie sytuacji, aby upewnić się, że problemy zostały rozwiązane.
Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Różnica między inżynierią jakości a zapewnianiem jakości

W tradycyjnym modelu zapewniania jakości zespół specjalistów ds. zapewniania jakości pojawia się po ukończeniu produktu, aby wykryć wszelkie jego wady, zanim trafi on do użytkowników.

Metoda ta jest ogólnie znana jako zapewnianie jakości. Jeśli produkt zawiera jakiekolwiek defekty, jest odsyłany do zespołu odpowiedzialnego za wadliwy element.

Analiza modelu zapewniania jakości pokazuje, że metoda ta ma kilka niedoskonałości. Na przykład zespoły ds. zapewniania jakości mogą czasami wykryć błędy, które wymagają przeprojektowania produktu. Aby to zrobić, potrzebne są dodatkowy czas i zasoby. Może to również skutkować opóźnieniami w dostarczeniu produktu użytkownikowi końcowemu.

Aby rozwiązać problemy związane z QA, wprowadzono nową metodę — QE. Jej założenie jest takie, że jeśli zespoły programistyczne znają wymagania, które powinien spełniać produkt końcowy, będą mogły świadomie testować produkt w trakcie jego tworzenia, dzięki czemu na końcu nie pojawią się przykre niespodzianki.

Mimo że QE i QA mają ten sam cel, którym jest zapewnienie wysokiej jakości produktów, istnieją między nimi pewne różnice: 

  • QA dąży do utrzymania jakości gotowego produktu, podczas gdy QE ustanawia system wymagań, które produkt powinien spełniać na różnych etapach.
  • QE wymaga, aby wszystkie zespoły zaangażowane w tworzenie produktu zwracały uwagę na jakość, podczas gdy QA zazwyczaj pozostawia to zespołowi ds. zapewniania jakości, który pojawia się, gdy produkt jest już ukończony.
  • QE postrzega jakość zarówno jako wysiłek odgórny, jak i oddolny, podczas gdy QA traktuje jakość jako wysiłek odgórny.
  • QE koncentruje się na posiadaniu odpowiednich narzędzi do testowania dla każdego etapu tworzenia, podczas gdy QA stosuje podejście „jedno rozwiązanie dla wszystkich”.
  • QE dąży do zachowania zwinności i elastyczności, podczas gdy QA patrzy na szerszy obraz.

Przejście z QA na QE można zdefiniować jako zmianę kulturową w zespołach programistycznych, ale jakie trendy napędzają tę zmianę? 

Międzynarodowa firma świadcząca profesjonalne usługi Accenture Plc., w raporcie zatytułowanym Inżynieria jakości w nowym, przedstawia trendy napędzające przejście z QA na QE. Według Accenture „tradycyjne podejścia do testowania oprogramowania zostały znacząco zakłócone wraz z nadejściem DevOps i inteligentnej automatyzacji, a także upowszechnieniem aplikacji cyfrowych”.  

W raporcie Accenture zauważono również, że „testowanie ewoluowało w kierunku inżynierii jakości, która rozpoczyna się już na wczesnym etapie, jako część początkowego planowania aplikacji, i ustanawia ciągłą pętlę informacji zwrotnych, aby przewidywać nieznane oraz reagować na nie”. Raporty sugerują, że nadszedł czas, aby oduczyć się większości tego, co wiemy.  

Zdaniem Nitina Mehry, dyrektora ds. inżynierii w amerykańskiej wyszukiwarce ofert pracy Indeed, wprowadzenie koncepcji takich jak zwinne tworzenie oprogramowania „postawiło model [zapewniania jakości] na głowie pod względem harmonogramów tworzenia oprogramowania i jego dostarczania”. Mehra zauważa, że „zmusiło to zespoły do dostosowania się do procesu, który zachęcał do mniejszych, liczniejszych wydań zamiast większych, rzadszych”, co znacząco wpłynęło na sposób przeprowadzania testów.

Na podstawie powyższych opinii staje się jasne, że wprowadzenie technologii takich jak sztuczna inteligencja (symulowanie ludzkiej inteligencji w maszynach) i automatyzacja (systemy działające przy minimalnej ingerencji człowieka) napędza przejście z QA na QE. Sztuczna inteligencja (AI) i automatyzacja umożliwiają gromadzenie informacji historycznych, które mogą pomóc zespołom szybciej identyfikować problemy lub wykrywać je, zanim wystąpią, a następnie je korygować.

Metodyki i narzędzia inżynierii jakości 

Jak w przypadku każdego nowego systemu, wdrożenie QE może być trudnym zadaniem, wymagającym czasu, zasobów i zaangażowania; dlatego kluczowe znaczenie ma posiadanie odpowiedniego narzędzia do konkretnego zadania. Zidentyfikowaliśmy kilka standardowych metodyk i narzędzi QE, które mogą pomóc zespołom programistycznym we wdrożeniu QE:

System zarządzania jakością (QMS)

Zdjęcie zestawu folderów z jednym folderem oznaczonym Standardy jakości ISO 9001
ISO 9000 to jeden z najpopularniejszych standardów zarządzania jakością.

Niezależnie od tego, czy analizujesz QE, czy QA, jakość produktu stanowi istotny element całego równania. Dlatego jednym z najważniejszych narzędzi, które powinny znaleźć się w zestawie każdej organizacji chcącej zarządzać jakością, jest system zarządzania jakością (QMS). QMS zapewnia sformalizowaną dokumentację i procesy służące osiąganiu jakości. Wskazuje również cele jakościowe oraz osoby odpowiedzialne za ich realizację. 

Jednym z najpopularniejszych standardów stosowanych w zarządzaniu jakością jest rodzina norm ISO 9000. Na przykład norma ISO 9001 jest opisywana przez Międzynarodową Organizację Normalizacyjną (ISO) jako określająca „kryteria dotyczące systemu zarządzania jakością i będąca jedyną normą w rodzinie, która może być certyfikowana”. Organizacja twierdzi, że z tej certyfikacji mogą korzystać organizacje dowolnej wielkości i z każdej branży. 

Zaawansowane planowanie jakości wyrobu 

Zaawansowane planowanie jakości wyrobu (APQP) to narzędzie usprawniające komunikację między zarządzaniem łańcuchem dostaw a klientami w celu ułatwienia i zarządzania zmianami w istniejących produktach i procesach. Dzięki tej komunikacji zespoły deweloperskie gromadzą informacje o wymaganiach klientów oraz o tym, w jaki sposób produkty mogą spełniać te wymagania.  

W kontekście QE APQP może pomóc zespołom deweloperskim określić, które elementy ich produktów działają prawidłowo, a które wymagają zmiany lub ulepszenia. Można go również wykorzystać do obniżenia kosztów poprzez usunięcie elementów, którymi użytkownicy nie są zainteresowani. 

Statystyczne sterowanie procesem

Statystyczne sterowanie procesem (SPC) zapewnia zespołom deweloperskim standardową dla branży metodykę kontroli i pomiaru jakości w procesie tworzenia lub produkcji. Metoda ta wykorzystuje dane dotyczące jakości uzyskane w procesie pomiaru produktu.

SPC określa tak zwane granice kontrolne i granice specyfikacji. Gdy proces przebiega zgodnie z założeniami, dane pozostają w granicach kontrolnych, natomiast dane mieszczące się w granicach specyfikacji wskazują, że potrzeby klienta są zaspokajane. Gdy dane wykraczają poza te granice, należy coś naprawić.

Narzędzia rozwiązywania problemów

W przypadku zespołów stosujących model QE narzędzia jakości odgrywają fundamentalną rolę w rozwiązywaniu problemów zidentyfikowanych na każdym etapie rozwoju. Kaoru Ishikawa, zmarły japoński teoretyk organizacji i profesor Wydziału Inżynierii Uniwersytetu Tokijskiego, przedstawił Klasyczne siedem narzędzi jakości w swojej książce Przewodnik po kontroli jakości, opublikowanej w 1991 roku. Obecnie wiele zaawansowanych programów do inżynierii jakości nadal korzysta z podstawowego modelu Ishikawy.   

Diagram przyczynowo-skutkowy: Służy do identyfikowania czynników odpowiedzialnych za dany wynik. Każdy powód niedoskonałości jest uznawany za źródło zmienności. Przyczyny są kategoryzowane w celu identyfikacji i sklasyfikowania tych źródeł zmienności.

Arkusz kontrolny: Jest to dokument, w którym dane są przechowywane w czasie rzeczywistym, zazwyczaj w miejscu ich gromadzenia.  

Karta kontrolna: Jest stosowana głównie wraz z kartą statystycznego sterowania procesem, nazywaną również kartą Shewharta. Zasadniczo monitoruje procesy, aby zapewnić, że pozostają pod kontrolą i nie ma potrzeby wprowadzania żadnych zmian. Zebrane dane można również wykorzystać do prognozowania przyszłego przebiegu procesu.

Histogram: Pomaga uporządkować dane w szeregu przedziałów w celu ich kategoryzacji, zapewniając ogólny obraz rozkładu danych. W rozwiązywaniu problemów może pomóc w określeniu obszarów wymagających większej uwagi. 

Wykres Pareto: Zawiera zarówno wykres liniowy, jak i słupki. Służy głównie do identyfikowania najważniejszych czynników w danym zbiorze. Jest zwykle wykorzystywany do kontroli jakości w celu wskazania głównych przyczyn usterek, skarg lub rekomendacji klientów bądź innych podobnych czynników. 

Wykres rozrzutu: Służy do porównywania dwóch zmiennych. Zasadniczo pokazuje, w jaki sposób zmienne są ze sobą powiązane i jak mogą na siebie wzajemnie wpływać.   

Próbkowanie warstwowe: Metoda doboru próby, którą można wykorzystać do podzielenia różnych segmentów populacji na grupy przed ich zbadaniem. W rozwiązywaniu problemów może zapewnić pełne uwzględnienie wszystkich elementów związanych z problemem.  

More Articles

Certyfikaty z zakresu inżynierii jakości

Jeśli QE brzmi jak kariera, która może Ci się spodobać, musisz wiedzieć kilka rzeczy o certyfikatach QE. Według Study.com, witryny dostarczającej informacji o programach edukacyjnych, „Certyfikowany inżynier jakości jest dostępny dla doświadczonych inżynierów, którzy chcą rozwijać swoją karierę”. Witryna dodaje: „Oprócz doświadczenia osoba ubiegająca się o certyfikat musi również doskonale rozumieć systemy jakości i matematykę, a także mieć motywację do poznania szczegółów inżynierii jakości”. 

Certyfikat inżyniera jakości jest przyznawany na podstawie wykształcenia i doświadczenia zawodowego. Zakres wiedzy certyfikowanego inżyniera jakości określa konkretne obszary wiedzy specjalistycznej, które trzeba potwierdzić przed uzyskaniem certyfikatu. Amerykańskie Towarzystwo Jakości (ASQ) przeprowadza egzaminy certyfikacyjne dla inżynierów jakości dwa razy w roku.  

Dołącz, aby uzyskać więcej informacji

Rozwijaj swoją firmę SaaS oraz umiejętności przywódcze. Zapisz się do naszego newslettera, aby otrzymywać najnowsze informacje dla dyrektorów ds. technologii i aspirujących liderów technologicznych. Pomożemy Ci rozwijać firmę w bardziej przemyślany sposób i skuteczniej przewodzić dzięki poradnikom, zasobom oraz strategiom przygotowanym przez czołowych ekspertów!

Jason Boog
Over his 15-year career, Jason Boog has worked as a QA tester, QA analyst, and Senior QA Analyst on video games, commercial sites, and interactive web applications. He spent more than a decade building out the QA team and process as Director of Quality & Client Support at a full-service digital agency.
Follow the author: