К основному контенту

Заметки на коленке: про тестирование (базисы для разрабов)


Лет 5 назад наваял на коленке для рассказа разработчикам про тестирование в команде без тестировщиков.


Что такое качество?
С точки зрения пользователя:
Качество — это пригодность к использованию. Делает ли данный продукт то, в чем я нуждаюсь, облегчает ли он мою работу, могу ли я его использовать так, как мне удобно.

С точки зрения разработчика:
Качество — это соответствие специфицированным и собранным требованиям. Делает ли данный продукт все то, что указано в требованиях.

Характеристики качества программного продукта:
  • Функциональность
  • Производительность
  • Стабильность
  • Удобство использования
  • Безопасность
Но, есть еще, например, качество программного кода:
  • Понятность
  • Изменяемость
  • Тестируемость
  • Поддерживаемость
Поэтому всегда учитывайте, что "качество" - это многовекторная штука.

Checking|Testing / QC / QA
В каждой еще и статье набор ссылок напочитать.

Что такое тестирование:
  • Тестирование - сервис по предоставлению информации о качестве продукта
  • Тестирование - поиск ошибок
Причины ошибок:
  • сделали, но ошибка в коде (или настройках среды и тд)
  • сделали, но не то, что ожидалось
  • даже не делали, так как этот сценарий не предусмотрели
  • ошибка во “внешнем” коде (open-source)
Полезно разбирать причину возникновения, позволяет не наступать на них снова.

Как предотвратить и не повторить?
Вопросы:
  • как мы проверим, что мы это сделали
  • какие сценарии надо проверить и в каких условиях
Верификация (сделали то, что планировали|хотели) vs Валидация (сделали то, что нужно | это решает проблему)

Пирамиды тестирования:
тут про пирамидки и вообще вопрос автоматизации

UI-тесты:
  • Тесты основной функциональности “через UI” (такое нужно минимизировать)
  • Тесты бизнес-логики в UI
  • Визуальное тестирование
Техники тест-дизайна
http://www.protesting.ru/testing/testdesign_technics.html
  • Эквивалентное Разделение
  • Анализ Граничных Значений
  • Причина / Следствие
  • Предугадывание ошибки
  • Исчерпывающее тестирование
  • PairWise
Простота и понятность тест-дизайна

Тест-стратегия
Тесты в проде
Мое мнение по тестам в проде

Следуюшие заметки:

Комментарии

Популярные сообщения из этого блога

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system under test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объе

Полезные ресурсы для молодых (и не только) тестировщиков

сперто(с) Уже 3 месяца провожу собеседования тестировщиков (март 2016). Поначалу они просто  веселили - после 15-летнего опыта собеседования С++-разработчиков, общение с тестировщиками (чаще были "-цы") было чем-то экзотическим и забавным. Потом становилось все грустнее и грустнее, мимими закончилось. Началась печаль.

Заметки на коленке - 3. Что еще делать, если ваши тесты уже "зеленые"?

"Lately I find I'm working on automated tests that return non-binary results. Tests that neither pass nor fail" by  @noahsussman Отличная мысль, которую я ретвитил еще в 2016. Но давайте вместе подумаем, что за этим может скрываться? ( кстати, не знаю, что при этом думал Noah ) Ваши тесты прошли и прошли "успешно". Все хорошо или все же есть, куда еще посмотреть? Дальше то, что использовал я лично и то, что еще можно прикрутить дополнительно. Естественно все шаги ниже должны быть автоматизированны. 1. Контролируйте время выполнения тестов. Если набор проверок не меняется (а такое часто бывает, к сожалению), то рост времени выполнения может говорить о проблемах в продакшен коде (чаще всего) или проблемах с окружением. 2. Контроль за количеством выполняемых тестов. "Все зеленое" не значит, что сегодня выполняли те же Х тестов, что и вчера. Смешно(нет), но случается такое, что какие-то проверки "исчезают" из запуска из-за того, что у кого-то &qu