Основываясь на многих источниках, я не верю простому определению, что цель тестирования - найти как можно больше ошибок - мы проверяем, чтобы убедиться, что он работает или нет. Например, следующим является цель тестирования формы ISTQB:
Определить, что (программные продукты) удовлетворяют указанным требованиям (я думаю, что его проверка)
Продемонстрировать, что (программные продукты) соответствуют цели (я думаю, что это проверка)
Обнаруживать дефекты
Я согласен, что тестирование - это проверка, валидация и обнаружение дефектов. Это верно?
testing
theory
verification
Джон V
источник
источник
Ответы:
Я думаю, вы поняли это правильно.
Проверка и проверка - это разные вещи, и на самом деле они довольно хорошо определены. Хотя мне не очень нравится этот документ, ISO 9000ff очень важен для QA и определяет Verification как сравнение продукта с его требованиями, а Validation как проверку, действительно ли он соответствует потребностям клиента / пользователя, и мы все знаем, что это может отличаться ,
И то, и другое можно сделать с помощью тестирования. Проверка приведет к тестированию сгенерированных требований к форме. Валидация приводит к тестированию, выполненному Тестами без прямой ссылки на требования. Я думаю, что это часто называют исследовательским тестированием. Очевидно, что это должны делать люди с реальным пониманием реальных потребностей пользователей, поэтому альфа- и бета-тестирование реальных пользователей является очевидным вариантом.
Теоретически, я думаю, можно утверждать, что все, что охватывается первыми двумя, не является ошибкой, и поэтому поиск ошибок в качестве отдельной цели не имеет смысла. Но я думаю, что есть вещи, которые вы не можете проверить или подтвердить. Например, безопасность: как вы проверяете или проверяете, что система программного обеспечения защищена от атак? Вместо этого вы пытаетесь найти уязвимости. Этот поиск не проверяет и не проверяет что-либо, если не удается найти проблемы, но он находит ошибки в случае успеха.
источник
Из Википедии: «... Другими словами, валидация гарантирует, что продукт действительно соответствует потребностям пользователя , и что спецификации были в первую очередь правильными , а проверка гарантирует, что продукт был построен в соответствии с требованиями и спецификациями дизайна Валидация гарантирует, что «вы создали правильную вещь». Верификация гарантирует, что «вы построили ее правильно». Валидация подтверждает, что продукт, если он предусмотрен, будет выполнять свое предназначенное использование ».
Вы не можете проверить потребности пользователя и проверить правильность спецификаций по коду. Таким образом, проверка не производится путем тестирования.
Проверка предполагает, что ваши требования и дизайн верны, поэтому вы можете проверить это, написав код (тестирование).
источник
Для реального мира тестирование - это проверка и валидация программного обеспечения, которое соответствует требованиям программного обеспечения (бизнес / функциональное / нефункциональное). Цель этого - определить, подходит ли программное обеспечение для данной цели. Любое поведение, которое не соответствует требованиям приложения, является дефектом, серьезность которого необходимо будет оценить, прежде чем определять, подходит ли программное обеспечение для этой цели.
Дефекты с низкой степенью серьезности, вероятно, не являются препятствием для передачи программного обеспечения в производственный тип. Высокая степень серьезности может потребовать исправления. В реальном мире все программное обеспечение имеет дефекты, некоторые из них связаны с проблемами кодирования, а другие - из-за пропущенных требований, которые не могут быть проверены, поскольку вы не можете проверить неизвестные требования.
источник
Существует много определений проверки и валидации. Многие люди даже используют тег V & V, чтобы объединить их в одно упражнение. Цель состоит в том, чтобы убедиться, что программное обеспечение делает правильные вещи и делает вещи правильными. На этом уровне не важно проверять соответствие требованиям или пытаться найти ошибки.
Тестирование является одним из многих методов проверки и подтверждения, а не другим способом. Проверка кода - это еще одна формальная проверка с математическими доказательствами.
Тем не менее, тестирование должно проводиться с целью выявления ошибок, а не с целью проверки соответствия требованиям.
Основное отличие заключается в сознании тестера. Намного проще создать тестовый пример, показывающий, что программное обеспечение работает как задумано (проверка соответствия), чем создать тестовый пример, показывающий, что программное обеспечение дает сбой (обнаружение ошибок).
Хороший тестировщик увлечен взломом программного обеспечения, а не безопасным его применением.
источник
Давайте посмотрим на это с практической точки зрения. Для тестирования необходимо определить контрольные примеры. Как правило, вы определяете тестовые случаи в соответствии с указанными требованиями, и они должны охватывать случаи «счастливого дня», а также «крайние случаи» - особенно последние часто определяются с целью взлома программного обеспечения. Когда некоторые из ваших тестов терпят неудачу, они обнаруживают ошибки / дефекты. Если у вас есть достаточное количество тестовых случаев для каждого требования и все эти тесты пройдены, вы, возможно, не полностью доказали, что все требования выполнены, но вы повысили вероятность этого, поэтому провели некоторую проверку.
Таким образом, для этой части вопроса поиск ошибок и проверка могут быть только двумя сторонами одного и того же процесса:
тесты не пройдены: дефекты найдены
тесты пройдены: проверка выполнена (по крайней мере, в некоторой степени, если вы предоставите достаточно и правильные тесты)
Относительно валидации: как указал @Mert, валидация может быть проведена путем приемочного тестирования, но не с помощью других форм тестирования. Таким образом, тестирование в целом не вызывает проверки, только когда проводится потенциальным пользователем в качестве приемочного тестирования.
источник
Все зависит от вашего определения «проверка». Например, формальная проверка обычно не выполняется командой QA, а является обязанностью разработчиков. Почти никто не проводит формальную проверку из-за высокой стоимости, связанной с этим (недостаток знаний и необходимых ресурсов).
источник
Тестирование программного обеспечения отличается от тестирования. Вы получили это право. Тестирование программного обеспечения в целом включает в себя много этапов (дым, юнит, регрессия, интеграция, принятие пользователем и т. Д.).
Таким образом, обеспечение того, чтобы программное обеспечение работало в соответствии с требованиями, является основной целью QA (специалист по обеспечению качества - иначе его называли просто тестерами много лет назад). Однако это не просто тестирование . Контроль качества обеспечивает наличие надлежащего набора процессов для проверки качества рассматриваемого продукта или, по крайней мере, его принятие на этапе проектирования проекта.
Таким образом, в идеале вы ожидаете, что ваш QA проверит приложение на соответствие требованиям, а не просто попытается проверить его, взломав программное обеспечение и обнаружив дефекты.
источник