Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

    View Slide

  2. whoami
    2
    ● software quality assurance engineer
    ● mgr kognitywistyki
    ● sprinter

    View Slide

  3. 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.

    View Slide

  4. Definiowanie jakości
    Bo to szerokie zagadnienie ☺

    View Slide

  5. 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

    View Slide

  6. Software
    Development
    Life
    Cycle

    View Slide

  7. Wyzwania
    człowieka, który pełni rolę testera i QA

    View Slide

  8. Weryfikacja
    “Czy to działa?”
    Walidacja
    “Czy to działa tak jak założono?”
    Użyteczność
    ”Czy ludzie wiedzą jak tego
    używać?”

    View Slide

  9. Podejmowanie decyzji
    Czy to już błąd czy jeszcze funkcjonalność?

    View Slide

  10. View Slide

  11. Błąd poznawczy konfirmacji (confirmation bias)

    View Slide

  12. View Slide

  13. Odwrócony paradoks pestycydów
    Szczególnie podatne są tu testy regresyjne - jest to argument za
    automatyzacją oraz częstym wykonywaniem “automatów”.

    View Slide

  14. Podejście kognitywne
    na przykładach

    View Slide

  15. “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)

    View Slide

  16. 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?

    View Slide

  17. Ograniczenia poznawcze
    Front-end komunikuje się z back-endem.
    Strona „zna” swoją całą zawartość.
    Człowiek nie zna jej całej zawartości.

    View Slide

  18. Dlaczego jest to ważne?
    end-user
    Źródło

    View Slide

  19. 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)

    View Slide

  20. Teorie kognitywistyki
    użyteczne w IT

    View Slide

  21. Rozpiętość
    uwagowa
    Źródło: “Attention spans. Consumer Insights.” Report by Microsoft Canada, 2015

    View Slide

  22. Pojemność pamięci roboczej
    Tylko od 2 do 7 ‘jednostek informacji’ na 15-30 sekund (prawo Millera)

    View Slide

  23. Ś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.

    View Slide

  24. Kontrola poznawcza vs dystraktory uwagi

    View Slide

  25. Luka percepcyjna
    Mózg potrzebuje chwili by skonstruować całą scenę wzrokową
    (teoria Marr’a).

    View Slide

  26. Myślenie schematami (prawa Gestalt)
    Nasz umysł kocha schematy, i podąża nimi kiedy tylko może.

    View Slide

  27. Myślenie schematami (prawa Gestalt)
    Prawo bliskości elementów

    View Slide

  28. Myślenie
    schematami
    (prawa Gestalt)
    Prawo podobieństwa

    View Slide

  29. Myślenie schematami (prawa Gestalt)
    Prawo podobnego ruchu: drag-and-drop

    View Slide

  30. Myślenie
    schematami (prawa
    Gestalt)
    Prawo symetrii

    View Slide

  31. Myślenie schematami
    (prawa Gestalt)
    Prawo kontynuacji

    View Slide

  32. Myślenie schematami (prawa Gestalt)
    Prawo Prägnanz
    (wydobycie figury z tła)

    View Slide

  33. Affordancje Gibsona
    Gdzie może kryć się błąd?

    View Slide

  34. Wskazówki
    jak być human-friendly (developer-friendly, user-friendly itd.)

    View Slide

  35. Świadomość jest zbawienna

    View Slide

  36. Podejście shift-left

    View Slide

  37. Heurystyki - Jakob Nielsen
    37

    View Slide

  38. Definition of Ready, Definition of Done

    View Slide

  39. Metoda
    “5 Why’s”
    jako analiza
    źródłowa

    View Slide

  40. 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

    View Slide

  41. Podsumowanie

    View Slide

  42. Cel podejścia kognitywnego = tworzenie
    oprogramowania, które:
    - działa
    - jest “dla ludzi*”
    *ludzie = testerzy, użytkownicy, programiści (...)

    View Slide

  43. 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

    View Slide

  44. 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.?

    View Slide

  45. 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?

    View Slide

  46. 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

    View Slide

  47. Ź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

    View Slide

  48. Dziękuję za uwagę!
    AleksandraKornecka.com
    GirlsWhoTest.pl
    OLXgroup.com

    View Slide