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

Тестирование как паразработка

Тестирование как паразработка

Talk from HappyDev'13 about test automation and paradevelopment

Alex Rodionov

December 07, 2013
Tweet

More Decks by Alex Rodionov

Other Decks in Technology

Transcript

  1. ТЕСТИРОВАНИЕ
    КАК ПАРАРАЗРАБОТКА
    @p0deje

    [email protected]

    View full-size slide

  2. • 7+ лет в тестировании

    • Head QA @ Toptal

    • Code monkey @ Watir

    • (ex) Контрибутор @ Mozilla
    АЛЕКСЕЙ РОДИОНОВ

    View full-size slide

  3. КАЧЕСТВО

    View full-size slide

  4. КАЧЕСТВО
    соответствие реализации заданным характеристикам

    View full-size slide

  5. КАЧЕСТВО
    соответствие реализации заданным характеристикам

    (функциональная спека, дизайн, юзабилити, etc.)

    View full-size slide

  6. ТЕСТИРОВАНИЕ
    получение информации о качестве

    View full-size slide

  7. ЗАЧЕМ?
    изменение текущих процессов разработки

    View full-size slide

  8. ЗАЧЕМ?
    более лучшее качество

    View full-size slide

  9. ЗАЧЕМ?
    выше конкурентоспособность

    View full-size slide

  10. ЗАЧЕМ?
    увеличение прибыли

    View full-size slide

  11. N.B. Иллюстрация принципа “why stack” компании ThoughtWorks

    View full-size slide

  12. КАК?
    Верификация и Валидация

    View full-size slide

  13. ВЕРИФИКАЦИЯ
    мы сделали то, что требовалось

    View full-size slide

  14. ВАЛИДАЦИЯ
    то, что мы сделали, соответствует ожиданиям (клиента, пользователей)

    View full-size slide

  15. КАК?
    Требования, планы, кейсы, трэкер и т.д.

    View full-size slide

  16. КАК?
    Требования, планы, кейсы, трэкер и т.д.

    Требования, планы, кейсы, трэкер и т.д.

    View full-size slide

  17. КАК?
    Требования, планы, кейсы, трэкер и т.д.

    Требования, планы, кейсы, трэкер и т.д.

    Требования, планы, кейсы, трэкер и т.д.

    View full-size slide

  18. КАК?
    Требования, планы, трэкер и т.д.

    Требования, планы, трэкер и т.д.

    Требования, планы, трэкер и т.д.

    View full-size slide

  19. КАК?
    Требования, трэкер и т.д.

    Требования, трэкер и т.д.

    Требования, трэкер и т.д.

    View full-size slide

  20. КАК?
    Требования и т.д.

    Требования и т.д.

    Требования и т.д.

    View full-size slide

  21. КАК?
    Как-то так

    View full-size slide

  22. “РЕГРЕССИОННАЯ СПИРАЛЬ СМЕРТИ”

    View full-size slide

  23. РУЧНОЕ ТЕСТИРОВАНИЕ НЕ
    МАСШТАБИРУЕТСЯ

    View full-size slide

  24. КОЛИЧЕСТВО ➜ КАЧЕСТВО

    View full-size slide

  25. АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ

    View full-size slide

  26. УРОВНИ
    Юнит тесты
    Интеграционные
    тесты
    Системные тесты

    View full-size slide

  27. ЮНИТ ТЕСТЫ
    • Методы и классы

    • В 90% случаев разработчики

    View full-size slide

  28. ИНТЕГРАЦИОННЫЕ ТЕСТЫ
    • Взаимодействие отдельных компонентов

    • Big bang, bottom-up, top-down

    View full-size slide

  29. СИСТЕМНЫЕ ТЕСТЫ
    • Полностью собранная система

    • GUI, Exploratory, Ad hoc, Security, Usability, etc.

    View full-size slide

  30. Входные данные Тестируемая система Оракул
    ТЕСТ

    View full-size slide

  31. ВХОДНЫЕ ДАННЫЕ
    daysInMonthToString(days)

    View full-size slide

  32. ВХОДНЫЕ ДАННЫЕ
    daysInMonthToString(days)
    daysInMonthToString(10) #=> “10 days”

    View full-size slide

  33. ВХОДНЫЕ ДАННЫЕ
    daysInMonthToString(days)
    daysInMonthToString(10) #=> “10 days”
    daysInMonthToString(50) #=> Error: “No more than 31 days”

    View full-size slide

  34. АНАЛИЗ ПОГРАНИЧНЫХ ЗНАЧЕНИЙ
    … -1 0 31 32 …

    View full-size slide

  35. АНАЛИЗ ПОГРАНИЧНЫХ ЗНАЧЕНИЙ
    … -1 0 31 32 …
    Неверно Неверно
    Верно

    View full-size slide

  36. АНАЛИЗ ПОГРАНИЧНЫХ ЗНАЧЕНИЙ
    daysInMonthToString(-1)
    daysInMonthToString(0)
    daysInMonthToString(31)
    daysInMonthToString(32)

    View full-size slide

  37. КЛАССЫ ЭКВИВАЛЕНТНОСТИ
    Единственное число - day

    Множественное число - days

    View full-size slide

  38. КЛАССЫ ЭКВИВАЛЕНТНОСТИ
    daysInMonthToString(-1)
    daysInMonthToString(0)
    daysInMonthToString(31)
    daysInMonthToString(32)
    daysInMonthToString(1)

    View full-size slide

  39. Входные данные Тестируемая система Оракул
    ТЕСТ

    View full-size slide

  40. ОРАКУЛ
    • Предсказывает поведение системы

    • Определяет результат теста (pass/fail)

    • Джеймс Бах / Майкл Болтон: “FEW HICCUPPS”

    • Дуг Хоффман: “Таксономия оракулов”

    View full-size slide

  41. ЧТО ДАЛЬШЕ?

    View full-size slide

  42. ЧТО ДАЛЬШЕ?
    Непрерывная интеграция, деплоймент, ATDD, etc.

    View full-size slide

  43. ЧТО ДАЛЬШЕ?
    Непрерывная интеграция, деплоймент, ATDD, etc.

    Оптимизация тестов, инфраструктура, etc.

    View full-size slide

  44. ТЕСТИРОВАНИЕ?

    View full-size slide

  45. ТЕСТИРОВАНИЕ?

    ПАРАРАЗРАБОТКА!

    View full-size slide

  46. ПАРАДЕВ
    Человек в команде разработки, который

    не является разработчиком

    View full-size slide

  47. ПАРАДЕВ
    Человек со множеством скиллов

    и неограниченный формальными рамками

    View full-size slide

  48. ПАРАДЕВ
    Цель тестирования - перестать тестировать

    View full-size slide

  49. ПАРАДЕВ
    “Test is dead” - Alberto Savoia

    View full-size slide