Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

BiałQA meetup (PL): Brain up your testing! Kogn...

BiałQA meetup (PL): Brain up your testing! Kognitywne podejście do testowania oprogramowania

https://www.facebook.com/events/248470902507184/

W dobie pędzącego postępu technologicznego zdarza nam się zapomnieć, że nadal jesteśmy ludźmi. Utrata takiej perspektywy jest ze wszech miar niekorzystna, zarówno dla nas samych, jak i dla jakości softu oraz użytkowników końcowych.

Podejście poznawcze do testowania oprogramowania pomaga zadbać o “ludzką stronę technologii”, a co za tym idzie, pomaga ono zadbać o jakość.

W prezentacji znajdą się następujące treści:
-składniki ciągłego zapewnianiu jakości (QA)
-o podejściu poznawczym (kognitywnym)
-zasadzki umysłu czyhające na testera i QA
-trochę teorii naukowych do wykorzystania w praktyce
-jak być “human-friendly”?
-checklisty testera-kognitywisty

Aleksandra Kornecka

October 19, 2018
Tweet

More Decks by Aleksandra Kornecka

Other Decks in Research

Transcript

  1. Brain up your testing! Kognitywne podejście do testowania oprogramowania Aleksandra

    Kornecka OLX Group BiałQA meetup 19.10.2018, Białystok, Polska
  2. Agenda 1. Definiowanie jakości oprogramowania. 2. Wyzwania “ludzi od jakości".

    3. O podejściu kognitywnym. 4. Teorie kognitywistyki użyteczne w IT. 5. Wskazówki jak być human-friendly względem użytkownika. 6. Podsumowanie oraz checklisty testerskie.
  3. Składniki jakości • trafne wymagania biznesowe i techniczne • regularna

    informacja zwrotna o produkcie • stosowanie standardów kodowania oraz refactoring kodu • stosowanie się do standardów takich jak: ISO, IEEE, GDPR (..) • odpowiedni stopień pokrycia poszczególnych wymiarów jakości – funkcjonalność, użyteczność, utrzymywalność, niezawodność itd. • zmotywowanie osób biorących udział w wytwarzaniu oprogramowania • i ... kilka innych
  4. Weryfikacja “Czy to działa?” Walidacja “Czy to działa tak jak

    założono?” Użyteczność ”Czy ludzie wiedzą jak tego używać?”
  5. Odwrócony paradoks pestycydów Szczególnie podatne są tu testy regresyjne -

    jest to argument za automatyzacją oraz częstym wykonywaniem “automatów”.
  6. “Kognitywne” oznacza: • zależność od możliwości i ograniczeń ludzkiej percepcji

    • branie pod uwagę zasad funkcjonowania mózgu i umysłu ludzkiego • branie pod uwagę procesowania bodźców przez zmysły • branie pod uwagę zróżnicowania interfejsów (wizualny, dotykowy/haptyczny, słuchowy)
  7. Heurystyki kulturowe • W jaki sposób to samo oprogramowanie jest

    używane w różnych częściach świata? • Czym się kierować, testując oprogramowanie dla użytkowników z odmiennych kultur?
  8. Ograniczenia poznawcze Front-end komunikuje się z back-endem. Strona „zna” swoją

    całą zawartość. Człowiek nie zna jej całej zawartości.
  9. Manifest kognitywnej jakości • jesteśmy istotami ludzkimi (programiści, testerzy, koordynatorzy

    projektów, użytkownicy) • jako ludzie wytwarzamy oprogramowanie za pomocą technologii • chcemy by inni ludzie, z różnych kultur i o różnym obyciu z technologią skutecznie używali naszych wytworów • jakość jest ciągła (continuous quality)
  10. Ślepota na zmiany Silne skupienie na danej czynności czyni nas

    ślepymi na zmiany. Tester kierujący swą uwagę na jedną funkcjonalność jest podatny na przeoczenie błędu w innej funkcjonalności.
  11. Real-time monitoring • rozproszona komunikacja • bramki jakości przy wdrożeniach

    (CI, wersjonowanie) • real-time monitoring (np. DataDog, New Relic, Fabric) • raporty z incydentów
  12. Cel podejścia kognitywnego = tworzenie oprogramowania, które: - działa -

    jest “dla ludzi*” *ludzie = testerzy, użytkownicy, programiści (...)
  13. Najważniejsze wnioski • człowieczeństwo to jedno z wymagań „technicznych” projektu

    • każdy w SDLC ma swój wkład w jakość, nieważne jaką pełni rolę • testuj zanim powstanie linijka kodu • wymiana informacji (komunikacja) jest kluczowa • świadomość możliwości i ograniczeń poznawczych ma wartość biznesową dla całego produktu
  14. Przykładowa checklista testera-kognitywisty • Czy wiesz czego potrzebuje użytkownik? •

    Czy starasz się uzyskać informację zwrotną od użytkownika? • Czy obsługujesz różne kody błędów zarówno po stronie klienta przeglądarki jak i po stronie serwera? • Czy Twoja aplikacja jest dostosowana do osób z niepełnosprawnościami? • Czy aplikacja jest zabezpieczona przed złośliwymi skryptami, iframe’ami, pop-upami? • Czy od razu wiadomo jak używać Twojej aplikacji? • Czy Twoja aplikacja posiada formularz kontaktowy? • Czy wraz z aktualizacją wersji aplikacji, aktualizujesz też Pomoc itp.?
  15. Przykładowa checklista mobilnego testera-kognitywisty • Czy Twoja aplikacja mobilna jest

    odporna na nagłe połączenie głosowe do użytkownika? • Czy Twoja aplikacja radzi sobie z zanikiem połączenia z internetem? • Czy Twoja aplikacja radzi sobie z zanikiem usługi geolokacji? • Czy Twoja aplikacja radzi sobie z różnymi rozmiarami ekranu, rozdzielczością, schematami obsługi gestów? • Czy wspierasz zarówno widok wertykalny, jak i horyzontalny aplikacji oraz przejście między nimi?
  16. Inspiracje • kognitywistyka, psychologia poznawcza • doświadczenia własne i rozmowy

    z różnymi ludźmi z IT • psychologia kliniczna (EEG, fMRI, ERP) • badania użyteczności i user experience • architektura informacji • antropologia kulturowa
  17. Źródła • Lista błędów poznawczych • Pułapki przy podejmowaniu decyzji,

    analiza • Heurystyki kulturowe , krótki opis , kolejna książka • IBM badania nad kosztem błędów w oprogramowaniu • Microsoft Research attention span • Prawo Millera - pojemność pamięci roboczej • Eksperyment “change blindness” z gorylem, Simons & Chabris, 1999 • Kontrola poznawcza a dystraktory • Teoria D. Marra, afordancje J.J.Gibsona, teoria Gestalt • Heurystyki Jakoba Nielsena, artykuły o usability oraz UX • Metoda 5 WHYs na przykładzie inżynierii jakości produkcji