Инструменты пользователя

Инструменты сайта


тестирование

Вопросы и ответы при собеседовании по теме Тестирование

Вопросы

  • Что такое автоматическое тестирование и в чем его отличие от ручного тестирования?
  • Что такое юнит-тест?
  • Что такое TDD?
  • В чем преимущество TDD? Зачем сначала писать тесты, а потом код?
  • Что такое ошибки регрессии и как автоматические тесты помогают их решить?
  • Почему побочные эффекты ухудшают тестируемость кода?
  • Что такое имитация и когда их следует использовать?
  • Что такое шпион и когда их следует использовать?
  • Стоит ли тестировать методы частного класса? Зачем?
  • Зачем группировать отдельные тесты внутри модульных тестов?
  • Как долго должен длиться идеальный рабочий цикл: _ написание теста → изменение функциональности → рефакторинг_?
  • Какие существуют библиотеки для создания тестов и их запуска (и чем они отличаются друг от друга)?
  • Как тесты помогают новичкам войти в проект?
  • Как тесты помогают в документировании проекта?
  • Как тесты ускоряют получение отзывов о проделанной работе и почему эта обратная связь важна?
  • Какие шаги в ручном тестировании помогают избежать модульных тестов?
  • Зачем заставлять тесты работать быстро?
  • Как сделать так, чтобы ошибки теста были как можно более очевидными?
  • Нужно ли мне автоматически тестировать сами тесты?
  • Какие граничные условия? Зачем их проверять?
  • Что такое heisenbug? Как их отлаживать?
  • Что такое приспособление?
  • Что такое покрытие кода тестами? Какие есть инструменты для его анализа?
  • Чем юнит-тесты отличаются от интеграционных? Почему сложнее писать и поддерживать интеграцию?
  • Зачем обращать внимание на шаблоны, когда тесты не проходят? Как может помочь анализ того, какая именно тестовая комбинация отпала?
  • Как тесты помогают в проектировании? Почему тестируемость модуля - отличный индикатор «чистоты кода»?
  • Как тесты помогают при рефакторинге?
  • Каковы преимущества правила «одна концепция на единичный тест»?
  • Каковы преимущества изолированных друг от друга тестов?
  • Как найти баланс между количеством тестов и покрытием кода? Какие проблемы может вызвать чрезмерное количество юнит-тестов?
  • Что такое тестовая пирамида? Какую роль здесь играют тесты? Какую роль здесь играет статический анализ кода?
  • Являются ли типы полной заменой модульных тестов? Зачем?
  • Что такое сквозные тесты? В чем отличие от интеграции?
  • Когда тесты действительно замедляют разработку, а когда ускоряются?
  • Являются ли тесты полноценной частью системы и кодовой базы?
  • Почему тестирование становится менее удобным, если вы тестируете не только публичные, но и частные методы?
  • Что такое Test Double и Fake? В чем отличие от Mock и Stub?
  • В чем разница между тестированием с проверкой поведения и проверкой состояния?
  • Почему приложение Mocks провоцирует проверку поведения?
  • Что такое одиночные и общительные тесты? Каковы преимущества одиночных тестов? Есть ли какие-то преимущества в тестах на общение?
  • Почему Mocks упрощает внешний вид?
  • Зачем стремиться к тому, чтобы тесты можно было проводить как можно удобнее и с участием одной команды?
  • Стоит ли писать «обучающие» интеграционные тесты, которые запускаются только вручную и только для тестирования внешнего API (например, веб-API Github)?

Ссылки

тестирование.txt · Последнее изменение: 2020/09/04 09:30 — oleg