Top.Mail.Ru
Фоновое изображение
7 принципов тестирования

Привет, меня зовут Владимир Серов, я QA в Mish. Делюсь с вами принципами тестирования, которые мы используем в своей работе.

1. Тестирование демонстрирует наличие дефектов, а не их отсутствие.

Тестирование может выявить присутствие ошибок, но не может доказать в полной мере, что дефектов нет. Сколько бы успешных тестов не провели, нельзя утверждать, что нет таких тестов, которые бы не нашли ошибку.

2. Исчерпывающее тестирование недостижимо.

Сколь бы скрупулёзным тестирование не было, нельзя учесть все возможные сценарии, а значит и предвидеть все возможные ошибки.

3. Заблуждение об отсутствии ошибок.

Можно сколько угодно находить ошибки, и даже, казалось бы, не обнаруживая их больше, нет гарантии того, что ошибки найдены все и продукт полностью качественный и готовый. Надо помнить такую аксиому — не существует какого-либо продукта без багов или ошибок.

4. Раннее тестирование сохраняет время и деньги.

Этот принцип связан с понятием «цена дефекта». Цена дефекта существенно растет на протяжении жизненного цикла разработки ПО. Чем раньше обнаружен дефект, тем быстрее, проще и дешевле его исправить.

5. Принцип скопления или кластеризация дефектов.

Принцип, который предполагает, что небольшое количество модулей содержат в себе большинство багов. Это яркий пример применения принципа Парето в тестировании: 20% модулей содержат 80% всех багов.

6. Тестирование зависит от контекста.

Выбор методологии, техники и вида тестирования напрямую зависит от природы самой системы. К примеру, медицинское программное обеспечение требует более тщательной проверки, чем компьютерная игра.

7. Парадокс пестицида.

Если один и тот же пестицид использовать на протяжении долгого времени, например, для истребления неких жуков, то со временем его эффективность упадёт, так как у этих насекомых выработается устойчивость к одному и тому же пестициду. Такая же ситуация и с тестами, если повторять одни и те же тесты снова и снова, в какой-то момент они перестанут выявлять новые ошибки.

Автор статьи

Ещё статьи

  • Предыдущая статья

    С мыслями о бесконечном и вечном: как сделать проект, который переживет все тренды

    Все хотят быть в тренде — люди, бизнесы, крупные компании. Хочется быть одновременно на хайпе, а еще на чилле и расслабоне. Но вот это пребывание в моменте может очень лихо сыграть с бизнесом и привести к потере себя. Чтобы этого избежать, мы в своей работе используем форкастинг (future-casting) — не просто прогнозирование, а целостный подход к проектированию, который позволяет создавать решения, актуальные сегодня, завтра и в обозримом будущем. Рассказываем, как форкастинг помогает нам создавать по-настоящему устойчивые и эффективные проекты.

    project thumbnail
  • Следующая статья

    Как мы решили проблему хаотичной структуры проекта с Pug и Vite

    Привет, я Андрей Беннер, фронтенд-разработчик в Mish. Сейчас я расскажу вам о нашем опыте в оптимизации хаотичных процессов с помощью собственных разработок. Если вы когда-либо работали с проектами на стеке Vite + Pug + SCSS + TypeScript, то наверняка сталкивались с хаосом в файловой структуре и рутиной, мешающей сосредоточиться на главном — решении задач бизнеса и создании удобного интерфейса для пользователя. В этом материале мы поделимся тем, как столкнувшись с проблемой, создали решение, которое сделало процесс разработки более эффективным, а структуру проекта — интуитивно понятной. А ещё расскажем, как это решение родилось внутри команды и стало частью нашего вклада в open source.

    project thumbnail