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

E3f080d6ce9b67c8758da937d444b7ec?s=128

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. whoami 2 • software quality assurance engineer • mgr kognitywistyki

    • sprinter
  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.
  4. Definiowanie jakości Bo to szerokie zagadnienie ☺

  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
  6. Software Development Life Cycle

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

  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ć?”
  9. Podejmowanie decyzji Czy to już błąd czy jeszcze funkcjonalność?

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

  12. None
  13. Odwrócony paradoks pestycydów Szczególnie podatne są tu testy regresyjne -

    jest to argument za automatyzacją oraz częstym wykonywaniem “automatów”.
  14. Podejście kognitywne na przykładach

  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)
  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?
  17. Ograniczenia poznawcze Front-end komunikuje się z back-endem. Strona „zna” swoją

    całą zawartość. Człowiek nie zna jej całej zawartości.
  18. Dlaczego jest to ważne? end-user Źródło

  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)
  20. Teorie kognitywistyki użyteczne w IT

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

    Canada, 2015
  22. Pojemność pamięci roboczej Tylko od 2 do 7 ‘jednostek informacji’

    na 15-30 sekund (prawo Millera)
  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.
  24. Kontrola poznawcza vs dystraktory uwagi

  25. Luka percepcyjna Mózg potrzebuje chwili by skonstruować całą scenę wzrokową

    (teoria Marr’a).
  26. Myślenie schematami (prawa Gestalt) Nasz umysł kocha schematy, i podąża

    nimi kiedy tylko może.
  27. Myślenie schematami (prawa Gestalt) Prawo bliskości elementów

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

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

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

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

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

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

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

  35. Świadomość jest zbawienna

  36. Podejście shift-left

  37. Heurystyki - Jakob Nielsen 37

  38. Definition of Ready, Definition of Done

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

  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
  41. Podsumowanie

  42. Cel podejścia kognitywnego = tworzenie oprogramowania, które: - działa -

    jest “dla ludzi*” *ludzie = testerzy, użytkownicy, programiści (...)
  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
  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.?
  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?
  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
  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
  48. Dziękuję za uwagę! AleksandraKornecka.com GirlsWhoTest.pl OLXgroup.com