Тестирование программного обеспечения играет важную роль в современном мире, где компьютерные программы проникают во все сферы нашей жизни. Без надлежащего тестирования программы могут быть подвержены сбоям, что в конечном итоге может привести к непредсказуемым последствиям и неудовлетворенности пользователей. В силу этого, тестирование является неотъемлемой частью разработки нового программного обеспечения, гарантирующей его качество, надежность и эффективность. Это процесс, позволяющий выявить и исправить проблемы, а также убедиться в соответствии новой программы требованиям и ожиданиям клиентов. В этой статье рассмотрим основные аспекты тестирования, важность его роли, типы и преимущества, которые оно предоставляет в области разработки программного обеспечения.
Что такое тестирование
Тестирование — это процесс проверки программного обеспечения, системы или приложения на соответствие определенным требованиям и оценки их качества.
Оно выполняется с целью выявления ошибок, неполадок vs нежелательного поведения программного продукта.
Определение слова “тестирование” имеет много значений. Рассмотрим основные:
- Процесс выполнения программы с целью нахождения ошибок.
- Интеллектуальная дисциплина, имеющая целью получение надежного программного обеспечения без излишних усилий на его проверку
- Техническое исследование программы для получения информации о ее качестве с точки зрения определенного круга заинтересованных лиц. С. Канер.
- Проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выполненных определенным образом.
- Процесс наблюдения за выполнением программы в специальных условиях и вынесения на этой основе оценки каких-либо нюансов ее работы.
- Процесс, имеющий целью выявление ситуаций, в которых поведение программы является неправильным, нежелательным или не соответствующим спецификации.
- Процесс, содержащий в себе все активности жизненного цикла, как динамические, так и статические, касающиеся планирования, подготовки и оценки программного продукта и связанных с этим результатов работ с целью определить, что они соответствуют описанным требованиям, показать, что они подходят для заявленных целей и для определения поломок.
В этой статье разберем тестирование сайтов и ПО. Перед тщательным изучением программного тестирования полезно ознакомиться с некоторыми терминами и определениями, которые помогут быстрее ориентироваться в данной области:
- Качество программного обеспечения (ПО) — это совокупность характеристик системы, которые определяют ее способность удовлетворять установленным и предполагаемым потребностям. Оно отражает, насколько результаты работы соответствуют изначальным критериям.
- Верификация — это процесс оценки системы или ее компонентов, который выполняется для проверки, насколько результаты разработки на данном этапе соответствуют исходным требованиям. Верификация позволяет определить, достигнуты ли цели и задачи организации на конкретном этапе разработки.
- Валидация — это процесс проверки соответствия программного продукта или системы ожиданиям, желаниям и потребностям пользователей. Она оценивает, насколько ПО соответствует явным требованиям и спецификациям.
- Жизненный цикл (ЖЦ) — это набор процедур и процессов, с которыми сталкивается приложение или система на каждом этапе разработки, начиная от зарождения первоначальной идеи и заканчивая релизом и поддержкой. Каждое программное обеспечение имеет свой жизненный цикл, включающий различные фазы и деятельности.
Тестирование проводит специалист “тестировщик”, который должен пройти обучение или курс подготовки. Тестировщики проверяют производительность мобильных приложений или программ, функции всех новых компонентов, используя разные методы. Тестировщик может быть как частью команды разработчиков, так и работать с разными проектами. Само тестирование разделяется на разные виды и типы. Например, есть нефункциональный и функциональный тип, которые могут быть частью одних операционных работ.
Почему важно тестировать программы
Тестирование программ является важной практикой по нескольким причинам:
- Выявление ошибок. Позволяет обнаружить ошибки и недочеты в программном обеспечении. Раннее обнаружение и исправление ошибок способствует улучшению качества программы и уменьшению возможных проблем и рисков в дальнейшем.
- Гарантия качества. Помогает проверить, насколько программа соответствует своим требованиям и спецификациям. Это позволяет удостовериться, что программа работает правильно, выполняет задачи и доставляет ожидаемые результаты.
- Улучшение надежности. Способствует повышению надежности программного обеспечения. Через тестирование можно выявить уязвимости, ошибки в обработке данных и другие проблемы, которые могут привести к сбоям или неправильной работе программы.
- Оптимизация производительности. Позволяет оценить производительность программы, выявить узкие места и бутылочные горлышки, которые могут замедлять работу программы.
- Повышение удовлетворенности пользователей. Позволяет выявить и исправить проблемы, которые могут негативно влиять на пользовательский опыт. Корректная и надежная работа программы улучшает удовлетворенность пользователей и способствует их лояльности.
- Уменьшение рисков и затрат. Помогает снизить риски, связанные с неправильной работой программы. Обнаружение и устранение ошибок на ранних стадиях разработки экономит время, усилия и ресурсы, которые могут быть затрачены на исправление проблем в более поздних этапах.
В целом, тестирование программ позволяет обеспечить высокое качество программного обеспечения, минимизировать риски и повысить доверие пользователей.
Жизненный цикл разработки проекта
Стадии разработки ПО — это этапы, которые проходят команды разработчиков ПО, прежде чем программа станет доступной для широко круга пользователей. Разработка ПО начинается с анализа требований к проекту и первоначального этапа разработки (стадия «пре-альфа») и продолжается стадиями, на которых продукт дорабатывается и модернизируется. Финальным этапом этого процесса становится выпуск на рынок окончательной версии программного обеспечения («общедоступного релиза»).
Программный продукт проходит следующие стадии:
- Анализ требований к проекту
- Проектирование
- Реализация
- Тестирование продукта
- Внедрение и поддержка.
Каждой стадии разработки ПО присваивается определенный порядковый номер. Также каждый этап имеет свое собственное название (Пре-альфа, Альфа, Бета, Релиз-кандидат, Релиз, Пост-релиз), которое характеризует готовность продукта на этой стадии.
Жизненный цикл разработки ПО (Software Development Life Cycle — SDLC):
- Идея (Idea)
- Сбор и аналитика (Planning and Requirement Analysis)
- Документирование требований (Defining Requirements)
- Дизайн (Design Architecture)
- Разработка (Developing)
- Тестирование (Testing)
- Внедрение/развертывание (Deployment)
- Поддержка (Maintenance)
- Смерть (Death)
Цели тестирования
Цели тестирования сильно зависят от целей самого проекта. Но можно выделить основные общие цели:
- Проверка, все ли указанные требования выполнены. Что это значит? У каждого продукта есть техническое задание (ТЗ) в том или ином виде. Именно оно определяет, как будет выглядеть программа. ТЗ задает соответствующие требования, а мы, как тестировщики, должны проверить, что все требования из ТЗ не только реализованы, но и работают правильно.
- Создание уверенности в уровне качества объекта тестирования. Напрямую тестирование не влияет на качество продукта.
- Предотвращение дефектов. Тестирование — не только поиск багов на уже реализованном продукте. Существует также тестирование на более ранних этапах, например, тестирование документации. Заранее протестировав тоже ТЗ, тестировщик может указать на потенциальные проблемы, которые могут появиться в результате разработки программы.
- Обнаружение отказов. Здесь все просто. поиск багов в программном обеспечении (ПО) является неотъемлемой частью тестирования.
- Предоставление заинтересованным лицам достаточной информации, позволяющей им принять обоснованные решения. Тестировщики не влияют напрямую на исправление, но могут показать текущее состояние продукта, выраженное в количестве багов, путем оформления баг-репортов.
- Снижение уровня риска ненадлежащего качества программного обеспечения (например, пропущенные сбои в работе). Чем лучше тестирование, тем меньший риск пропуска критичных багов. А значит, что риск возникновения ненадлежащего качества ПО уменьшается.
Результатом тестирования непосредственно для компании разработчика продукта служит сокращение потенциальных дополнительных трат на исправление ошибок в релизной версии и снижение репутационных рисков, ведь любой обнаруженный дефект негативно влияет на доверие пользователей к продукту.
Принципы качественного тестирования
Для проведения качественного теста важно знать основы и принципы работы.
Есть 7 устоявшихся аксиом качественного тестирования:
- Тестирование демонстрирует наличие ошибки (Testing shows presence of defects). Может показать, что неисправности присутствуют, но не может доказать, что их нет.
- Исчерпывающее тестирование недостижимо (Exhaustive testing is impossible). Полное тестирование с использованием всех комбинаций входных вводов и предусловий физически невыполнимо, за исключением тривиальных случаев.
- Раннее тестирование (Early testing). Чтобы найти неисправности как можно раньше, активности по тестированию должны быть начаты как можно раньше в жизненном цикле разработки.
- Скопление поломок (Defects clustering). Как правило, большая часть, обнаруженных при тестировании, содержится в небольшом количестве модулей.
- Парадокс пестицида (Pesticide paradox). Если одни и те же тесты будут прогоняться много раз, в конечном счете этот набор тестовых сценариев больше не будет находить новых дефектов.
- Тестирование зависит от контекста (Testing is context dependent). Тестирование выполняется по-разному в зависимости от контекста.
- Заблуждение об отсутствии ошибок (Absence-of-errors fallacy). Обнаружение и исправление не помогут, если созданная система не подходит пользователю и не удовлетворяет его ожиданиям и потребностям.
Также разберем несколько полезных советов, о которых следует помнить во время тестирования:
- Следует тестировать «софт» на реальных устройствах, а не только в эмуляторах, и желательно с разными разрешениями экранов, ОС и наборами аппаратных компонентов.
- Тестирование должно быть выполнено в рамках расписания, чтобы не затягивать процесс.
- Необходимо провести проверку и тестирование UX, так как она является одним из ключевых аспектов.
- Дебаггинг — задача программиста, тестировщик должен фокусироваться на обнаружении ошибок и передаче информации разработчикам.
- Важно следовать плану и уделить внимание деталям, чтобы не упустить важные моменты.
- Проведение нестандартных тестов и нагрузок поможет оценить «выносливость» ПО.
- Проверка ПО на устаревших устройствах с низкой скоростью интернета (2G) может быть полезной, учитывая разнообразие пользователей.
- Автоматизированное тестирование является полезным инструментом и требуют грамотного написания.
Работа в команде с другими тестировщиками может повысить эффективность поиска ошибок благодаря разным подходам и методам.
Этапы тестирования
В работе важно соблюдать все этапы тестирования, чтобы выпустить качественный и полностью функционирующий продукт. Этапы тестирования программного обеспечения включают:
- Планирование тестирования. В этом этапе определяются цели и объем тестирования, разрабатывается тестовый план, определяются ресурсы, расписывается расписание и составляется список требований для тестирования.
- Анализ требований и создание тестовых случаев. На этом этапе производится анализ требований к программному обеспечению и разрабатываются тестовые случаи. Тестовые случаи описывают шаги, которые необходимо выполнить для проверки функционального и нефункционального соответствия требованиям.
- Подготовка тестового окружения. Здесь создаются необходимые условия для проведения тестирования, включая установку программного обеспечения, настройку тестовых данных, настройку тестовых средств и инструментов.
- Выполнение тестов. На этом этапе проводятся тесты в соответствии с разработанными тестовыми случаями. Тестировщики выполняют шаги тестирования, вводят тестовые данные и проверяют результаты, сравнивая их с ожидаемыми значениями.
- Регистрация и отслеживание поломок. Если в процессе тестирования обнаруживаются ошибка, она регистрируется в виде дефектных отчетов. В отчетах указывается описание проблемы, шаги для воспроизведения, приоритет и серьезность. Дефекты отслеживаются и передаются разработчикам для исправления.
- Анализ результатов тестирования. После завершения тестирования производится анализ результатов. Оцениваются выполнение требований, обнаруженные дефекты, покрытие тестами и эффективность тестирования.
- Завершение и отчетность. На последнем этапе составляется отчет о выполненном тестировании, включающий информацию о проведенных тестах, обнаруженных дефектах, выполнении требований и других важных аспектах. Отчет передается заинтересованным сторонам, таким как руководство проекта или заказчику.
Также есть тестовые среды:
- Среда разработки (Development Env) – за данную среду отвечают разработчики, в ней они пишут код, проводят отладку, исправляют ошибки
- Среда тестирования (Test Env) – среда, в которой работают тестировщики (проверяют функционал, проводят smoke и регрессионные тесты, воспроизводят.
- Интеграционная среда (Integration Env) – среда, в которой проводят тестирование взаимодействующих друг с другом модулей, систем, продуктов.
- Предпрод (Preprod Env) – среда, которая максимально приближена к продакшену. Здесь проводится заключительное тестирование функционала.
- Продакшн среда (Production Env) – среда, в которой работают пользователи
Каждый из этих этапов важен для обеспечения качества программного обеспечения и выявления потенциальных проблем до их попадания в конечный продукт.
Виды тестирования
Тестирование классифицируется по разным критериям. Основные виды тестирования:
- Функциональное тестирование (functional testing). Данный вид подразумевает проверку того, что ПО правильно решает пользовательские задачи, проверка функциональных задач. Функциональный вид тестирования сосредотачивается на функциях и возможностях приложения, а также его соответствии требованиям и ожиданиям пользователей. Основная цель функционального тестирования — убедиться, что все функции и операции приложения работают корректно и взаимодействуют друг с другом так, как ожидается.
- Тестирование производительности. Вид тестирует оценку быстродействия ПО при заданной нагрузке. Тестирование производительности проводится до и после оптимизации. Его целью является проверка и выявление факторов, которые влияют на производительность ПО.
- Тестирование API — это тип функционального и нефункционального тестирования ПО, при котором анализируется интерфейс прикладной программы (API).
- Интерфейсное тестирование. Это тестирование и проверка взаимодействия системы с пользовательским интерфейсом (GUI).
- Тестирование безопасности. Этот вид тестирования подразумевает проверка системы на наличие уязвимостей и защищенность от внешних угроз.
- Нагрузочное тестирование (load testing). Оценка ПО при плановой, повышенной и пиковой нагрузке. Ресурсы системы конечны и такое тестирование позволяет избежать связанных с нагрузкой инцидентов после ее внедрения.
- Стресс-тест (stress testing, стрессовое тестирование) – проверка работы ПО в критических условиях, процесс тестирования на стресс: миграция данных из другой системы в больших объемах, загрузка большого количества данных, нехватка памяти или дискового пространства. Как пример, также проверяется, как будет работать ПО, когда им одновременно начнет пользоваться много новых пользователей.
- Тестирование стабильности. Проводится для проверки реакции программного обеспечения на взлом и другие угрозы безопасности. В этом случае проверяется, насколько стабильно и надежно приложение работает в связи с возможными атаками и нарушениями безопасности.
- Нефункциональное тестирование. Нефункциональный тип относится к проверке нефункциональных нюансов программного приложения. Это может включать тестирование, например, производительности, совместимости с различными окружениями и другими системами.
- Юзабилити (usability testing) — это метод тестирования удобства. Согласно ему проводится со стороны пользовательского интерфейса тестирование удобства пользования операционными системами.
- Тестирование совместимости. Направлено на проверку реакции ПО на различные окружения, другие системы и компоненты. Тестировать совместимость нужно, чтобы убедиться, что приложение может без проблем работать в разных условиях и взаимодействовать с другими системами.
- Тестирование Черного ящика. Осуществляется путем тестирования приложения через интерфейсы, доступные пользователю. В этом случае тестируется функциональное и нефункциональное оснащение приложения, не затрагивая его внутренний код или структуру.
- Тестирование Белого ящика. Предполагает доступ к исходному коду программы и тестирование его внутренних компонентов и логики. Этот подход позволяет более точно выявлять ошибки и неоднозначности в реализации логических цепочек программы.
- Альфа-тестирование. Проводится для имитации работы программного приложения в реальных условиях использования. Целью этого тестирования является оценка работы приложения и его функциональности в контексте реальных сценариев использования.
- Бета-тестирование. Выполняется с целью проверки приложения на наличие минимального количества ошибок перед его окончательным выпуском или публикацией.
- Тестирование Регресс (формат регрессионного тестирования). Проверяет ранее найденные ошибки после внесения изменений или доработки кода. Целью этого тестирования является убедиться, что исправления ошибок не повлекли появление новых проблем.
- Дымовое тестирование (smoke testing). Проводится для проверки работоспособности приложения в момент его запуска. Это своеобразный первичный тест, чтобы убедиться, что приложение может успешно запуститься и функционировать в основных сценариях использования.
- Acceptance testing, или тестирование приемки, направлено на убеждение, что продукт готов к использованию и соответствует ожиданиям заказчика.
- Ручное тестирование: проводится без использования дополнительных инструментов, где тестировщики имитируют действия пользователей вручную.
- Автоматизированное или электронное тестирование. Осуществляется с использованием специальных программных средств и инструментов для автоматизации тестовых сценариев. Для автоматизации тестирования могут применять также сервисы.
- Динамический анализ кода. Включает анализ исходного кода программы в процессе ее выполнения. Это позволяет выявить проблемы в коде, возникающие во время работы приложения, и обеспечить его стабильность и надежность.
- Статический анализ кода. Проводится без реального выполнения программы и позволяет обнаружить дефекты и проблемы в коде до его запуска. Этот подход позволяет выявить потенциальные ошибки и недочеты еще на этапе разработки приложения.
Также следует учесть классификацию тестирования по фазе жизненного цикла:
- Тестирование в процессе разработки (Development Testing): проверка на ранних стадиях разработки для обнаружения поломок.
- Тестирование перед выпуском (Release Testing): финальное тестирование перед выпуском продукта.
- Тестирование после выпуска (Post-Release Testing): тестирование после выпуска для обнаружения дефектов и улучшения продукта.
Это лишь некоторые примеры классификации тестирования, и в реальных проектах может быть комбинация разных видов тестирования в зависимости от требований и целей проекта.
Тестирование включает различные процессы на разных уровнях, которыми управляют тестировщики.
Уровни тестирования
Уровни тестирования — это различные ступени или подходы к тестированию программного обеспечения, которые обычно выполняются последовательно.
Вот некоторые из основных уровней тестирования:
- Модульное тестирование (unit testing). Проверяет отдельные модули или компонентное наполнение ПО на корректность их функционирования. Тесты проводятся над отдельными функциями, процедурами или классами.
- Интеграционное тестирование. Проверяется взаимодействие и взаимосвязь между различными модулями или компонентами программного обеспечения. Цель — убедиться, что они работают вместе и взаимодействуют без ошибок.
- Системное тестирование. Проводится на уже интегрированной системе в целом. Здесь проверяется функциональность, производительность и поведение системы в соответствии с требованиями и ожиданиями.
- Приемочное тестирование. Выполняется для проверки соответствия программного обеспечения конечным требованиям заказчика или пользователя. Оно проводится с целью получить подтверждение от заказчика о готовности продукта к использованию.
- Регрессионное тестирование. Выполняется после внесения изменений в готовое ПО для обнаружения новых дефектов или нежелательных побочных эффектов, возникших в результате внесенных изменений.
- Альфа- и бета-тестирование. Проводятся перед релизом продукта и выполняются соответственно в контролируемой среде разработчика (альфа-тестирование) и в реальной среде пользователей (бета-тестирование). Они помогают выявить проблемы, связанные с использованием продукта в различных сценариях и средах.
Эти уровни тестирования обычно выполняются последовательно, начиная с модульного тестирования и заканчивая альфа- и бета-тестированием. Однако, конкретные подходы к тестированию могут варьироваться в зависимости от проекта и методологии разработки.
Требования к тестированию
Тестирование проходит по абстрактному регламенту. Это спецификации (описания) того, что должно быть реализовано в ходе разработки системы/продукта. Описывают моменты, которые нужно воплотить в жизнь, не отражая техническую детализацию.
Сюда можно отнести следующие критерии:
- Корректность тестирования. Каждое требование обязательно точно описывает желаемые инструменты и функции.
- Проверяемость тестирования. Требование формулируется так, чтобы существовали способы однозадачной проверки на факт выполнения.
- Полнота тестирования. Каждое описание содержит информацию, которой достаточно разработчику для грамотной реализации того или иного функционала.
- Недвусмысленность тестирования. Сформулированные описания являются понятными. Они трактуются только одним способом. Неоднозначные аббревиатуры и выражения в них отсутствуют.
- Непротиворечивость тестирования. Описание не должно содержать внутренних противоречий. То же самое касается «несоответствий» техническому заданию и иным документам.
- Приоритетность тестирования. Приоритет требования представлен количественной оценкой степени важности.
- Атомарность. Описание нельзя разделить на более мелкие без потери завершенности. Каждое требование описывает всего одну ситуацию.
- Модифицируемость тестирования. Указывает на простоту внесения изменений в отдельные описания или их наборы.
- Возможность отслеживания. Каждое описание имеет уникальный идентификатор. Он помогает обнаружить требование при необходимости.
- Описание не может быть необязательным. Это – явное противоречие самому замыслу требований к тестированию.
Тестировать новые ПО важно грамотно, иначе с частью инструментов могут произойти сбои. Главная цель — избежать ошибок.
Дефекты и репорты
Дефекты и репорты являются важной частью процесса тестирования программного обеспечения. Когда в процессе тестирования обнаруживается ошибка, неправильное поведение или недостаток в программе, это считается дефектом.
Атрибуты отчета о дефекте:
- Уникальный идентификатор (ID) — присваивается автоматически системой при создании баг-репорта.
- Тема (краткое описание, Summary) — кратко сформулированный смысл, отвечающий на вопросы. Что? Где? Когда? (при каких условиях)?
- Подробное описание (Description) — более широкое описание (указывается опционально).
- Шаги для воспроизведения (Steps To Reproduce) — описание четкой последовательности действий, которая привела к выявлению. В шагах воспроизведения должен быть описан каждый шаг, вплоть до конкретных вводимых значений, если они играют роль в воспроизведении недочетов.
- Фактический результат (Actual result) — описывается поведение системы на момент обнаружения дефекта в ней. чаще всего, содержит краткое описание некорректного поведения (может совпадать с темой отчета).
- Ожидаемый результат (Expected result) — описание того, как именно должна работать система в соответствии с документацией.
- Вложения (Attachments) — скриншоты, видео или лог-файлы.
- Серьезность (важность, Severity) — характеризует влияние дефекта на работоспособность приложения.
- Приоритет (срочность, Priority) — указывает на очередность выполнения задачи или устранения.
- Статус (Status) — определяет текущее состояние дефекта. Статусы могут быть разными в разных баг-трекинговых системах.
- Окружение (Environment) – окружение, на котором воспроизводится баг.
Дефекты могут быть разнообразными. это может быть некорректное отображение интерфейса, неверные вычисления, неправильное взаимодействие с другими компонентами системы и многие другие. Могут возникать из-за ошибок в коде, неправильных алгоритмов, неправильного ввода данных или других факторов. Серьезность (severity) отражает степень воздействия дефекта на проект. Тестировщик устанавливает уровень серьезности в зависимости от его влияния на функциональность и работоспособность приложения.
Градация серьезности дефектов включает следующие уровни:
- Блокирующий (S1 – Blocker) — достиг граничных значений
- Критический (S2 – Critical)
- Значительный (S3 – Major)
- Незначительный (S4 – Minor)
- Тривиальный (S5 – Trivial)
Приоритет определяет срочность устранения дефекта и устанавливается менеджером, тимлидом или заказчиком.
Градация приоритета дефектов включает следующие уровни:
- Высокий (High, P1). Критически важный для проекта дефект, который требует немедленного исправления.
- Средний (Medium, P2). Не критичен, но требует обязательного решения в ближайшее время.
- Низкий (Low, P3). Не является критическим и не требует срочного решения. Может быть исправлен, когда появится возможность.
В процессе тестирования также могут быть выявлены различные типы задач, такие как эпики, требования, истории, задачи, подзадачи и баги, которые помогают организовать работу команды и фиксировать проблемы в системе.
Когда дефект обнаружен, он должен быть документирован и передан на адрес команде разработки для исправления. Это осуществляется с помощью репорта. Репорт о дефекте содержит информацию, такую как описание, шаги для воспроизведения, ожидаемое поведение и фактический результат. Репорт также может содержать прикрепленные файлы, скриншоты или другую информацию, которая помогает разработчикам лучше понять проблему и исправить ее.
Методы тестирования
Существует несколько методов тестирования, актуальных для разных тестировочных задач. Основные методы тестирования:
- Тестирование «черного ящика» (Black Box Testing) — вариант, в котором тестировщик ничего не знает о коде или структуре продукта. QA работает с программой как конечный пользователь. Этим методом проверяют функциональное ли приложение и делает ли то, что должно?
- Тестирование «белого ящика» (White Box Testing), также известное как glass box или прозрачное тестирование, — это, по сути, проверка исходного кода. Чтобы протестировать его, нужен опыт, например, в программировании. Тестировщик анализирует блоки системы по отдельности и ищет проблемы.
- Тестирование «серого ящика» (Grey Box Testing) объединяет методы тестирования «белого» и чёрного ящика. Цель этого подхода — найти любые ошибки в пользовательском интерфейсе или в разработке. У тестировщика нет доступа к коду приложения, но он знает общую структуру сервиса и его ограничения.
- Статическое и динамическое тестирование. Описанные выше техники предполагают, что код исполняется, и разница состоит лишь в той информации, которой владеет тестировщик. В обоих случаях это динамическое тестирование.При статическом тестировании программный код не выполняется — анализ программы происходит на основе исходного кода, который рассчитывается вручную, либо анализируется специальными инструментами.
- Регрессионное тестирование (англ. regression testing, от лат. regressio — движение назад) — собирательное название для всех видов тестирования программного обеспечения, направленных на ошибки в уже протестированных участках исходного кода. Может быть использовано не только для проверки корректности программы, часто оно также используется для оценки качества полученного результата. Так, при разработке компилятора, при прогоне регрессионных тестов рассматривается размер получаемого кода, скорость его выполнения и время компиляции каждого из тестовых примеров.
- Позитивное тестирование и негативное. Позитивный тест – использование данных или тестовых сценариев, которые предусмотрены для нормального функционирования приложения. Служит для подтверждения того, что программный продукт может выполнять то, для чего его разработали. Негативное тестирование – противоположность позитивного. Его суть заключается в выполнении программой функций или использование данных, которые не предусмотрены ни разработчиками, ни идейным создателем приложения. Например, как отреагирует программа, если в числовое поле ввести буквы.
Тестовая документация
Тест план (Test Plan) представляет собой документ, в котором указываются все необходимые для тестирования мероприятия. В нем описываются объект, стратегии, расписания, критериев начала и завершения проверки, указывается требуемое оборудование и специальные знания, а также выполняется оценка рисков.
В данном документе должны иметься ответы на нижеперечисленные вопросы:
- Что нужно протестировать?
- Каким образом должно осуществляться тестирование?
- Когда будет выполняться проверка?
- Каковы критерии начала тестирования?
- Каковы критерии завершения тестирования.
Рассмотрим важнейшие разделы тестовой документации:
- Идентификатортестплана (Test plan identifier).
- Введение (Introduction).
- Объект тестирования (Test items).
- Функции, которые следует проверить(Features to be tested).
- Функции, которые не нужно проверять (Features not to be tested).
- Тестовые подходы (Approach).
- Критерии прохождения тестирования (Item pass/fail criteria).
- Критерии приостановления и возобновления тестирования (Suspension criteria and resumption requirements).
- Результаты тестирования (Test deliverables).
- Задачи тестирования (Testing tasks).
- Ресурсы системы (Environmental needs).
- Обязанности (Responsibilities).
- Ролииответственность (Staffing and training needs).
- Расписание (Schedule).
- Оценкарисков (Risks and contingencies).
- Согласования (Approvals).
Среди тестовой документации в обязательном порядке фигурирует Тестовый сценарий (Test case) и чек-лист (Check list).
Чек-лист — это документ, описывающий что должно быть протестировано. Чек-лист может быть абсолютно разного уровня детализации. Как правило, чек-лист содержит только действия (шаги) без ожидаемого результата. Чек-лист менее формализован чем тест кейс и меньше, чем гайд.
Тестовый сценарий (test case) — это артефакт, описывающий совокупность этапов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.
Атрибуты тест кейса:
- Предусловия (PreConditions) — список действий, которые приводят систему к состоянию пригодному для проведения основной проверки. Либо список условий, выполнение которых говорит о том, что система находится в пригодном для проведения основного теста состояния.
- Шаги (Steps) — список действий, переводящих систему из одного состояния в другое, для получения результата, на основании которого можно сделать вывод о удовлетворении реализации, поставленным требованиям.
- Ожидаемый результат (Expected result) — что по факту должны получить.
ISTQB, международная организация по сертификации тестировщиков. Тестировщиком, работающим в области quality assurance (QA), необходимо обладать глубоким пониманием различных методик и подходов к тестированию. Он выполняет множество задач, включая конфигурационное тестирование. Чтобы стать тестировщиком, нужно не просто выучить все понятия и особенности каждого компонента, важно иметь навыки отслеживать изменения, которые внес разработчик. Для этого используется QC (Quality Center).
Профессия тестировщик
Тестировщик — специалист, ответственный за выполнение тестирования программного обеспечения. Он проводит различные тесты, чтобы обнаружить дефекты и проверить соответствие программы требованиям и ожиданиям пользователей.
Задача тестировщика — обеспечить высокое качество и надежность программного продукта перед его выпуском. Обязанности тестировщика:
- Контроль качества разрабатываемых продуктов
- Выявление и анализ ошибок, возникающих при работе с ПО
- Разработка тестов, тест-кейсов
- Тестирование
- Анализ результатов тестирования
- Классификация ошибок
- Сопровождение процесса ликвидации найденной ошибки
- Документирование всего процесса.
Если вы хотите сэкономить время, получить быстро новые знания можно на курсах, хотя это относится скорее к дополнению обучения. Такая модель обучения длится не два или три года, а всего несколько месяцев и может делится на группы. Но автор рассказывает в основном модель работы, не углубляясь во все тонкости, функции каждого приложения или типа сервисов, которые вам придется тестировать. Курсы дают базу, очень кратко вы узнаете о каждой виде модели работы. Если вы хотите стать квалифицированным специалистом, вам нужны разнообразные знания в разработке приложений и программировании. Также разберем стек технологий тестировщика. У каждого инженера по QA есть свой уникальный опыт и собственный стек технологий – набор инструментов, которые он использует в работе, включая языки программирования, СУБД и прочее. Профессионал должен знать:
- Основы тестирования, его разновидности и техники
- Способы разработки тест-кейсов, тест-планов
- Языки запросов SQL, базы данных
- Языки программирования
- Системы контроля версий. Git, CVS ипр.
При этом необходимо знание английского языка. Без этого будет трудно понимать и составлять техническую документацию. Перечислим наиболее распространенные требования:
- Языки разметки и программирования:
- HTML/CSS
- Python
- SQL
- Java/JavaScript
- Фреймворки:
- Selenium
- Allure
- Системы автоматизации:
- Jenkins
- ПО для управления проектами:
- Jira
- Redmine
- Библиотеки модульного тестирования:
- Nose
- SimpleTest
- Jest
- Jasmine
- Chai
- JUnit
- Nunit
- Boost Test
- Watir
- Серверы, для запуска легковесных оболочек:
- Selenoid
- Docker
- Инструменты и сервисы:
- Testmo
- QA Wolf
- Testsigma
- BugBug (bug bug)
- ClickUp
- Online Test Pad
- Lets Test
- Anketolog
- Тестов.ру
- ClassMarker
- Testix
- Qzzr
- Testograf
Важно понимать, что в каждом проекте будет уникальная комбинация стека технологий, отвечающая индивидуальным требованиям. Какой-нибудь веб-проект может работать, например, с таким стеком. Java + Html elements + Selenoid + Allure + Jenkins + Readmine.
Часто задаваемые вопросы
Нет. Автоматизированные тесты не могут найти абсолютно все баги, тестировать должна специалисты. Они распознают только те функциональные и нефункциональные ошибки, которые прописаны в их сценариях. Автотестам можно оставить рутинные операции, поиск типовых ошибок, нагрузочное тестирование. Это избавит QA-инженеров от монотонной работы и ускорит процессы. Тестировать вручную нужно более креативные и сложные задачи, где нужен человеческий взгляд.
Сначала нужно проверить, что всё выглядит, как задумано заказчиком — сайт совпадает с макетом, кнопки работают и ссылки ведут, куда нужно. Что проверять:
- Элементы страницы расположены как на макете на всех устройствах.
- Сайт одинаково выглядит и работает во всех нужных браузерах.
- Кнопки нажимаются и после этого что-то происходит, слайдеры крутятся, гамбургеры раскрываются.
- Все JavaScript-скрипты работают корректно.
- Отображается правильный контент.
- Отдаются нужные заголовки.
- Загружаются правильные шрифты.
- Фавиконка установлена.
- Текст отображается не кракозябрами (в 2020 такое редко, но бывает).
- Курсор интерактивный на интерактивных элементах и обычный на обычных.
- С локализацией всё в порядке (русская, английская версия).
- Страница не разъезжается, если включить блокировщик рекламы.
- Все функциональные и нефункциональные элементы работают.
Ручное тестирование — это процесс поиска ошибок в программе без использования специальных ПО, силами человека. Тестировщик имитирует реальные действия пользователя и старается охватить максимум функций продукта и найти ошибки (на языке QA — «баги»). Специалист по QA ищет недоработки в визуале, функционале, логике ПО, проверяет его надежность и удобство. Все найденные ошибки QA фиксирует в баг-репорте — отчете о тестировании, по которому разработчики будут исправлять недочеты.
Ручное тестирование состоит из ряда этапов:
- Читаем документацию и работаем с требованиями. Тестировщики узнают, как должно работать ПО, чего от него ждут разработчики и бизнес. На этом этапе QA-инженер может добавить требования, если они неполные, и сократить, если они невыполнимы.
- Планируем тестирование. Определяем объем работы, бюджет, выбираем методы, типы и инструменты.
- Разрабатываем тестовые сценарии. Специалисты создают тест-кейсы — алгоритм проверки ПО, а также чек-листы и готовят среду для выполнения тестов.
- Проводим первое тестирование. Команда выполняет тесты и сообщает разработчикам об ошибках.
- Делаем повторное тестирование. Когда программисты исправили ошибки, тестирование повторяют, чтобы проверить, что после изменений все работает.
- Готовим отчет о результатах. В итоговом документе описывают все тесты, выполненные во время разработки программы.
Тестирование программного обеспечения выполняется в различных формах на каждой стадии SDLC:
- Во время стадии сбора требований тестированием является проверка этих требований.
- На стадии проектирования тестированием является проверка проекта для повышения качества дизайна (тест-дизайн).
- После написания кода тестированием считается итоговая проверка.
Заключение
Тестирование программного обеспечения играет важную роль в обеспечении высокого качества и надежности программ. В процессе тестирования выявляются дефекты, которые помогают улучшить программу и предотвратить возможные проблемы в работе. Репорты о дефектах позволяют эффективно передавать информацию о проблемах разработчикам и сотрудничать для их исправления. Тестирование способствует повышению удовлетворенности пользователей, оптимизации производительности и снижению рисков. Без надлежащего тестирования программы могут быть подвержены ошибкам, которые могут привести к непредсказуемым последствиям. Поэтому, тестирование является неотъемлемой частью разработки программного обеспечения и важен для достижения высокого качества и успешной эксплуатации программы.
Олег Вершинин
Специалист по продукту
Все статьи автора
Нашли ошибку в тексте? Выделите нужный фрагмент и нажмите
ctrl
+
enter
Этапы тестирования ПО
Блог
Тестирование — неотъемлемая часть жизненного цикла программного обеспечения. Само по себе тестирование — это длительный процесс проверок на соответствие продукта ожидаемому результату. Тестировщик не просто играет важную роль в создании продукта, а участвует на каждом этапе разработки от концепции до выхода продукта в свет.
Всего выделяют 7 этапов тестирования
- Работа с требованиями. Знакомство с требованиями заказчика. Обсуждение, что должен из себя представлять итоговый продукт
- Разработка стратегии тестирования. Оценка сроков тестирования, выявление среды тестирования, объединение всей информации, полученной при работе с требованиями.
- Создание тестовой документации. Написание сценариев, которые позволят проверить функционал.
- Тестирование прототипа. Тестирование основного функционала продукта, корректировка целей, добавление фичей.
- Основное тестирование. Выполнение общей проверки продукта.
- Стабилизация. На данном этапе происходит работа над устранением багов.
- Эксплуатация. Проводится регресс-тестирование, устранение ошибок, которые нашел конечный пользователь.
Прежде, чем переходить к описанию каждого цикла тестирования, необходимо запомнить важное правило: переход к следующему этапу допустим лишь после полного завершения работы на предыдущем.
Этап 1. Работа с требованиями
Команда тестирования знакомится с требованиями заказчика, функционалом продукта. На данном этапе важно непрерывное общение команд, необходимо задавать вопросы разработчикам.
Тщательное изучение требований должно:
- выявить противоречия в требованиях;
помочь определить потенциальные дефекты в функционале.
Общение является ключевым аспектом в разработке продукта, а продуманный roadmap (дорожная карта, стратегический план по реализации функционала продукта по определенным датам) позволит устранить нелогичность будущих внесенных изменений в продукт.
Этап 2. Разработка стратегии тестирования и планирование процедур контроля качества
Данный этап важен для лидов или менеджеров, поскольку от понимания полученной на предыдущем этапе информации зависит качество тестирования.
Тест — лид должен:
- Резюмировать полученную информацию;
- Оценить сроки тестирования;
- Разработать стратегию тестирования: определить виды тестирования, которые можно применить к проекту, проанализировать имеющиеся среды и ресурсы, что имеется для проведения тестирования, описать приоритеты для непредвиденных ситуаций, как и где будет вестись тестовая документация;
- Определение среды тестирования: какое оборудование необходимо для тестирования;
- Составить план, который содержит описание, с чего начинается и чем заканчивается тестирование, и что будет тестироваться.
Этап 3. Создание тестовой документации
Цель данного этапа — создать документацию, объем которой будет охватывать детализацию, ход работ, а также вносить ясность для заказчика. Общение с другими командами, понимание желаний заказчика напрямую влияют на качество тестовой документации. После проведенного тестирования можно проанализировать его успешность.
Тестовая документация может состоять из:
- тестовых сценариев: что и как будет проверяться при регресс-, дымовом и приемочном тестированиях;
- отчетности: результаты тестирования, списка багов и их серьезность;
методологий тестирования.
Детализация тестовой документации зависит от проекта, поэтому она может отличаться и по охвату, и по формату, и по объему. Для тестировщика важно поддерживать документацию в актуальном виде, вносить любые изменения, связанные с изменением итогового продукта.
Этап 4. Тестирование прототипа
При создании и тестировании прототипа продукта необходимо выявить основные отклонения от ожидаемого результата и соответствие с бизнес-стратегией. Здесь же выявляются ошибки в работе логики основного функционала, устраняются найденные уязвимости и дефекты, допущенные на этапе разработки. Заказчик может сам участвовать в процессе тестирования прототипа, чтобы оценить, на каком этапе находится разработка продукта.
После тестирования выдвигаются пожелания со стороны заказчика. Новые пожелания необходимо задокументировать, оценить сроки, внедрить в проект и передать на осмотр заказчику.
Самый подходящий метод тестирования прототипа — проведение закрытого бета-тестирования, когда продукт тестирует продукт малое количество людей, которые в итоге будут использовать его после релиза. Это помогает учесть пожелания конечных пользователей.
Этап 5. Основное тестирование
Тестирование программного обеспечения является самым длительным и объемным процессом. Здесь формируются репорты о найденных дефектах, выполняется набор тестовых сценариев, создается тестовая среда, выполняется тестирование, виды которого были задокументированы на этапе создания тестовой документации. Именно на этом этапе проводятся смоук- и регресс-тестирование.
Важно понимать: невозможно найти все ошибки в продукте. Но и не найти ошибки при тестировании можно считать провалом. Главная цель — не сделать идеальный продукт без ошибок, а найти максимальное количество дефектов, которые потенциально могут сломать систему.
Этап 6. Стабилизация
Наверное, самый непонятный с точки зрения формулировки этап. На нем заканчивается работа с пожеланиями заказчика и фиксируются найденные баги. Он является связующим звеном между командой тестирования и командой разработчиков. На протяжении создания онлайн-ресурса команда разработчиков занималась своими делами, реализуя «хотелки» заказчика, а тестировщики репортили о новых дефектах. А на этапе стабилизации разработчики начинают слушать тестировщиков, устраняя то, что уже работает, но некорректно.
Если продукт существует в какой-то большой системе, то на данном этапе также проверяется коммуникация системы и продукта, то есть проводится интеграционное тестирование.
Этап 7. Эксплуатация и поддержка
Пожалуй, самый волнительный период. После устранения дефектов команда разработчиков переходит в этап тестирования продукта в продакшн-среде. Так как многие ставят точку на проекте после релиза, очень важно подметить, что здесь происходит не только релиз продукта, но и пост-релизовая поддержка.
При всем желании нельзя учесть все нюансы использования, воссоздать ту среду, в которой будет использован продукт. Поэтому на данном этапе необходимо сделать акцент на том, что говорят пользователи. Теперь они — ваши главные тестировщики. Ваш продукт становится частью жизнедеятельности людей, поэтому устранение дефектов и их поиск проводятся быстро, но тщательно. Не всегда конечный пользователь может предоставить информацию о том, что он сделал для получения ошибки, поэтому за повторение дефекта берется QA-команда.
Заключение
Тестирование программного обеспечения — долгий и кропотливый процесс, результатом которого является каждая выявленная ошибка в системе. Тестирование начинается ещё на этапе проектирования работы и продолжается даже после выпуска продукта. Тестировщик должен четко формулировать свою позицию, почему найденная ошибка — действительно дефект; должен прислушиваться после релиза к позиции конечного пользователя и помнить, что ничто в этом мире не идеально.
Тестирование компьютера — Подробное руководство
Тестирование компьютера необходимо для быстрого выявления любых неполадок в работе системы как на программном, так и на аппаратном уровне.
Если программа-тестировщик показывает результат, который отличается от нормального, это свидетельствует о том, что одно или несколько устройств работают неверно.
Содержание:
Чтобы получить более точный результат диагностики, следует проверять компьютер несколькими разными программами.
Диагностика с помощью утилиты Aida64
Данная программа способна предоставить отчет о результатах работы cразу всех компонентов системы (железа и программ).
Утилита является самой популярной программой для тестирования персональных компьютеров и ноутбуков.
Внешний вид интерфейса программы AIDA64
Интерфейс приложения очень простой, поэтому каждый пользователь сможет провести тесты необходимого компонента или всей системы в целом.
Интерфейс приложения представлен на русском языке.
Проведем общее сканирование компьютера на производительность и возможные неполадки с помощью данного приложения.
Чтобы начать процесс тестирования, следуйте инструкции:
- Откройте программу и нажмите на вкладку «Тест», которая находится в левом нижнем углу программы, как показано на рисунке;
Начало тестирования компьютерной системы
- На вкладке тестирования представлены все возможные варианты сканирования таких компонентов, как память. Также можно провести диагностику процесса записи в память и задержки в памяти.
Чтобы протестировать один из элементов, выберите его на него, а затем нажмите на кнопку «Старт» вверху на панели инструментов;
Начало процесса тестирования записи в память
- Далее программа покажет мощность процессора в сравнении с другими популярными моделями и основные характеристики системы, а также возможные неполадки;
Результаты тестирования работы процессора и записи в память
Следуйте нижеприведенной инструкции, чтобы получить подробный отчет о системе:
- Зайдите в основное окно программы и нажмите на клавишу «Отчет», которая расположена на главной панели инструментов;
Начало формирования отчета о производительности компьютерной системы
- Откроется мастер отчетов. Нажмите на клавишу далее для более детальной настройки исходящего отчета;
Открытие мастера отчетов
- Выберите направление отчета. Он может быть составлен на основе программных или аппаратных компонентов. В данном случае аппаратный отчет будет состоять из результатов диагностики аппаратных разделов;
Выбор профиля отчета
- Затем выберите удобный для вас формат отчета и дождитесь завершения формирования конечного документа;
- Пример текстового формата исходного отчета об аппаратных разделах представлен на рисунке ниже.
Конечный результат тестирования в виде текстового отчета
к содержанию ↑
Тестирование процессора. Программа CPU Tester
Тестирование процессора способно показать его детальные параметры.
Также с помощью такого теста можно определить существующие неполадки центрального процессора, которые тормозят работу компьютера.
Совет! Если вы недавно приобрели компьютер, желательно протестировать процессор и другие аппаратные компоненты, чтобы убедится в правильности всех предоставленных производителем аппаратных характеристик.
Осуществить тестирование процессора можно с помощью программы CPU Tester.
Внешний вид программы CPU Tester
Данная утилита обладает мощным функционалом для тестирования процессора устройства и определения его основных параметров.
Также программа способна определить неполадки и неисправности и указать их характер. Утилита также доступна в режиме онлайн.
Во время проведения тестирования необходимо закрыть все работающие программы и игры, ведь они будут дополнительно нагружать процессор и конечный результат тестирования не будет соответствовать действительности.
После закрытия всех запущенных программ, нажмите на кнопку «Запустить Тест», чтобы начать процесс проведения и формирования тестирования центрального процессора.
Процесс проведения отчетности
После окончания процесса тестирования программа откроет новое пользовательское окно, в котором будут указан все результаты диагностики и параметры процессора, как показано на рисунке ниже.
При желании отчет можно напечатать.
Конечный результат тестирования процессора с помощью программы CPU Tester
В данном примере теста, показано, что процессор работает стабильно, без каких-либо сбоев.
к содержанию ↑
Тестирование блока питания
Если ваш персональный компьютер слишком быстро нагревается, при этом все вентиляторы прочищены и работают стабильно, необходимо проверить исправность блока питания.
Необходимо проверить подачу напряжения к блоку питания.
- Откройте крышку компьютера и отключите блок питания от корпуса;
Блок питания компьютера
Совет! Чтобы потом закрепить блок питания на прежнее место, можете сфотографировать его первоначальное положение.
- Подключите блок питания к вашей сети и протестируйте переключатель.
Чтобы проверить работу блока питания на программном уровне, можно использовать программу SpeedFan, которая способна регулировать работу блока и управлять режимами работы вентиляторов компьютера.
к содержанию ↑
Тестирование оперативной памяти. Программа Memtest
Для тестирования оперативной памяти лучше всего использовать утилиту Memtest, которая предназначена регулировать работу и определять неисправности в памяти компьютера.
Интерфейс утилиты Memtest
Тестирование проводится следующим образом:
- Скачивается и устанавливается программное обеспечение для тестирования на сайте разработчика www.memtest.org;
- Затем необходимо создать загрузочный диск или флеш-носитель. Тестирование диска будет проводиться в оперативной памяти, поэтому можно будет определить ее работоспособность;
- Необходимо загрузить компьютер с только что созданного диска. Настроить порядок загрузки устройств можно в БИОСе компьютера.
Если процесс тестирования длиться очень долго и не останавливается, это говорит о том, что система работает нормально и оперативной памяти компьютера отсутствуют неисправности.
Если будут найдены какие-либо неполадки, процесс тестирования будет остановлен и пользователь будет уведомлен о найденных ошибках. Затем начнётся процесс запуска операционной системы вашего персонального компьютера или ноутбука.
Пример тестирования оперативной памяти с помощью программы Memtest
к содержанию ↑
Тестирование монитора. Программа IsMyLcdOK
Тестирования монитора проводят, чтобы найти нерабочие или как их еще называют «битые» пиксели.
Такие пиксели неспособны передавать цвет или информацию, потому на экранах с маленьким разрешением они будут видны.
Большое количество таких пикселей говорит о том, что монитор некачественный или бракованный.
Лучшая утилита для проверки изображения монитора – это IsMyLcdOK. Данное приложение позволяет пользователю быстро определить количество битых пикселей дисплея.
Процесс тестирования выглядит следующим образом: экран полностью окрашивается в определенный цвет, пользователю необходимо нажать мышкой на любой место для того, чтобы кран окрасился в новый цвет.
Такое изменение цветов помогает невооруженным глазом определить нерабочие пиксели.
Инструкция по работе с программой IsMyLcdOK
Скачать IsMyLcdOK можно здесь.
к содержанию ↑
Тестирование видеокарты. Программа FurMark
Видеокарту необходимо регулярно тестировать на наличие неисправностей, особенно если вы владелец игрового компьютера или ноутбука.
Протестировать видеокарту поможет бесплатная утилита под названием FurMark.
Внешний вид приложения FurMark
Чтобы начать тестирование видеокарты, нажмите на клавишу «GPU-Z», как показано на рисунке выше.
Результат тестирования видеокарты компьютера
Тематические видеоролики:
испытуемого в определенные условия, которым он должен следовать, что накладывает определенные ограничения на проявление его личностных свойств. Безусловными плюсами полупроективных методик является простота количественной обработки результатов, доступность перевода методик в компьютерную форму, меньшая уязвимость от субъективизма интерпретатора.
Общепринятым является представление о том, что проективные тесты имеют преимущество над субъективными, поскольку позволяют выявить неосознаваемые компоненты психического. Однако необходимо заметить, эти неосознаваемые компоненты вовсе не обязательно проявятся в результатах тестирования. По мнению Г. У. Оллпорта, нормальный, адекватно приспособленный субъект при проведении проективных тестов дает ответы, аналогичные сознательному отчету в субъективных тестах, либо благодаря достаточно развитому самоконтролю никак не проявляет свои доминирующие мотивы. Поэтому особое значение проективное тестирование приобретает только тогда, «когда в проективных реакциях обнаруживается эмоционально нагруженный материал, противоречащий сознательным отчетам. И только тогда можно с уверенностью говорить о наличии или отсутствии невротических тенденций» [305, с. 59].
Компьютерное тестирование – недавно возникшее направление психодиагностических исследований (обследований), связанное с использованием средств электронно-вычислительной техники. Появление компьютерной психодиагностики обусловлено развитием информационных технологий. Попытки автоматизировать предъявление стимульного материала испытуемому и последующую обработку результатов предпринимались начиная с 30-х гг. XX в. Но лишь с 70-х гг. начинается подлинное развитие компьютерной психодиагностики в связи с появлением персональных компьютеров. С 80-х гг. компьютерные тесты разрабатываются в массовых масштабах. Сначала как компьютерные версии уже известных бланковых методик, а в 90-е гг. как специальные методики, учитывающие возможности современной техники и неупотребимые в бланковом виде, поскольку рассчитаны на сложный, изменяющийся в пространстве и времени стимульный материал, специфическое звуковое сопровождение и т. п. Начало XXI века отмечено тем, что все чаще управление тестированием передается компьютеру. Если в прошлые годы автоматизировались отдельные стадии исследования, например предъявление материала (очень удобно использовать компьютер вместо тахис-тоскопа), обработка данных (особенно громоздких
вобработке тестов типа MMPI, 16PF, социометрии), интерпретация результатов (тест Люшера), то на современном этапе все чаще можно встретить программы, которые берут на себя все обследование целиком, вплоть до постановки диагноза, что сводит необходимость присутствия психолога к минимуму. И в этом есть свои плюсы и минусы.
Безусловными достоинствами компьютерных тестов (КТ) являются: быстрое проведение; высокая скорость и безошибочность обработки; возможность безотлагательного получения результатов; обеспечение стандартных условий тестирования для всех испытуемых; четкий контроль процедуры тестирования (невозможен пропуск вопросов, при необходимости может быть фиксация времени каждого ответа, что особенно важно для тестов на интеллект); возможность исключения психолога как дополнительной переменной (что имеет особое значение при проведении экспертизы); наглядность и занимательность процесса (поддержка внимания с помощью цвета, звука, игровых элементов, что особенно важно для обучающих программ); легкая архивация результатов; возможность объединения тестов в батареи (пакеты программ) с единой итоговой интерпретацией; мобильность экспериментатора (весь инструментарий на одной дискете); возможность проведения массовых исследований (например, через Интернет).
Недостатки компьютерных тестов: сложность, трудоемкость и дороговизна разработки программ; необходимость дорогостоящей компьютерной техники; сложность использования ЭВМ
вполевых условиях; необходимость специального обучения испытуемого работе с КТ; трудности работы с невербальным материалом, особая сложность перевода в компьютерную форму проективных тестов; отсутствие индивидуального подхода к тестируемому (потеря части психодиагностической информации, получаемой в беседе и наблюдении); латентность этапов обработки и интерпретации данных (качество этих процедур полностью зависит от разработчиков программ). У некоторых испытуемых при взаимодействии с компьютером могут возникать эффекты «психологического барьера» или «сверхдоверия» [56, с. 28]. Поэтому данные о валидности, надежности и репрезентативности бланковых тестов не могут быть автоматически перенесены на их компьютерные аналоги, что ведет к необходимости новой стандартизации тестов.
Недостатки КТ вызывают настороженное отношение к ним психологов. Мало используются КТ в клинической психологии, где цена ошибки слишком высока. Л. С. Выготский выделял три уровня психодиагностики: симптоматический (выявление симптомов), этиологический (выявление причин) и типологический (целостная, динамическая картина личности, на основе чего строится прогноз) [71, с. 257–321]. Компьютерная психодиагностика на сегодняшний день находится на низшем уровне – уровне симптоматического диагноза, практически не давая материала для выявления причин и вынесения прогноза.
Но, по-видимому, КТ имеют большое будущее, где наверняка многие из перечисленных недостатков компьютерной психодиагностики будут решены благодаря дальнейшему развитию электронной техники и совершенствованию психодиагностических технологий. Залогом такого оптимизма является нарастающий интерес науки и практики к компьютерной диагностике, в арсенале которой уже сейчас имеется свыше 1000 КТ [54, с. 338].
Если попытаться классифицировать ныне существующие КТ, то можно выделить следующие их виды:
1. По структуре а) аналоги бланковых тестов; б) собственно КТ.
2. По количеству тестируемых а) КТ индивидуального тестирования;
б) КТ группового тестирования (для одновременной подачиидентичного материала на компьютерах, объединенных влокальную сеть).
3. По степени автоматизации тестирования а) автоматизирующие один или несколько этапов обследования; б) автоматизирующие все обсследование.
4. По задаче а) диагностические КТ;
б) обучающие КТ (тесты-тренажеры, развивающие программы). 5. По адресату а) профессиональные психологические;
б) полупрофессиональные; в) непрофессиональные (развлекательные).
Пользователем профессиональных КТ является психолог, поэтому они разрабатываются специализированными лабораториями или центрами компьютерной психодиагностики (из числа которых стоит упомянуть центр «Гуманитарные технологии» в Москве, ЗАО «Иматон-М», лабораторию клинической психологии Психоневрологического института им. В. М. Бехтерева в Санкт-Петербурге и др.). Эти тесты имеют ряд специфических особенностей: 1) наличие архива (базы данных); 2) наличие пароля на вход в тест или базу данных для обеспечения конфиденциальности результатов; 3) развернутая интерпретация результатов с использованием профессиональных терминов, коэффициентов, с построением графиков (профилей); 4) наличие информации о разработчиках методики, сведений о валидности и надежности, справочных материалов о лежащих в основе методики теоретических положениях. Полупрофессиональные КТ ориентированы на специалистов смежных профессий, например на педагогов, менеджеров по персоналу. Такие тесты зачастую снабжены редуцированной интерпретацией без использования специальной лексики, просты в освоении и работе. Тесты подобного уровня могут быть предназначены и для неспециалиста, рядового пользователя персонального компьютера, интересующегося психологией. Наконец, существует также большое число непрофессиональных КТ, направленных на популяризацию психологических идей или преследующих развлекательные цели.
Пользуясь профессиональными или полупрофессиональными КТ, необходимо соблюдать те же этические принципы, что и при бланковом тестировании. Важно не распространять результаты тестирования и защищать свои файлы паролем, особенно если у компьютера несколько пользователей. И главное – «не сотворить себе кумира». Помнить, что КТ является только средством, только помощником и имеет свои границы применения (знанием чего профессиональный психолог отличается от шарлатана от психологии).
13.8. Требования к построению и проверке тестовых методик
Известны два пути создания психодиагностических методик: адаптация известных методик (зарубежных, устаревших, с иными целями) и разработка новых, оригинальных методик.
Адаптация теста – это комплекс мероприятий, обеспечивающих адекватность теста в новых
условиях его применения. Этапы адаптации [54, с. 8]: 1.Анализ исходных теоретических положений автора теста.
2.Для иностранных методик перевод теста и инструкций кнему на язык пользователя (с обязательной экспертнойоценкой соответствия оригиналу).
3.Проверка надежности и валидности в соответствии с психометрическими требованиями. 4.Стандартизация на соответствующих выборках.
Наиболее серьезные проблемы возникают при адаптации вербальных тестов (опросников, вербальных субтестов в составе тестов интеллекта). Эти проблемы связаны с языковыми и социокультурными различиями между народами разных стран. Многовариантность перевода какого-либо термина, невозможность точной передачи идиоматических оборотов – обычное явление при переводах с языка на язык. Иногда бывает настолько сложно подобрать языковые и смысловые аналоги заданий теста, что полная адаптация теста становится сопоставима с разработкой оригинальной методики.
Понятие адаптации приложимо не только к зарубежным методикам, которые мы хотим использовать в наших условиях, но и к устаревшим отечественным методикам. А устаревают методики достаточно быстро: в связи с изменчивостью языка и социокультурных стереотипов методики должны корректироваться каждые 5–7 лет, что подразумевает уточнение формулировок вопросов, коррекцию нормативов, обновление стимульного материала, пересмотр интерпретационных критериев.
Самостоятельная разработка тестовой методики обычно имеетследующие этапы [77; 54;
156; 212]: Выбор предмета (явления) и объекта исследования (контингента).
1.Выбор вида теста (объективный, субъективный, проективный), типа заданий (с предписанными ответами, со свободными ответами) и шкал (числовые, вербальные, графические).
2.Подбор первичного банка заданий. Может осуществлятьсядвумя путями: вопросы формулируются, исходя из теоретических представлений об измеряемом явлении (факторноаналитический принцип), или вопросы подбираются в ?соответствии с их дискриминативностью, т. е. способноетью отделять испытуемых по наличию требуемого признака (критериально-ключевой принцип). Второй принципявляется эффективным в тестах отбора (например, профессионального или клинического).
3.Оценка заданий первичного банка (оценка содержательнойвалидности теста, т. е. соответствия каждого из заданий измеряемому явлению и полноты охвата изучаемого явлениятестом в целом). Проводится с помощью метода экспертной оценки.
4.Предварительное тестирование, формирование банка эмпирических данных.
5.Эмпирическая валидизация теста. Проводится с помощьюкорреляционного анализа оценок теста и показателей повнешнему параметру изучаемого свойства (например,школьной успеваемости при валидизации теста интеллекта; врачебного диагноза при валидизации клинических тестов; данных других тестов, валидность которых известна,и др.).
6.Оценка надежности теста (устойчивости результатов к действию случайных факторов, внешних и внутренних). Наиболее часто оценивается надежность ретестовая (соответствие результатам повторного тестирования, обычно через несколько месяцев), надежность частей теста (устойчивостьрезультатов отдельных задач или групп задач, например, по методу «четное – нечетное») и надежность параллельных форм, если таковые существуют.
7.Методика признается надежной, если коэффициент корреляции результатов (первичного и повторного тестирования; одной и другой частей теста; одной и другой параллельных форм) составляет не менее 0,75. При более низком показателе надежности производится корректировка заданий теста, переформулировка вопросов, снижающих надежность.
8.Проводится стандартизация теста, т. е. приведение процедуры и оценок к общепринятым нормативам. Стандартизация оценок подразумевает преобразование нормальнойили искусственно нормализованной шкалы первичных оценок (эмпирических значений изучаемого показателя) воценки шкальные (отражающие место в распределении результатов выборки испытуемых). Виды шкальных оценок:стены (1–10), станайны (1–9), Т-оценки (10–100) и др.
9.По возможности определяется прогностическая валид-ность, т. е. информация о том, с какой степенью точностиметодика позволяет судить о диагностируемом психологическом качестве спустя определенное время после измерения. Также определяется по внешнему критерию, но данные по нему собираются спустя некоторое время послетестирования.
Таким образом, надежность и валидность – это собирательные понятия, включающие в себя несколько видов показателей, отражающих направленность методики на предмет исследования (валидность) и объект исследования (надежность). Степень надежности и валидности отражают соответствующие коэффициенты, указываемые в сертификате методики.
Создание методики – трудоемкая работа, требующая развитой системы заказа на методики с соответствующей оплатой труда разработчиков. В настоящее время ввиду низкой
платежеспособности основной массы психологов сфера профессиональной разработки отечественных тестов развита весьма слабо, что ведет к массовому использованию методик устаревших, не прошедших оценку валидности и надежности, либо переведенных с иностранного языка без проведения процедуры полноценной адаптации.
Процедуру разработки тестовых методик часто именуют конструированием тестов, а теорию (науку) конструирования – тес-тологией. Источники более подробной информации о тестоло-гии приводились в начале этой главы.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
О чем речь? Тестирование программного обеспечения – это необходимый процесс в ходе разработки, во время которого выявляются все проблемы в работе софта. Какими бы классными не были программисты, ошибки будут всегда, поэтому необходима регулярная проверка.
Каким бывает? Тестирование бывает разных видов: автоматическое и ручное, функциональное и нефункциональное, с доступом к исходному коду и без него. В любом случае важно придерживаться определенных правил, чтобы продукт был проверен от и до.
В статье рассказывается:
- Необходимость тестирования программного обеспечения
- Формы тестирования программного обеспечения
- Виды тестирования ПО
- Тестирование «белого ящика» и «чёрного ящика»
- Место тестирования в процессе создания ПО
- Этапы тестирования программного обеспечения
- Документация для тестирования ПО
- Правила качественного тестирования ПО
- Навыки и качества специалиста по тестированию программного обеспечения
- Лучшие курсы по специальности тестировщика ПО
- 7 книг про тестирование программного обеспечения
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Необходимость тестирования программного обеспечения
Перечислим классические программные ошибки:
- Пользователь вбивает в поле ответ на вопрос и жмет клавишу Далее программа завершает работу, а информация не сохраняется. То же самое происходит и при следующей попытке.
- Пользователь играет в шутер. Вдруг персонажи начинают странно двигаться, подергиваться и т.д. Сначала программа попросту не реагирует на нажатие клавиш, а потом и вовсе выдаёт «Game over».
- Пользователь заходит в личный кабинет интернет-магазина и нажимает «Оплатить». Однако его перебрасывает на главную страницу. Кроме того, в аккаунт приходится заново входить.
При этом не существует безошибочных программ, которые всегда выдают лишь нужные результаты. Разработчики, как правило, допускают некоторые ошибки в коде, что впоследствии усложняет пользователю процесс взаимодействия с приложением. В некоторых случаях дефекты несущественны и малозаметны, но встречаются и такие недочёты, из-за которых программа вообще не может работать.
Перед тем как человек начнет пользоваться новой версией компьютерной программы, сайта или мобильного приложения, продукт должен быть проверен инженерами-тестировщиками. Они отыскивают слабые места в коде, из-за которых программа начинает работать неправильно. Для этого тестировщики создают различные ситуации, при которых возможно возникновение ошибок.
Формы тестирования программного обеспечения
Выделяют два вида тестирования программного обеспечения: ручное и автоматическое. В первом случае человек либо самостоятельно проверяет функциональность программы, либо делает это с помощью специального ПО и API с использованием некоторого набора инструментов.
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Уже скачали 24256
Ручной метод является наиболее сложным, так как специалисту необходимо настраивать среду и проводить тесты. Плюс ко всему, нельзя забывать о человеческом факторе: тестировщик может ошибиться или пропустить ту или иную стадию тестового скрипта.
В случае автоматического тестирования все мероприятия выполняет машина, работающая по определенному скрипту. Эти тесты отличаются друг от друга по уровню сложности: от проверки одного метода в классе до обеспечения условий, в которых выполнение последовательности сложных операций в пользовательском интерфейсе приводит к одним и тем же результатам.
Данный способ намного стабильнее и точнее, чем ручной. Но стоит учитывать, что эффективность автоматического тестирования зависит от правильности тестовых скриптов.
Автоматическое тестирование представляет собой важнейший элемент беспрерывной интеграции и бесперебойной поставки. Кроме того, это хороший метод масштабирования процесса контроля качества по мере добавления новых функций в программу. При этом выполнять ручное глубокое тестирование все же полезно.
Виды тестирования ПО
Существует несколько видов тестирования программного обеспечения. Поговорим о каждом из них более подробно.
Функциональное и нефункциональное
Функциональное тестирование — это проверка функций программы. Специалист нажимает на всевозможные клавиши и пытается вести себя необычно, дабы обнаружить недочеты проекта.
Как правило, тестируются только готовые функции, которые уже должны правильно работать. Однако объектами проверки могут стать и «неожидаемые» функций и варианты поведения приложения.
Нефункциональное тестирование представляет собой проверку производительности, надежности и отзывчивости приложения, а также ее соответствия нормам безопасности.
Статическое и динамическое
Статическая проверка выполняется с выключенной программой. Специалисты открывают документацию приложения, анализируют указанные в ней функции, а затем изучают код для оценки качества реализации.
Динамическое тестирование выполняется после статического. В этом случае необходимо включить программу и на практике узнать, насколько работоспособными являются ее функции.
Обе эти стадии являются необходимыми.
Прочие разновидности тестирования
Можно выделить и некоторые другие типы проверки. Каждая, даже самая маленькая, задача может быть выделена как отдельная разновидность. Однако мы приведем список только самых распространённых вариантов:
- Нагрузочное. Речь идёт о тестировании программы в условиях высоких нагрузок, которые могут быть больше, чем планировали разработчики. Эти тесты обязательны для онлайн-сервисов, которые должны правильно работать даже при наличии большого числа посетителей на пиковой или регулярной основе (онлайн-магазины во время распродаж, новостные ресурсы при резонансных событиях и т.д.).
- Тестирование UX. В этом случае специалист сосредотачивается на пользовательском опыте. Тестировщику необходимо поставить себя на место клиента. На основе составленных им замёток в процессе взаимодействия с приложением будут вноситься соответствующие изменения.
- Конфигурационное. Это проверка совместимости программы с аппаратным обеспечением и прочими software-элементами (различными версиями OS и процессоров). Конфигурационное тестирование необходимо для межплатформенных программ и в процессе перехода поставщика платформы на принципиально новую аппаратную базу (яркий пример — появление ноутбуков с чипами М1 от Apple).
Тестирование «белого ящика» и «чёрного ящика»
При проверке программного и аппаратного обеспечения термины «тестирование белого ящика» и «тестирование чёрного ящика» указывают на то, есть ли у разработчика тестов доступ к исходному коду программы (если нет, то проверка выполняется посредством пользовательского интерфейса или прикладного программного интерфейса, предоставленного тестируемым модулем).
Тестирование белого/прозрачного ящика (от английского white-box testing) подразумевает, что у разработчика теста есть доступ к исходному коду приложения и он имеет возможность писать код, связанный с библиотеками тестируемого ПО. Такое положение дел часто встречается при юнит-тестировании (англ. unit testing). В этом случае проверке подвергаются лишь определенные элементы системы.
Благодаря такому тестированию выявляется функциональность и стабильность тех или иных частей программы. В процессе проверки белого ящика применяются метрики покрытия кода.
Тестирование черного ящика имеет смысл в том случае, если специалист может взаимодействовать с программным обеспечением через интерфейсы, доступные для заказчика или пользователя, либо через внешние интерфейсы, которые дают возможность другому компьютеру или другому процессу подключиться к системе для тестирования.
К примеру, тестирующий модуль виртуально нажимает на клавиши или на кнопки мыши в проверяемом приложении посредством механизма взаимодействия процессов. Эти операции должны приводить к такому же результату, что и реальные нажатия.
Скачать
файл
Чаще всего такое тестирование выполняется с применением спецификаций или иных документов, в которых указаны требования к системе. Критерий покрытия формируются из покрытия структуры входных данных, покрытия требований и покрытия модели (при проверке на базе моделей).
Понятия «альфа-тестирование» и «бета-тестирование» связаны с этапом до выпуска продукта, объёмом тестирующего сообщества и ограничениями по способам проверки. Тестирование «белого ящика» и «чёрного ящика» относятся к методам, которыми пользуется специалист.
Бета-тестирование ограничивается техникой чёрного ящика (однако постоянная часть тестировщиков, как правило, продолжает проверку белого ящика одновременно с бета-тестированием). Исходя из этого, понятие бета-тестирования описывает этап реализации программного продукта (ближе к выпуску, чем «альфа») или определенную команду тестировщиков и процесс, выполняемый этой командой.
Таким образом, тестировщик может проводить мероприятия по тестированию белого ящика даже после того, как программа перейдет на этап «бета». Однако это возможно в том случае, если специалист не является частью «бета-тестирования» (группы/процесса).
Место тестирования в процессе создания ПО
Если вовремя приступить к тестированию, то можно уменьшить расходы и сроки, необходимые для исправления ошибок. При этом в жизненном цикле разработки ПО (SDLC) проверка может начинаться со стадии сбора требований и продолжаться до развертывания программного обеспечения.
Многое зависит и от принятой модели развития. К примеру, модель «Водопад» предполагает, что формальное тестирование выполняется на этапе тестирования. Если же используется инкрементальная модель, то проверка осуществляется в конце каждого приращения/итерации и вся программа тестируется на конечном этапе.
Дарим скидку от 60%
на курсы от GeekBrains до 03 декабря
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку
Тестирование программного обеспечения выполняется в различных формах на каждой стадии SDLC:
- На стадии сбора требований тестированием является проверка этих требований.
- На стадии проектирования тестированием является проверка проекта для повышения качества дизайна.
- После написания кода тестированием считается итоговая проверка.
Этапы тестирования программного обеспечения
Анализ тестирования
На этой стадии выполняется анализ функциональных и нефункциональных требований. К примеру, бизнес-требований, функциональной документации, документа технической спецификации и так далее.
Читайте также
При сборе требований необходимо учесть мнение клиентов. Это нужно для того, чтобы определить реальные и предполагаемые результаты тестирования, которые чаще всего являются нефункциональными. Например, удобство пользования, масштабируемость, тестируемость, производительность и безопасность.
Если выявляются требования, которые нельзя проверить в связи с теми или иными ограничениями системы и среды тестирования, то о них нужно уведомить бизнес-команду.
На данной стадии тестировщики рассматривают и анализируют требования, а также формируют соответствующие тесты. Кроме того, они определяют приоритеты для проверки — членов команды.
В список требований к среде тестирования входят требования к аппаратному и программному обеспечению. На их основе нужно будет выполнять проверку ПО. Одновременно с этим начинаются планирование и разработка программного обеспечения.
Планирование и подготовка теста
На этой стадии разрабатываются план тестирования, тестовый набор, данные теста. Кроме того, выполняется подготовка среды тестирования.
План тестирования — важнейший документ, который нужно составить в первую очередь. В нем указываются цели, объём, характеристики, проверяемые и непроверяемые функции, разновидности проверок, которые будут производиться, роли и обязанности группы тестирования, критерии входа и выхода, а также предположения.
Параллельно с этим специалисты подготавливают тестовые наборы и тестовые данные.
Поговорим о нескольких важных моментах более подробно. Тестовый пример представляет собой документ, в котором указываются этапы, которые следует реализовать для тестирования любой функциональности с предполагаемым и реальным результатом. Если реальный результат противоречит предполагаемому, то открывается ошибка. Для каждого отдельно взятого требования формируются положительные и отрицательные тестовые примеры.
Это делается с помощью матрицы прослеживаемости требований (RTM) — документа, который сравнивает требования с тестовыми примерами. Нужно это для того, чтобы удостовериться в полноценном выполнении проверки.
Каждый действительный и недействительный набор тестовых данных необходимо подготовить для всех тестовых случаев. Кроме того, нужно составить документ с тестовыми данными, которые создаются с помощью определенных алгоритмов и инструментов. В процесс подготовки тестового набора входят несколько стадий: его разработка, выбор, оценка, расстановка приоритетов и т.д.
Эрик Д. Свайн создал метод генерации тестовых случаев, в котором применяются соответствующие диаграммы последовательности. Данный способ позволяет выявить ограничения для конкретных артефактов. Техники генерации тестовых наборов имеют смысл при необходимости выявления синхронизации и зависимости вариантов использования и сообщений, взаимодействия объектов и недочетов функционирования.
Подготовка тестовой среды — крайне важная стадия. После написания фрагмента кода его необходимо проверить с помощью инструмента управления конфигурацией. Далее подготавливается тестовая сборка.
Выполнение теста
На данной стадии специалисты выполняют ПО с учетом контрольных примеров. При выявлении несоответствий между реальными и предполагаемыми результатами тестировщик открывает ошибки и передаёт их разработчикам.
Закрытие теста
На этой немаловажной стадии составляются отчёты о тестировании, которые свидетельствуют о том, что вся система, интеграция, приемочное тестирование пользователя выполнены. Кроме того, в документах указывается, что было сформировано решение, все требования проверены и нет критической ошибки, ожидающей исправления или перепроверки.
Все тестовые артефакты просматриваются менеджером. После этого специалисты приступают к выпуску ПО. Выполняется анализ первопричин для последующего проведения мозгового штурма касательно удачных и неудачных моментов, а также зон роста. На данный момент сформировано множество инструментов и техник анализа первопричин, которые послужили базой для многочисленных исследований.
Документация для тестирования ПО
Тест план (Test Plan) представляет собой документ, в котором указываются все необходимые для тестирования мероприятия. В нем описываются объект, стратегии, расписания, критерии начала и завершения проверки, указывается требуемое оборудование и специальные знания, а также выполняется оценка рисков.
В данном документе должны иметься ответы на нижеперечисленные вопросы:
- Что нужно протестировать?
- Каким образом должно осуществляться тестирование?
- Когда будет выполняться проверка?
- Каковы критерии начала тестирования?
- Каковы критерии завершения тестирования.
Только до 4.12
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300
Важнейшие разделы:
- Идентификатор тест плана (Test plan identifier).
- Введение (Introduction).
- Объект тестирования (Test items).
- Функции, которые следует проверить(Features to be tested).
- Функции, которые не нужно проверять (Features not to be tested).
- Тестовые подходы (Approach).
- Критерии прохождения тестирования (Item pass/fail criteria).
- Критерии приостановления и возобновления тестирования (Suspension criteria and resumption requirements).
- Результаты тестирования (Test deliverables).
- Задачи тестирования (Testing tasks).
- Ресурсы системы (Environmental needs).
- Обязанности (Responsibilities).
- Роли и ответственность (Staffing and training needs).
- Расписание (Schedule).
- Оценка рисков (Risks and contingencies).
- Согласования (Approvals).
Нельзя не упомянуть чек-лист (check list). В данном документе указываются объекты, которые необходимо протестировать. При этом чек-листы могут различаться по степени детализации.
Как правило, документ включает в себя лишь операции, которые нужно выполнить, а не предполагаемые результаты.
Тестовый сценарий (test case) представляет собой артефакт, в котором описывается комплекс мероприятий, определенных условий и параметров, требуемых для проверки реализации тестируемой функции или её элемента.
Перечислим составные части тест кейса:
- Предусловия (PreConditions). Это перечень операций, которые необходимы для приведения системы к пригодному для выполнения основного теста состоянию. Иногда под PreConditions подразумевается набор условий, реализация которых указывает на то, что система пригодна для проведения основного теста.
- Шаги (Steps). Речь идет о перечне операций, с помощью которых одно состояние системы сменяется другим. Это нужно для того, чтобы получить результат, с помощью которого можно будет сделать вывод об удовлетворении реализации поставленным требованиям.
- Ожидаемый результат (Expected result). Это то, что необходимо получить в конечном итоге.
Правила качественного тестирования ПО
Перечислим правила, которым нужно следовать для эффективного выполнения проверки:
- Не стоит пренебрегать ручным тестированием. Автоматические проверки помогут отыскать лишь те ошибки, которые предусмотрены в скрипте тестирования. С помощью ручных методов можно найти непредсказуемые дефекты.
- Следует писать тестовые примеры на простом языке или псевдокоде вместе с вашим кодом. В противном случае новым специалистам и менеджерам придётся тратить много времени на синтаксический анализ сценария проверки.
- Необходимо применять только контролируемые изолированные испытательные среды во избежание влияния извне. Если вы будете пользоваться ПК или открытым облаком, то на тесты могут повлиять посторонние факторы. Это скажется на производительности и результате.
- Нужно выбирать конкретные метрики, которые подвергаются количественной оценке. Показатели должны описывать лишь один атрибут и строиться из чисел, дабы упростить процесс формирования отчетов. Это относится как к спецификациям, так и к тестовым случаям.
- Стоит провести тестирование до того, как вы приступите к проверке качества. Благодаря такому подходу вы распределите рабочую нагрузку тестирования по всему процессу и снизите потери времени на исправление ошибок в центральном компоненте.
- Не забывайте про пошаговые тесты. Разработайте подусловия в своих тестах. Это позволит выявить места, в которых приложение не проходит проверку.
- Лучше обеспечить как можно большее тестовое покрытие. Если вы проверите все варианты применения программы, то продукт будет готов к самым разным входам и средам.
Навыки и качества специалиста по тестированию программного обеспечения
Система тестирования программного обеспечения не будет правильно работать, если у специалиста отсутствуют определенные личностные качества. Рассмотрим необходимые для данной работы характеристики:
- Усидчивость и настойчивость. Специалист должен быть достаточно терпеливым, чтобы длительное время выполнять поиск ошибок. Профессионал своего дела знает, что не существует безошибочных приложений. Если в программе не было найдено никаких дефектов, то это указывает на низкое качество тестирования.
- Критическое мышление, способность работать с информацией.
- Умение подмечать даже самые, на первый взгляд, незначительные детали. Тестировщику необходимо проверять все возможные сценарии.
- Коммуникабельность и навыки командной работы. Специалисту нужно будет общаться с разработчиками, дизайнерами, бизнес-аналитиками, представителями заказчика.
- Самоконтроль. Разработчики далеко не всегда настроены на исправление дефектов, поэтому тестировщикам приходится по нескольку раз повторять, что была найдена ошибка. Таким образом, специалист должен сочетать в себе настойчивость и дипломатичность.
- Ответственность и педантичность. Благодаря этим качествам тестировщик будет пытаться довести свою работу до конца.
- Способность грамотно формулировать свои мысли. Это позволит разработать качественный план и тест-кейс. При обнаружении дефекта специалисту необходимо донести до разработчиков все нюансы его появления.
- Желание оттачивать свои навыки. Специалист должен быть нацелен на обучение новым техникам тестирования. Для этого ему нужно работать с соответствующей литературой, ездить на конференции, семинары, проходить курсы и т.д.
Профессионал должен знать:
- основы тестирования, его разновидности и техники;
- способы разработки тест-кейсов, тест-планов;
- языки запросов SQL, базы данных;
- языки программирования;
- системы контроля версий: Git, CVS ипр.
Плюс ко всему, специалист должен уметь работать с инструментами ручного и автоматического тестирования, к которым относятся:
- Системы для разработки тест-кейсов и обнаружения ошибок.
- Файловые менеджеры, текстовые и XML-редакторы.
- Генераторы тестовых данных итак далее.
Чтобы автоматизировать проверки, можно пользоваться системами тестирования веб-приложений, программами для функционального и нагрузочного тестирования.
При этом необходимо знание английского языка. Без этого будет трудно понимать и составлять техническую документацию.
Лучшие курсы по специальности тестировщика ПО
- Инженер по тестированию PRO
Данный курс по тестированию программного обеспечения рассчитан на три года. Он актуален для людей, которые планируют стать специалистами с твердыми знаниями. Вы освоите технологическую базу, сможете определиться с профилем, получите навыки ручного и автоматизированного тестирования, узнаете о нюансах каждого из направлений и сможете отыскать работу.
- Инженер по ручному тестированию
Прохождение программы позволит определиться со специализацией, освоить базовые навыки, сформировать портфолио из проектов и устроиться на работу. Если вы будете усидчивы, то сможете начать зарабатывать уже через полгода после начала обучения.
- Инженер по тестированию Мастер
Программа рассчитана на 2 года. Актуальна для людей, которые хотят получить твердые знания и быть уверенными в результате. Участники улучшат знание основ тестирования программного обеспечения, определятся со специализацией, научатся ручному и автоматизированному тестированию и устроятся на подходящую работу.
- Инженер по тестированию
Программа рассчитана на 1 год. Участники получат теоретическую базу, смогут определиться со специализацией, найдут работу или откроют свое дело в сфере ИТ. При этом трудоустройство возможно уже через полгода после начала обучения.
- Инженер по автоматизированному тестированию
В процессе прохождения программы, состоящей из одного года обучения и трех месяцев технологической специализации, участники получат необходимую теоретическую базу, смогут определиться с профилем, научатся применять техники ручного и автоматизированного тестирования.
- Специалист по тестированию
Данная программа отличается высочайшей интенсивностью. Подойдет для людей, желающих в кратчайшие сроки получить навыки. Освоив специальность ручного тестировщика, вы сможете трудоустроиться уже через полгода после начала обучения.
7 книг о тестировании программного обеспечения
- Р. Калбертсон, К. Браун, Г. Кобб «Быстрое тестирование»
Благодаря этой книге многие неопытные тестировщики смогли разобраться с нюансами профессии. Вы сможете понять, как лучше создавать тесты, прогнозировать ошибки, формировать итоговые отчеты.
Насколько надежны приложения, которые вы используете каждый день? Хотите научиться обнаруживать баги и гарантировать качество ПО? Присоединяйтесь к курсу и освойте основы ручного и автоматизированного тестирования. Вы научитесь находить и документировать ошибки, разрабатывать эффективные тестовые сценарии и работать с профессиональными инструментами. Станьте незаменимым экспертом в обеспечении качества программного обеспечения.
- С. Круг «Не заставляйте меня думать»
В книге объясняется, как проверять мобильные приложения и веб-сайты по критерию удобства пользования. Текстовую информацию дополняют исчерпывающие иллюстрации. Данное практическое руководство изобилует яркими пояснениями.
- А.Купер «Психбольница в руках пациента»
Отличная литература, в которой объясняется, каким образом можно улучшить юзабилити программ посредством проектирования. Изучение данной книги поможет не только тестировщикам, но и программистам, аналитикам, руководителям многопрофильных команд.
- Дж. Арбон, Дж. Каролло, Дж. Уиттакер «Как тестируют в Google»
Авторы делают упор на процессах отладки программ в известной во всем мире организации. При этом изложенные в книге правила могут применяться для любых проектов.
- Э. Дастин, Д. Рэшка, Дж. Пол. «Автоматизированное тестирование программного обеспечения»
В пособии описываются различные детали процесса автоматического тестирования. Книга освещает тему увеличения скорости тестовых процедур на web-серверах. При этом авторы объясняют различные нюансы проектирования, разработки и выполнения тестов.
Читайте также
- Станислав Куликов «Тестирование программного обеспечения. Базовый курс»
Известный автор в мире IT сформировал пособие, в котором неопытные тестировщики смогут найти примеры всевозможных техник, подсказки в формате чек-листов, перечни тест-кейсов. Кроме того, вы сможете ознакомиться с важнейшими элементами работы в данной сфере – требованиями, планированием, отчетностью.
- С. Слукин «Введение в тестирование программного обеспечения»
Очень информативная книга, с помощью которой вы сможете улучшить навыки работы с объектно-ориентированным ПО. В этом курсе указаны тестовые требования, изложены практические примеры, планы и образцы отчетов.
Главной целью тестирования программного обеспечения является нахождение ошибок. Благодаря этому потребитель сможет получить качественный продукт, который будет быстро работать и отвечать всем современным требованиям. Следовательно, тестировщик должен уметь вставать на место рядового пользователя. Именно такой подход позволит добиться высокого результата и закрыть все потребности клиентов.