$30 off During Our Annual Pro Sale. View Details »

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

Alex Rodionov
December 15, 2018

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

A reworked and modernized version of https://speakerdeck.com/p0deje/tiestirovaniie-kak-parazrabotka talk about software testing and paradevelopment for GDG DevFest 2018 in Bishkek, Kyrgyzstan (https://www.meetup.com/GDG-Bishkek/events/256593243)

Alex Rodionov

December 15, 2018
Tweet

More Decks by Alex Rodionov

Other Decks in Technology

Transcript

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

    View Slide


  2. Лёша Родионов

    View Slide


  3. Лёша Родионов
    @p0deje

    View Slide


  4. Лёша Родионов
    @p0deje

    View Slide


  5. Лёша Родионов
    @p0deje

    View Slide


  6. Лёша Родионов
    @p0deje

    View Slide

  7. ТЕСТИРОВАНИЕ И
    ПАРАРАЗРАБОТКА

    View Slide

  8. ДЛЯ КОГО?

    View Slide

  9. ДЛЯ КОГО?
    кто собирается заниматься тестированием

    View Slide

  10. ДЛЯ КОГО?
    кто собирается заниматься тестированием
    кто не понимает зачем нужно тестирование

    View Slide

  11. ТЕСТИРОВАНИЕ И
    ПАРАРАЗРАБОТКА

    View Slide

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

    View Slide

  13. КАЧЕСТВО

    View Slide

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

    View Slide

  15. КАЧЕСТВО
    соответствие реализации заданным характеристикам
    (функциональная спека, дизайн, юзабилити, etc.)

    View Slide

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

    View Slide

  17. ЗАЧЕМ?

    View Slide

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

    View Slide

  19. ЗАЧЕМ?
    качество повышается

    View Slide

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

    View Slide

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

    View Slide

  22. PROFIT!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  26. КАК?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. КАК?
    Как-то так
    "

    View Slide

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

    View Slide

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

    View Slide

  36. КОЛИЧЕСТВО КАЧЕСТВО

    View Slide

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

    View Slide

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

    View Slide

  39. ЮНИТ ТЕСТЫ
    • Методы и классы
    • В 90% случаев разработчики

    View Slide

  40. ИНТЕГРАЦИОННЫЕ ТЕСТЫ
    • Взаимодействие отдельных компонентов
    • Big bang, bottom-up, top-down

    View Slide

  41. СИСТЕМНЫЕ ТЕСТЫ
    • Полностью собранная система
    • GUI, Exploratory, Ad hoc, Security, Usability, etc.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  46. ВХОДНЫЕ ДАННЫЕ
    daysInMonthToString(days)
    daysInMonthToString(10) #=> “10 days”
    daysInMonthToString(-5) #=> Error: “No less than 0 days”

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  50. АНАЛИЗ ГРАНИЧНЫХ ЗНАЧЕНИЙ
    daysInMonthToString(-1) #=> Error: “No less than 0 days”
    daysInMonthToString(0) #=> “0 days”
    daysInMonthToString(31) #=> “31 days”
    daysInMonthToString(32) #=> Error: “No more than 31 days”

    View Slide

  51. КЛАССЫ ЭКВИВАЛЕНТНОСТИ
    1. Единственное число: day
    2. Множественное число: days

    View Slide

  52. КЛАССЫ ЭКВИВАЛЕНТНОСТИ
    daysInMonthToString(-1) #=> Error: “No less than 0 days”
    daysInMonthToString(0) #=> “0 days”
    daysInMonthToString(1) #=> “1 day”
    daysInMonthToString(31) #=> “31 days”
    daysInMonthToString(32) #=> Error: “No more than 31 days”

    View Slide

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

    View Slide

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

    View Slide

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



    View Slide

  56. ОРАКУЛ
    • Предсказывает поведение системы
    • Определяет результат теста (pass/fail)


    View Slide

  57. ОРАКУЛ
    • Предсказывает поведение системы
    • Определяет результат теста (pass/fail)
    • Джеймс Бах / Майкл Болтон: “FEW HICCUPPS” (руч.)
    • Дуг Хоффман: “Таксономия оракулов” (авт.)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  61. ТЕСТИРОВАНИЕ И
    ПАРАРАЗРАБОТКА

    View Slide

  62. ПАРАРАЗРАБОТКА
    Процесс в команде разработки, который
    не является разработкой

    View Slide

  63. Разработчик со множеством скиллов,
    не ограниченный формальными рамками
    ПАРАРАЗРАБОТЧИК

    View Slide

  64. Цель тестирования -
    как можно меньше тестировать

    View Slide


  65. Лёша Родионов
    @p0deje

    View Slide