3) Что нужно знать начинающему специалисту в современных реалиях?
Итак, начнем. Огромная просьба сразу завести текстовый файлик (глоссарий, куда будете записывать все новые определения).
Базовое понятие тестирования.
Официальное определение по версии ISTQB (International Software Testing Qualifications Board) выглядит так:
Тестирование — процесс, содержащий в себе все активности жизненного цикла, как динамические, так и статические, касающиеся планирования, подготовки и оценки программного продукта и связанных с этим результатов работ с целью определить, что они соответствуют описанным требованиям, показать, что они подходят для заявленных целей и для определения дефектов.
Выглядит громоздки и не совсем понятно. Но сразу оговорюсь ISTQB — это довольно формализованное сертифицирование специалистов, которое новичку вряд ли нужно. Да и более опытным специалистам тоже. Но для себя, либо на перспективу работы за рубежом попробовать стоит (следует уточнить стоимость сертификации (на момент написания статьи — 229$). Тест сдать сложно, поэтому готовьтесь на несколько итераций. За все, конечно же, нужно платить 🙂
Тестирование программного обеспечения
FYI: ISTQB (International software testing qualification board) — Международный совет по тестированию программного обеспечения.
На данный момент же предлагаю использовать более понятное определение:
Тестирование программного обеспечения – это метод проверки соответствия фактического программного продукта ожидаемым требованиям.
И при этом ничего больше! Заметьте, тестирование не ставит под собой задачу «поиска багов», основная цель тестирования — проверить соответствие спецификации (документированных требований к продукту от заказчика) с получившимся продуктом.
Также к целям тестирования стоит отнести:
- Проверка, все ли указанные требования выполнены;
- Создание уверенности в уровне качества объекта тестирования;
- Предотвращение дефектов (например, когда вы тестируете документацию к продукту) ;
- Обнаружение дефектов;
- Предоставление заинтересованным лицам достаточной информации , позволяющей им принять обоснованные решения о работоспособности продукта. Нужно понять, что далеко не всегда продукт выводится в промышленность, не имея дефектов вообще. Есть также критерии успешности, которые согласовывает заказчик продукта с командой, которая этот продукт будет тестировать.
Источник: dzen.ru
Тестирование программного обеспечения — основные понятия и определения
Тестирование программного обеспечения (Software Testing) — проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004] В более широком смысле, тестирование — это одна из техник контроля качества, включающая в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).
Тестировщик с нуля за 6 часов / QA / Тестирование по полный курс
Верификация (Verification) — это процесс оценки системы или её компонентов с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа [IEEE]. Т.е. выполняются ли наши цели, сроки, задачи по разработке проекта, определенные в начале текущей фазы.
Валидация (Validation) — это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе [BS7925-1].
План Тестирования (Test Plan) — это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
Тест дизайн (Test Design) — это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест кейсы), в соответствии с определёнными ранее критериями качества и целями тестирования.
Тестовый случай (Test Case) — это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.
Баг/Дефект Репорт (Bug Report) — это документ, описывающий ситуацию или последовательность действий приведшую к некорректной работе объекта тестирования, с указанием причин и ожидаемого результата.
Тестовое Покрытие (Test Coverage) — это одна из метрик оценки качества тестирования, представляющая из себя плотность покрытия тестами требований либо исполняемого кода.
Детализация Тест Кейсов (Test Case Specification) — это уровень детализации описания тестовых шагов и требуемого результата, при котором обеспечивается разумное соотношение времени прохождения к тестовому покрытию
Время Прохождения Тест Кейса (Test Case Pass Time) — это время от начала прохождения шагов тест кейса до получения результата теста.
Тест План (План тестирования)
Тест план (Test Plan) — это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
Рекомендации по написанию Тест Плана
Каждая методология или процесс пытаются навязать нам свои форматы оформления планов тестирования. Предлагаю вам, как пример, шаблоны тест планов от RUP (Rational Unified Process) и стандарт IEEE 829:
- Test Plan Template RUP
- Test Plan Template IEEE 829
- Что надо тестировать?
- описание объекта тестирования: системы, приложения, оборудования
- список функций и описание тестируемой системы и её компонент в отдельности
- стратегия тестирования, а именно: виды тестирования и их применение по отношению к объекту тестирования
- последовательность проведения работ: подготовка (Test Preparation), тестирование (Testing), анализ результатов (Test Result Analisys) в разрезе запланированных фаз разработки
- готовность тестовой платформы (тестового стенда)
- законченность разработки требуемого функционала
- наличие всей необходимой документации
- .
- результаты тестирования удовлетворяют критериям качества продукта:
- требования к количеству открытых багов выполнены
- выдержка определенного периода без изменения исходного кода приложения Code Freeze (CF)
- выдержка определенного периода без открытия новых багов Zero Bug Bounce (ZBB)
- Окружение тестируемой системы (описание программно-аппаратных средств)
- Необходимое для тестирования оборудование и программные средства (тестовый стенд и его конфигурация, программы для автоматизированного тестирования и т.д.)
- Риски и пути их разрешения
Источник: studfile.net
101+ вопросов по автоматизации и тестированию вручную
В этой статье представлен расширенный список вопросов (и ответов), которые потенциальный работодатель может задавать тестировщикам программного обеспечения. Статья построена в формате вопрос-ответ, и, в частности, содержит вопросы относительно автоматизации тестирования, сертификации ISTQB и CSTE и многого другого, что дает возможность оценить уровень подготовки. Надеемся, что по прочтении статьи, вы сможете подготовиться к любым собеседованиям, или, как минимум, увереннее отвечать на вопросы.
В. Что такое динамическое тестирование?
О. Это тестирование за счет выполнения кода или программы с различными входными значениями и подтверждением результатов.
В. Что такое GUI-тестирование (GUI Testing)?
О. Тестирование GUI (графического интерфейса пользователя): интерфейс программного обеспечения проверяется на предмет соответствия требованиям.
В. Что такое формальное тестирование?
О. Верификация программного обеспечения, согласно тест-плану, тестовым процедурам и соответствующей документации, с учетом пожеланий клиента.
В. Что такое тестирование на основе рисков?
О. Определяются наиболее важные части системы, затем устанавливается порядок их тестирования, затем следует, собственно, тестирование.
В. Что такое раннее тестирование?
О. Тестирование по возможности проводится как можно раньше, чтобы выявить дефекты на ранних этапах SDLC. Это позволяет быстрее обнаружить и устранить дефекты, экономит расходы.
В. Что такое исчерпывающее тестирование?
О. Тестирование функциональности, с использованием неверных и верных данных ввода и входных условий.
В. Что такое скопление дефектов?
О. Даже небольшой модуль или функциональность могут содержать в себе ряд дефектов, поэтому необходимо больше уделять внимания тестированию функциональности.
В. Что такое «парадокс пестицида»?
О. Если с помощью имеющихся тестовых сценариев не получается обнаружить дефекты, возможно, стоит дополнить/пересмотреть тест-кейсы, чтобы можно было находить больше дефектов.
В. Что такое статическое тестирование?
О. Верификация кода вручную без программы. В этом процессе проблемы находятся в коде, во время его проверки и сравнения с требованиями.
В. Что такое позитивное тестирование?
О. Тестирование, которое проводится в приложении с целью определить, насколько система функциональна. Такой подход больше известен как «тест на прохождение».
В. Что такое негативное тестирование?
О. Тестирование негативных сценариев в ПО: высвечивает ли система ошибку, когда она должна это делать, или не должна.
В. Что такое сквозное тестирование (еnd-to-end)?
О. Тестирование общей функциональности системы, включая интеграцию данных в модулях.
В. Что такое исследовательское тестирование?
О. Это исследование приложения, чтобы составить представление о его функциональности, добавление (или) изменение существующих тест-кейсов для более качественного тестирования.
В. Что такое «обезьянье тестирование» (Monkey Testing)?
О. Тестирование приложения без какого-либо плана, тестирование выборочных мест, чтобы обнаружить какие-то сложные системные сбои, а затем и дефекты, которые к этому привели.
В. Что такое нефункциональное тестирование?
О. Валидация различных нефункциональных аспектов системы, таких как пользовательские интерфейсы, совместимость, производительность и прочее.
О. Проверка на предмет того, насколько легко конечные пользователи способны понять и управлять приложением.
О. Проверяется, насколько хорошо реализованы в приложении все условия безопасности.
О. Анализ эффективности различных характеристик системы — времени ответа, общей производительности с целью установить, как быстро система работает под нагрузкой.
В. Что такое нагрузочное тестирование?
О. Анализ функциональности и производительности приложения в разных условиях.
В. Что такое стресс-тестирование?
О. Проверка устойчивости системы в условиях превышения пределов обычного функционирования. Или снижение ресурсов системы и сохранение нагрузки на определенном уровне, чтобы проверить, как приложения при этом себя ведет.
В. Что такое процесс?
О. Процесс — это набор практик для достижения определенной цели; может включать инструменты, методы, материалы и людей.
В. Что такое конфигурационное управление?
О. Процесс поиска, организации и контроля изменений в разработке ПО. Или методология контроля и управления проектом разработки ПО.
О. Составление:
- Тест-плана
- Тест-сценариев
- Тест-кейсов
- Выполнение тест-кейсов
- Проверка результатов
- Составление отчетов о дефектах
- Дефект-трекинг
- Закрытие дефектов
- Тестовый релиз
В. Как расшифровывается CMMI?
О. Capability Maturity Model Integration (Модель зрелости процессов разработки).
В. Что такое разбор программы?
О. Неформальный анализ исходного кода программы с целью выявить дефекты и верифицировать техники программирования.
О. Тестирование отдельных программ, модулей или элементов кода.
В. Что такое тестирование уровня интеграции?
О. Тестирование соответствующих программ, модулей (или) единиц кода.
В. Что такое тестирование на уровне системы?
О. Тестирование всей компьютерной системы по всем модулям. Такая разновидность тестирования может включать функциональное и структурное тестирование.
В. Что такое альфа-тестирование?
О. Тестирование всей компьютерной системы перед этапом пользовательского тестирования (UAT).
В. Что такое UAT?
О. Тестирование компьютерной системы клиентом, чтобы проверить, соответствует ли система требованиям.
В. Что такое тестовый план?
О. Документ, описывающий масштаб, подход, ресурсы и график тестирования, в котором определены тестовые элементы, отдельные части функционала, тестовые задания, специалисты, которые будут проводить конкретные тесты, и любые риски, требующие дополнительного планирования.
В. Что такое сценарий тестирования?
О. Идентификация всех возможных зон тестирования.
В. Что такое ECP (Equivalence Class Partition)?
О. Метод генерации тест-кейсов.
В. Что такое дефект?
О. Любое несовершенство в работе софта. Или когда ожидаемый результат не соответствует фактической работе приложения.
В. Что такое критичность?
О. Определяет уровень дефекта с функциональной точки зрения, т.е. насколько критичен дефект для приложения.
В. Что такое приоритет?
О. Указывает на срочность устранения дефекта.
В. Что такое повторное тестирование?
О. Повторное тестирование приложения с целью узнать, устранены ли дефекты.
О. Верификация существующих функциональных и нефункциональных зон после того, как были изменены отдельные части приложения или добавлены новые функциональные возможности.
В. Что такое тестирование восстановления?
О. Проверяется возможность системы справиться с некоторыми неожиданными ситуациями.
В. Что такое тестирование глобализации (Globalization Testing)?
О. Тестируется возможность запуска приложения независимо от его географической и культурной среды. Проверяется возможность смены языка, даты, формата и валюты, если приложение разработано для пользователей из нескольких стран.
В. Что такое тестирование локализации?
О. Проверка на предмет того, подходит ли приложение для отдельной локальной группы пользователей, культурных и географических условий.
В. Что такое тестирование установки?
О. Проверяется возможность успешной установки ПО, в соответствии с документацией по установке.
В. Что такое тестирование удаления?
О. Проверка возможности удаления ПО.
В. Что такое тестирование на совместимость?
О. Проверяется совместимость приложения с другим программным и аппаратным обеспечением.
В. Что такое стратегия тестирования?
О. Это часть тест-плана, описывающая, как проводится тестирование и какие разновидности тестирования необходимо сделать.
В. Что такое тест-кейс?
О. Тест-кейс — набор определенных шагов, по которым проверяется функциональность системы.
В. Что такое тест-кейс для валидации бизнес-процессов?
О. Этот тест-кейс составляется для того, что проверить определенное условие или требование.
В. Как определяется хороший тест?
О. Тест-кейс, у которого высокий приоритет обнаружения дефектов.
В. Что такое тестирование по сценарию использования?
О. Такое тестирование определяет, было ли ПО разработано согласно случаю использования.
В. Что такое возраст дефекта?
О. Время между датой обнаружения и датой закрытия дефекта.
В. Что такое дефект Showstopper?
О. Дефект, который вынуждает остановить ход тестирования.
О. Это последний этап STLC. Руководство составляет отчеты по тестам, разъясняет статистику проекта, исходя из имеющихся данных.
В. Что такое Bucket Testing?
О. Bucket Testing, или A/B-тестирование. Чаще всего исследуется эффект разного дизайна, используется метрика для веб-сайтов. Две версии сайта запускаются на одной или нескольких веб-страницах, чтобы определить разницу в кликах.
В. Что такое критерии запуска и завершения тестирования?
О. Критерии запуска — процесс, который должен быть представлен в начале системы. Это может быть:
- SRS – ПО
- FRS
- Случай использования
- Тест-кейс
- План тестирования
Критерий завершенности определяет готовность приложения к релизу. Это может быть:
- Отчет по тестированию
- Метрики
- Отчет по анализу теста
В. Что такое тестирование валюты?
О. Это комплексное пользовательское тестирование одновременного доступа к приложению, для верификации влияния на код, модуль или базу данных. Главным образом обнаруживает тупиковые ситуации в коде.
О. Тестирование веб-приложения проводится на веб-сайте для проверки загрузки, производительности, безопасности, функциональности, интерфейса, совместимости и других вопросов, относящихся к юзабилити.
О. Тестирование элементов (или побочное тестирование) позволяет проверить отдельные работу модулей исходного кода.
В. Что такое тестирование интерфейса?
О. Тестирование интерфейса проверяет взаимодействие отдельных модулей. Чаще всего используется для тестирования пользовательского интерфейса приложений с GUI.
В. Что такое гамма-тестирование?
О. Гамма-тестирование проводится когда ПО уже готово к релизу, проверяется соответствие требованиям.
Источник: getbug.ru