QA w DreamHost

by Guest Author
QA w DreamHost thumbnail

Nie chcę się przechwalać, ale mam jedną z najfajniejszych prac na świecie. Jestem inżynierem QA w DreamHost, ale co to właściwie oznacza? Nadal od czasu do czasu dostaję pytania na ten temat i łatwo zapomnieć, że cały świat nie zna się na rozwoju oprogramowania oraz rolach, jakie odgrywają różne grupy, więc cofnę się o krok i trochę wyjaśnię, jak to wszystko tutaj funkcjonuje.

Co dokładnie mówiłbyś, że tutaj robisz?

Office-Space-homies4-1024x576

QA oznacza “Zapewnienie Jakości”. Może oznaczać wiele różnych rzeczy, ale sposób, w jaki lubię o tym myśleć, to “psucie rzeczy przed naszymi klientami”. Łagodniejsze spojrzenie na to: testowanie zmian w naszym oprogramowaniu przed ich wdrożeniem na maszynach produkcyjnych, aby próbować wyłapać problemy, które mogą się pojawić. I jest naprawdę WIELE rzeczy, które mogą pójść nie tak. Pozwól, że przeprowadzę Cię przez krótki przegląd!

Zmiany, zmiany, zmiany

david-bowie-changes-resized-600

DreamHost zatrudnia zespół programistów, pracujących nad produktami takimi jak DreamObjects i DreamCompute oraz wieloma innymi projektami, o których możesz wiedzieć, takimi jak integracja z usługami zewnętrznymi jak CloudFlare.

Nasi programiści używają git do zarządzania kodem źródłowym dla projektów, nad którymi pracują. Większość repozytoriów dla projektów open-source, do których przyczyniamy się (lub które tworzymy) jest dostępna na GitHub, ale mamy również wewnętrzny serwer z Gerrit do przeglądu kodu. Za każdym razem, gdy zmiany są wysyłane do GitHub lub Gerrit, Jenkins uruchamia automatyczne testy napisane przez programistów i QA przeciwko nowemu kodowi. Jenkins integruje się z Gerrit za pomocą kilku przydatnych pluginów i automatycznie głosuje przeciwko zmianom, które naruszają testy.

Szczęśliwe zakończenie?

Jedynym problemem tej metody jest to, że działa ona tylko wtedy, gdy istnieją automatyczne testy dla Jenkinsa do uruchomienia. Czasami kod, który jest zmieniany, nie posiada żadnych automatycznych testów. Zanim te zmiany zostaną wprowadzone na żywo, muszą zostać sprawdzone przez kogoś innego niż programiści. Jako inżynier QA, muszę wiedzieć kilka rzeczy, takich jak:

Jak to działało wcześniej? Jak to powinno działać teraz? Czy są jakieś specjalne instrukcje konfiguracji? Gdzie mogę dostać dobrego burrito tutaj?

(Burritos są niezbędne w procesie kontroli jakości.)

Wyposażony w tę wiedzę, staram się jak najczęściej korzystać z nowej funkcji. Na przykład jedną ze zmian, które wprowadziliśmy w panelu od kiedy tu pracuję, jest automatyczne (bezpłatne!) DNS Hosting, gdy domena jest dodawana do konta. Testowanie tego wiązało się z rejestrowaniem nowych domen, jak również przenoszeniem domen od zewnętrznego rejestratora i upewnianiem się, że DNS Hosting jest automatycznie włączony na nowej domenie. Zazwyczaj rzeczy nie są doskonałe za pierwszym razem, więc zgłaszam błędy programistom odpowiedzialnym za nowy kod i pracuję z nimi, aby upewnić się, że zgadzamy się co do tego, co się dzieje, co powinno się dziać i co zrobiłem, że to się zepsuło.

A następnie…

To nie jest do końca cała historia, ale inżynieria wydania zasługuje na osobny post. Mam nadzieję, że ten post dostarczył przydatnego wysokiego poziomu przeglądu QA w DreamHost, a w przyszłych wpisach będę mógł szczegółowiej opisać, jakich narzędzi używamy do automatycznego testowania.