Тестовые методики. Тесты в процессе разработки программного обеспечения

  • Tutorial

Доброго времени суток!

Хочу собрать всю самую необходимую теорию по тестирвоанию, которую спрашивают на собеседованиях у trainee, junior и немножко middle. Собственно, я собрал уже не мало. Цель сего поста в том, чтобы сообща добавить упущенное и исправить/перефразировать/добавить/сделатьЧтоТоЕщё с тем, что уже есть, чтобы стало хорошо и можно было взять всё это и повторить перед очередным собеседованием про всяк случай. Вообщем, коллеги, прошу под кат, кому почерпнуть что-то новое, кому систематизировать старое, а кому внести свою лепту.

В итоге должна получиться исчерпывающая шпаргалка, которую нужно перечитать по дороге на собеседование.

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

В теме: определение тестирования, качество, верификация / валидация, цели, этапы, тест план, пункты тест плана, тест дизайн, техники тест дизайна, traceability matrix, tets case, чек-лист, дефект, error/deffect/failure, баг репорт, severity vs priority, уровни тестирования, виды / типы, подходы к интеграционному тестированию, принципы тестирования, статическое и динамическое тестирование, исследовательское / ad-hoc тестирование, требования, жизненный цикл бага, стадии разработки ПО, decision table, qa/qc/test engineer, диаграмма связей.

Поехали!

Тестирование программного обеспечения - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом. В более широком смысле, тестирование - это одна из техник контроля качества, включающая в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).

Качество программного обеспечения (Software Quality) - это совокупность характеристик программного обеспечения, относящихся к его способности удовлетворять установленные и предполагаемые потребности.

Верификация (verification) - это процесс оценки системы или её компонентов с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа. Т.е. выполняются ли наши цели, сроки, задачи по разработке проекта, определенные в начале текущей фазы.
Валидация (validation) - это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе .
Также можно встретить иную интерпритацию:
Процесс оценки соответствия продукта явным требованиям (спецификациям) и есть верификация (verification), в то же время оценка соответствия продукта ожиданиям и требованиям пользователей - есть валидация (validation). Также часто можно встретить следующее определение этих понятий:
Validation - ’is this the right specification?’.
Verification - ’is the system correct to specification?’.

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

Этапы тестирования:
1. Анализ
2. Разработка стратегии тестирования
и планирование процедур контроля качества
3. Работа с требованиями
4. Создание тестовой документации
5. Тестирование прототипа
6. Основное тестирование
7. Стабилизация
8. Эксплуатация

Тест план (Test Plan) - это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
Отвечает на вопросы:
Что надо тестировать?
Что будете тестировать?
Как будете тестировать?
Когда будете тестировать?
Критерии начала тестирования.
Критерии окончания тестирования.

Основные пункты тест плана
В стандарте IEEE 829 перечислены пункты, из которых должен (пусть - может) состоять тест-план:
a) Test plan identifier;
b) Introduction;
c) Test items;
d) Features to be tested;
e) Features not to be tested;
f) Approach;
g) Item pass/fail criteria;
h) Suspension criteria and resumption requirements;
i) Test deliverables;
j) Testing tasks;
k) Environmental needs;
l) Responsibilities;
m) StafÞng and training needs;
n) Schedule;
o) Risks and contingencies;
p) Approvals.

Тест дизайн - это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест кейсы), в соответствии с определёнными ранее критериями качества и целями тестирования.
Роли, ответственные за тест дизайн:
Тест аналитик - определяет «ЧТО тестировать?»
Тест дизайнер - определяет «КАК тестировать?»

Техники тест дизайна

Эквивалентное Разделение (Equivalence Partitioning - EP) . Как пример, у вас есть диапазон допустимых значений от 1 до 10, вы должны выбрать одно верное значение внутри интервала, скажем, 5, и одно неверное значение вне интервала - 0.

Анализ Граничных Значений (Boundary Value Analysis - BVA) . Если взять пример выше, в качестве значений для позитивного тестирования выберем минимальную и максимальную границы (1 и 10), и значения больше и меньше границ (0 и 11). Анализ Граничный значений может быть применен к полям, записям, файлам, или к любого рода сущностям имеющим ограничения.

Причина / Следствие (Cause/Effect - CE) . Это, как правило, ввод комбинаций условий (причин), для получения ответа от системы (Следствие). Например, вы проверяете возможность добавлять клиента, используя определенную экранную форму. Для этого вам необходимо будет ввести несколько полей, таких как «Имя», «Адрес», «Номер Телефона» а затем, нажать кнопку «Добавить» - эта «Причина». После нажатия кнопки «Добавить», система добавляет клиента в базу данных и показывает его номер на экране - это «Следствие».

Исчерпывающее тестирование (Exhaustive Testing - ET) - это крайний случай. В пределах этой техники вы должны проверить все возможные комбинации входных значений, и в принципе, это должно найти все проблемы. На практике применение этого метода не представляется возможным, из-за огромного количества входных значений.

Traceability matrix - Матрица соответствия требований - это двумерная таблица, содержащая соответсвие функциональных требований (functional requirements) продукта и подготовленных тестовых сценариев (test cases). В заголовках колонок таблицы расположены требования, а в заголовках строк - тестовые сценарии. На пересечении - отметка, означающая, что требование текущей колонки покрыто тестовым сценарием текущей строки.
Матрица соответсвия требований используется QA-инженерами для валидации покрытия продукта тестами. МСТ является неотъемлемой частью тест-плана.

Тестовый случай (Test Case) - это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.
Пример:
Action Expected Result Test Result
(passed/failed/blocked)
Open page «login» Login page is opened Passed

Каждый тест кейс должен иметь 3 части:
PreConditions Список действий, которые приводят систему к состоянию пригодному для проведения основной проверки. Либо список условий, выполнение которых говорит о том, что система находится в пригодном для проведения основного теста состояния.
Test Case Description Список действий, переводящих систему из одного состояния в другое, для получения результата, на основании которого можно сделать вывод о удовлетворении реализации, поставленным требованиям
PostConditions Список действий, переводящих систему в первоначальное состояние (состояние до проведения теста - initial state)
Виды Тестовых Случаев:
Тест кейсы разделяются по ожидаемому результату на позитивные и негативные:
Позитивный тест кейс использует только корректные данные и проверяет, что приложение правильно выполнило вызываемую функцию.
Негативный тест кейс оперирует как корректными так и некорректными данными (минимум 1 некорректный параметр) и ставит целью проверку исключительных ситуаций (срабатывание валидаторов), а также проверяет, что вызываемая приложением функция не выполняется при срабатывании валидатора.

Чек-лист (check list) - это документ, описывающий что должно быть протестировано. При этом чек-лист может быть абсолютно разного уровня детализации. На сколько детальным будет чек-лист зависит от требований к отчетности, уровня знания продукта сотрудниками и сложности продукта.
Как правило, чек-лист содержит только действия (шаги), без ожидаемого результата. Чек-лист менее формализован чем тестовый сценарий. Его уместно использовать тогда, когда тестовые сценарии будут избыточны. Также чек-лист ассоциируются с гибкими подходами в тестировании.

Дефект (он же баг) - это несоответствие фактического результата выполнения программы ожидаемому результату. Дефекты обнаруживаются на этапе тестирования программного обеспечения (ПО), когда тестировщик проводит сравнение полученных результатов работы программы (компонента или дизайна) с ожидаемым результатом, описанным в спецификации требований.

Error - ошибка пользователя, то есть он пытается использовать программу иным способом.
Пример - вводит буквы в поля, где требуется вводить цифры (возраст, количество товара и т.п.).
В качественной программе предусмотрены такие ситуации и выдаются сообщение об ошибке (error message), с красным крестиком которые.
Bug (defect) - ошибка программиста (или дизайнера или ещё кого, кто принимает участие в разработке), то есть когда в программе, что-то идёт не так как планировалось и программа выходит из-под контроля. Например, когда никак не контроллируется ввод пользователя, в результате неверные данные вызывают краши или иные «радости» в работе программы. Либо внутри программа построена так, что изначально не соответствует тому, что от неё ожидается.
Failure - сбой (причём не обязательно аппаратный) в работе компонента, всей программы или системы. То есть, существуют такие дефекты, которые приводят к сбоям (A defect caused the failure) и существуют такие, которые не приводят. UI-дефекты например. Но аппаратный сбой, никак не связанный с software, тоже является failure.

Баг Репорт (Bug Report) - это документ, описывающий ситуацию или последовательность действий приведшую к некорректной работе объекта тестирования, с указанием причин и ожидаемого результата.
Шапка
Короткое описание (Summary) Короткое описание проблемы, явно указывающее на причину и тип ошибочной ситуации.
Проект (Project) Название тестируемого проекта
Компонент приложения (Component) Название части или функции тестируемого продукта
Номер версии (Version) Версия на которой была найдена ошибка
Серьезность (Severity) Наиболее распространена пятиуровневая система градации серьезности дефекта:
S1 Блокирующий (Blocker)
S2 Критический (Critical)
S3 Значительный (Major)
S4 Незначительный (Minor)
S5 Тривиальный (Trivial)
Приоритет (Priority) Приоритет дефекта:
P1 Высокий (High)
P2 Средний (Medium)
P3 Низкий (Low)
Статус (Status) Статус бага. Зависит от используемой процедуры и жизненного цикла бага (bug workflow and life cycle)

Автор (Author) Создатель баг репорта
Назначен на (Assigned To) Имя сотрудника, назначенного на решение проблемы
Окружение
ОС / Сервис Пак и т.д. / Браузера + версия /… Информация об окружении, на котором был найден баг: операционная система, сервис пак, для WEB тестирования - имя и версия браузера и т.д.

Описание
Шаги воспроизведения (Steps to Reproduce) Шаги, по которым можно легко воспроизвести ситуацию, приведшую к ошибке.
Фактический Результат (Result) Результат, полученный после прохождения шагов к воспроизведению
Ожидаемый результат (Expected Result) Ожидаемый правильный результат
Дополнения
Прикрепленный файл (Attachment) Файл с логами, скриншот или любой другой документ, который может помочь прояснить причину ошибки или указать на способ решения проблемы.

Severity vs Priority
Серьезность (Severity) - это атрибут, характеризующий влияние дефекта на работоспособность приложения.
Приоритет (Priority) - это атрибут, указывающий на очередность выполнения задачи или устранения дефекта. Можно сказать, что это инструмент менеджера по планированию работ. Чем выше приоритет, тем быстрее нужно исправить дефект.
Severity выставляется тестировщиком
Priority - менеджером, тимлидом или заказчиком

Градация Серьезности дефекта (Severity)

S1 Блокирующая (Blocker)
Блокирующая ошибка, приводящая приложение в нерабочее состояние, в результате которого дальнейшая работа с тестируемой системой или ее ключевыми функциями становится невозможна. Решение проблемы необходимо для дальнейшего функционирования системы.

S2 Критическая (Critical)
Критическая ошибка, неправильно работающая ключевая бизнес логика, дыра в системе безопасности, проблема, приведшая к временному падению сервера или приводящая в нерабочее состояние некоторую часть системы, без возможности решения проблемы, используя другие входные точки. Решение проблемы необходимо для дальнейшей работы с ключевыми функциями тестируемой системой.

S3 Значительная (Major)
Значительная ошибка, часть основной бизнес логики работает некорректно. Ошибка не критична или есть возможность для работы с тестируемой функцией, используя другие входные точки.

S4 Незначительная (Minor)
Незначительная ошибка, не нарушающая бизнес логику тестируемой части приложения, очевидная проблема пользовательского интерфейса.

S5 Тривиальная (Trivial)
Тривиальная ошибка, не касающаяся бизнес логики приложения, плохо воспроизводимая проблема, малозаметная посредствам пользовательского интерфейса, проблема сторонних библиотек или сервисов, проблема, не оказывающая никакого влияния на общее качество продукта.

Градация Приоритета дефекта (Priority)
P1 Высокий (High)
Ошибка должна быть исправлена как можно быстрее, т.к. ее наличие является критической для проекта.
P2 Средний (Medium)
Ошибка должна быть исправлена, ее наличие не является критичной, но требует обязательного решения.
P3 Низкий (Low)
Ошибка должна быть исправлена, ее наличие не является критичной, и не требует срочного решения.

Уровни Тестирования

1. Модульное тестирование (Unit Testing)
Компонентное (модульное) тестирование проверяет функциональность и ищет дефекты в частях приложения, которые доступны и могут быть протестированы по-отдельности (модули программ, объекты, классы, функции и т.д.).

2. Интеграционное тестирование (Integration Testing)
Проверяется взаимодействие между компонентами системы после проведения компонентного тестирования.

3. Системное тестирование (System Testing)
Основной задачей системного тестирования является проверка как функциональных, так и не функциональных требований в системе в целом. При этом выявляются дефекты, такие как неверное использование ресурсов системы, непредусмотренные комбинации данных пользовательского уровня, несовместимость с окружением, непредусмотренные сценарии использования, отсутствующая или неверная функциональность, неудобство использования и т.д.

4. Операционное тестирование (Release Testing).
Даже если система удовлетворяет всем требованиям, важно убедиться в том, что она удовлетворяет нуждам пользователя и выполняет свою роль в среде своей эксплуатации, как это было определено в бизнес моделе системы. Следует учесть, что и бизнес модель может содержать ошибки. Поэтому так важно провести операционное тестирование как финальный шаг валидации. Кроме этого, тестирование в среде эксплуатации позволяет выявить и нефункциональные проблемы, такие как: конфликт с другими системами, смежными в области бизнеса или в программных и электронных окружениях; недостаточная производительность системы в среде эксплуатации и др. Очевидно, что нахождение подобных вещей на стадии внедрения - критичная и дорогостоящая проблема. Поэтому так важно проведение не только верификации, но и валидации, с самых ранних этапов разработки ПО.

5. Приемочное тестирование (Acceptance Testing)
Формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью:
определения удовлетворяет ли система приемочным критериям;
вынесения решения заказчиком или другим уполномоченным лицом принимается приложение или нет.

Виды / типы тестирования

Функциональные виды тестирования
Функциональное тестирование (Functional testing)
Тестирование безопасности (Security and Access Control Testing)
Тестирование взаимодействия (Interoperability Testing)

Нефункциональные виды тестирования
Все виды тестирования производительности:
o нагрузочное тестирование (Performance and Load Testing)
o стрессовое тестирование (Stress Testing)
o тестирование стабильности или надежности (Stability / Reliability Testing)
o объемное тестирование (Volume Testing)
Тестирование установки (Installation testing)
Тестирование удобства пользования (Usability Testing)
Тестирование на отказ и восстановление (Failover and Recovery Testing)
Конфигурационное тестирование (Configuration Testing)

Связанные с изменениями виды тестирования
Дымовое тестирование (Smoke Testing)
Регрессионное тестирование (Regression Testing)
Повторное тестирование (Re-testing)
Тестирование сборки (Build Verification Test)
Санитарное тестирование или проверка согласованности/исправности (Sanity Testing)

Функциональное тестирование рассматривает заранее указанное поведение и основывается на анализе спецификаций функциональности компонента или системы в целом.

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

Тестирование взаимодействия (Interoperability Testing) - это функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование

Нагрузочное тестирование - это автоматизированное тестирование, имитирующее работу определенного количества бизнес пользователей на каком-либо общем (разделяемом ими) ресурсе.

Стрессовое тестирование (Stress Testing) позволяет проверить насколько приложение и система в целом работоспособны в условиях стресса и также оценить способность системы к регенерации, т.е. к возвращению к нормальному состоянию после прекращения воздействия стресса. Стрессом в данном контексте может быть повышение интенсивности выполнения операций до очень высоких значений или аварийное изменение конфигурации сервера. Также одной из задач при стрессовом тестировании может быть оценка деградации производительности, таким образом цели стрессового тестирования могут пересекаться с целями тестирования производительности.

Объемное тестирование (Volume Testing) . Задачей объемного тестирования является получение оценки производительности при увеличении объемов данных в базе данных приложения

Тестирование стабильности или надежности (Stability / Reliability Testing) . Задачей тестирования стабильности (надежности) является проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки.

Тестирование установки направленно на проверку успешной инсталляции и настройки, а также обновления или удаления программного обеспечения.

Тестирование удобства пользования - это метод тестирования, направленный на установление степени удобства использования, обучаемости, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий. Сюда также входит:
Тестирование пользовательского интерфейса (англ. UI Testing) - это вид тестирования исследования, выполняемого с целью определения, удобен ли некоторый искусственный объект (такой как веб-страница, пользовательский интерфейс или устройство) для его предполагаемого применения.
User eXperience (UX) - ощущение, испытываемое пользователем во время использования цифрового продукта, в то время как User interface - это инструмент, позволяющий осуществлять интеракцию «пользователь - веб-ресурс».

Тестирование на отказ и восстановление (Failover and Recovery Testing) проверяет тестируемый продукт с точки зрения способности противостоять и успешно восстанавливаться после возможных сбоев, возникших в связи с ошибками программного обеспечения, отказами оборудования или проблемами связи (например, отказ сети). Целью данного вида тестирования является проверка систем восстановления (или дублирующих основной функционал систем), которые, в случае возникновения сбоев, обеспечат сохранность и целостность данных тестируемого продукта.

Конфигурационное тестирование (Configuration Testing) - специальный вид тестирования, направленный на проверку работы программного обеспечения при различных конфигурациях системы (заявленных платформах, поддерживаемых драйверах, при различных конфигурациях компьютеров и т.д.)

Дымовое (Smoke) тестирование рассматривается как короткий цикл тестов, выполняемый для подтверждения того, что после сборки кода (нового или исправленного) устанавливаемое приложение, стартует и выполняет основные функции.

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

Повторное тестирование - тестирование, во время которого исполняются тестовые сценарии, выявившие ошибки во время последнего запуска, для подтверждения успешности исправления этих ошибок.
В чем разница между regression testing и re-testing?
Re-testing - проверяется исправление багов
Regression testing - проверяется то, что исправление багов не повлияло на другие модули ПО и не вызвало новых багов.

Тестирование сборки или Build Verification Test - тестирование направленное на определение соответствия, выпущенной версии, критериям качества для начала тестирования. По своим целям является аналогом Дымового Тестирования, направленного на приемку новой версии в дальнейшее тестирование или эксплуатацию. Вглубь оно может проникать дальше, в зависимости от требований к качеству выпущенной версии.

Санитарное тестирование - это узконаправленное тестирование достаточное для доказательства того, что конкретная функция работает согласно заявленным в спецификации требованиям. Является подмножеством регрессионного тестирования. Используется для определения работоспособности определенной части приложения после изменений произведенных в ней или окружающей среде. Обычно выполняется вручную.

Предугадывание ошибки (Error Guessing - EG) . Это когда тест аналитик использует свои знания системы и способность к интерпретации спецификации на предмет того, чтобы «предугадать» при каких входных условиях система может выдать ошибку. Например, спецификация говорит: «пользователь должен ввести код». Тест аналитик, будет думать: «Что, если я не введу код?», «Что, если я введу неправильный код? », и так далее. Это и есть предугадывание ошибки.

Подходы к интеграционному тестированию:

Снизу вверх (Bottom Up Integration)
Все низкоуровневые модули, процедуры или функции собираются воедино и затем тестируются. После чего собирается следующий уровень модулей для проведения интеграционного тестирования. Данный подход считается полезным, если все или практически все модули, разрабатываемого уровня, готовы. Также данный подход помогает определить по результатам тестирования уровень готовности приложения.

Сверху вниз (Top Down Integration)
Вначале тестируются все высокоуровневые модули, и постепенно один за другим добавляются низкоуровневые. Все модули более низкого уровня симулируются заглушками с аналогичной функциональностью, затем по мере готовности они заменяются реальными активными компонентами. Таким образом мы проводим тестирование сверху вниз.

Большой взрыв («Big Bang» Integration)
Все или практически все разработанные модули собираются вместе в виде законченной системы или ее основной части, и затем проводится интеграционное тестирование. Такой подход очень хорош для сохранения времени. Однако если тест кейсы и их результаты записаны не верно, то сам процесс интеграции сильно осложнится, что станет преградой для команды тестирования при достижении основной цели интеграционного тестирования.

Принципы тестирования

Принцип 1 - Тестирование демонстрирует наличие дефектов (Testing shows presence of defects)
Тестирование может показать, что дефекты присутствуют, но не может доказать, что их нет. Тестирование снижает вероятность наличия дефектов, находящихся в программном обеспечении, но, даже если дефекты не были обнаружены, это не доказывает его корректности.

Принцип 2 - Исчерпывающее тестирование недостижимо (Exhaustive testing is impossible)
Полное тестирование с использованием всех комбинаций вводов и предусловий физически невыполнимо, за исключением тривиальных случаев. Вместо исчерпывающего тестирования должны использоваться анализ рисков и расстановка приоритетов, чтобы более точно сфокусировать усилия по тестированию.

Принцип 3 - Раннее тестирование (Early testing)
Чтобы найти дефекты как можно раньше, активности по тестированию должны быть начаты как можно раньше в жизненном цикле разработки программного обеспечения или системы, и должны быть сфокусированы на определенных целях.

Принцип 4 - Скопление дефектов (Defects clustering)
Усилия тестирования должны быть сосредоточены пропорционально ожидаемой, а позже реальной плотности дефектов по модулям. Как правило, большая часть дефектов, обнаруженных при тестировании или повлекших за собой основное количество сбоев системы, содержится в небольшом количестве модулей.

Принцип 5 - Парадокс пестицида (Pesticide paradox)
Если одни и те же тесты будут прогоняться много раз, в конечном счете этот набор тестовых сценариев больше не будет находить новых дефектов. Чтобы преодолеть этот «парадокс пестицида», тестовые сценарии должны регулярно рецензироваться и корректироваться, новые тесты должны быть разносторонними, чтобы охватить все компоненты программного обеспечения, или системы, и найти как можно больше дефектов.

Принцип 6 - Тестирование зависит от контекста (Testing is concept depending)
Тестирование выполняется по-разному в зависимости от контекста. Например, программное обеспечение, в котором критически важна безопасность, тестируется иначе, чем сайт электронной коммерции.

Принцип 7 - Заблуждение об отсутствии ошибок (Absence-of-errors fallacy)
Обнаружение и исправление дефектов не помогут, если созданная система не подходит пользователю и не удовлетворяет его ожиданиям и потребностям.

Cтатическое и динамическое тестирование
Статическое тестирование отличается от динамического тем, что производится без запуска программного кода продукта. Тестирование осуществляется путем анализа программного кода (code review) или скомпилированного кода. Анализ может производиться как вручную, так и с помощью специальных инструментальных средств. Целью анализа является раннее выявление ошибок и потенциальных проблем в продукте. Также к статическому тестирвоанию относится тестирования спецификации и прочей документации.

Исследовательское / ad-hoc тестирование
Простейшее определение исследовательского тестирования - это разработка и выполнения тестов в одно и то же время. Что является противоположностью сценарного подхода (с его предопределенными процедурами тестирования, неважно ручными или автоматизированными). Исследовательские тесты, в отличие от сценарных тестов, не определены заранее и не выполняются в точном соответствии с планом.

Разница между ad hoc и exploratory testing в том, что теоретически, ad hoc может провести кто угодно, а для проведения exploratory необходимо мастерство и владение определенными техниками. Обратите внимание, что определенные техники это не только техники тестирования.

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

Требования к требованиям:
Корректность
Недвусмысленность
Полнота набора требований
Непротиворечивость набора требований
Проверяемость (тестопригодность)
Трассируемость
Понимаемость

Жизненный цикл бага

Стадии разработки ПО - это этапы, которые проходят команды разработчиков ПО, прежде чем программа станет доступной для широко круга пользователей. Разработка ПО начинается с первоначального этапа разработки (стадия «пре-альфа») и продолжается стадиями, на которых продукт дорабатывается и модернизируется. Финальным этапом этого процесса становится выпуск на рынок окончательной версии программного обеспечения («общедоступного релиза»).

Программный продукт проходит следующие стадии:
анализ требований к проекту;
проектирование;
реализация;
тестирование продукта;
внедрение и поддержка.

Каждой стадии разработки ПО присваивается определенный порядковый номер. Также каждый этап имеет свое собственное название, которое характеризует готовность продукта на этой стадии.

Жизненный цикл разработки ПО:
Пре-альфа
Альфа
Бета
Релиз-кандидат
Релиз
Пост-релиз

Таблица принятия решений (decision table) - великолепный инструмент для упорядочения сложных бизнес требований, которые должны быть реализованы в продукте. В таблицах решений представлен набор условий, одновременное выполнение которых должно привести к определенному действию.

QA/QC/Test Engineer


Таким образом, мы можем построить модель иерархии процессов обеспечения качества: Тестирование - часть QC. QC - часть QA.

Диаграмма связей - это инструмент управления качеством, основанный на определении логических взаимосвязей между различными данными. Применяется этот инструмент для сопоставления причин и следствий по исследуемой проблеме.

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

Психодиагностика представлена различными тестами. Для индивидуального тестирования (когда взаимодействие экспериментатора и испытуемого происходит один на один) и группового тестирования, в том числе детей, применяются предметные тесты.

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

Индивидуальное предметное тестирование имеет свои преимущества: возможность наблюдать за испытуемым (за его мимикой, другими непроизвольными реакциями), слышать и фиксировать непредусмотренные инструкцией высказывания, что позволяет оценить отношение к тестированию, функциональное состояние испытуемого и др. Это позволяет широко использовать предметное тестирование в психодиагностике детей.

Дети отличаются друг от друга по интеллектуальному, моральному, межперсональному развитию, и они могут по-разному реагировать на одни и те же инструкции и психодиагностические ситуации .

Уровень психологического развития детей различен, и потому некоторым детям практически вполне доступны тесты, предназначенные для психодиагностики взрослых людей, другим - менее развитым - только методики, рассчитанные на детей дошкольного возраста. Поэтому целесообразно применять тестирование, которое интеллектуально доступно и не слишком просто для того, чтобы оценивать реальный уровень психологического развития, достигнутый ребенком.

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

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

Для уверенности в достоверности результатов психодиагностических исследований необходимо, чтобы используемые психодиагностические методы были научно обоснованы, т. е. отвечать ряду требований. Такими требованиями являются: валидность, надежность, однозначность методики, точность .

У детей преобладает непроизвольное внимание. Использование предметов в тесте позволяет сократить процедуру тестирования до 5-15 минут, отвечая при этом всем требованиям научного метода исследования.

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

С помощью предметных тестов возможно исследовать:

  • - психическое состояние и личностные свойства уровень развития психологических функций ребенка, с учетом возраста,
  • - динамику развития (продольные срезы),
  • - темп развития,
  • - новообразования возраста .

Применение предметных тестов в детской психологии позволяет основательнее познакомиться со структурой и функциями ряда психических процессов, обеспечивающих успешность развития детей, а также понять причины возможных трудностей в процессе обучения ребенка. Ими могут быть недостаточная волевая регуляция внимания и действия, чрезмерная импульсивность познавательной активности, быстрая утомляемость ребенка при интеллектуальных и эмоциональных нагрузках, низкий темп деятельности и многое другое . Это возможно выявить в психологическом индивидуальном тестировании с предметами.

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

Предметное тестирование основано на едином психологическом механизме проекции. Суть проекции заключается в переносе психических свойств испытуемого ребенка на материал задания, что позволяет выявить его скрытые личностные особенности. Бессознательные переживания, чувства, мысли, порожденные неосознаваемыми влечениями ребенка, доступны объективной диагностике. Они отражаются в характере словесных ассоциаций, непроизвольных оговорок; в содержании фантазий, в особенностях рисунков или восприятии картин.

Также предметы в психологических тестах выступают для испытуемого стимульным материалом. В основе использования стимульного материала лежит принцип неопределенности или инструкции к заданию. Предполагается, что в ситуации неопределенности испытуемый более свободно выражает (проецирует) свое собственное «я», особенности своего внутреннего мира и личностных переживаний .

В литературе по психодиагностике можно встретить разные классификации методов тестирования. Тестирование с помощью предметов относится к проективным методикам психодиагностики. Рассмотрим классификацию, наиболее полно характеризующую проективную технику тестирования с помощью предметов, предложенную Л. Френком.

  • 1. Конститутивные. Техники, входящие в эту категорию, характеризуются ситуацией, в которой испытуемого требуется создание некой структуры из неструктурированного материала, то есть предлагается какой-либо аморфный материал, которому необходимо придать смысл. Примерами таких методик на завершение задания могут служить:
    • - Незаконченные предложения;
    • - Незавершенные рисунки.
  • 2. Конструктивные . Предлагаются оформленные детали (фигурки людей и животных, модели их жилищ и пр.), из которых нужно создать осмысленное целое и объяснить его. Примером, относящимся к данной категории может служить тест Эдвина Шнейдмана «Составь картину-историю». Стимульный материл - бланк с рисунками-фонами и 67 фигурок, вырезанных их картона, живые и неживые объекты. Задача испытуемого расположить фигурки, которые подходят к изображению как на сцене и рассказать историю того, что получилось. Затем это интерпретируется и дается диагноз личностных особенности.
  • 3. Интерпретационные методы - испытуемый должен истолковать некоторый стимул, исходя из собственных соображений. Предполагается, что испытуемый идентифицирует себя с «героем» рассказа, что дает возможность раскрытия внутреннего мира, его чувств, интересов и побуждений. Тематический тест на апперцепцию (ТАТ) - хорошая иллюстрация этого вида методик. Испытуемому предлагаются карточки с неоднозначными по содержанию черно-белыми картинками, по которым он должен составить рассказ и установить последовательность изображенных событий.
  • 4. Катартические . Предлагается осуществление игровой деятельности в особо организованных условиях. Например, психодрама, осуществляемая в виде импровизированного театрального представления. С помощью этого исследователь может обнаружить выносимые испытуемым во вне конфликты, проблемы, другую личностно насыщенную продукцию.
  • 5. Экспрессивные . Анализ почерка, особенностей речевого общения. Осуществление испытуемым изобразительной деятельности, рисунок на свободную или заданную тему, например, методика «Дом-дерево-человек». По рисунку делаются выводы об аффективной сфере личности, уровне психосексуального развития и других особенностях.
  • 6. Импрессивные . Эти методики основываются на изучении результатов выбора стимулов из ряда предложенных. Испытуемый выбирает наиболее желательные, предпочитаемые им стимулы. Например, тест Люшера, состоящий из 8 цветных квадратов. Предъявляются все квадраты с просьбой выбрать наиболее приятный. Процедура повторяется с оставшимися квадратами до тех пор, пока в итоге образуется ряд, в котором цвета располагаются по их привлекательности. Психологическая интерпретация исходит из символического значения цвета.
  • 7. Аддитивные . От обследуемого требуется завершение имеющего начало предложения, рассказа или истории .

Все перечисленные методики объединяет способность отражать наиболее существенные аспекты личности в их взаимозависимости и целостности функционирования. В результате решается задача диагностической деятельности: оценить актуальное состояние ребенка с отнесением его развития либо к условно-нормативному либо к отклоняющемуся.

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

Универсальным средством, которое можно применять для изучения внимания детей разного возраста, является тест с помощью колец Ландольта.

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

Определение объема памяти ребенка (кратковременной зрительной памяти, оперативной зрительной памяти, опосредованной памяти) также возможно с помощью предметного тестирования. Например, для определения объема кратковременной зрительной памяти ребенку поочередно предлагают два рисунка. После предъявления каждой части рисунка, А и Б, ребенок получает трафаретную рамку с просьбой нарисовать на ней все лини, которые он видел и запомнил на каждой части. По результатам двух опытов устанавливается среднее количество линий, которое он воспроизвел по памяти правильно.

Правильно воспроизведенной считается линия, длина и ориентация которой не намного отличаются от длины и ориентации соответствующей линии на исходном рисунке. Полученный показатель, равный числу правильно воспроизведенных линий, рассматривается как объем зрительной памяти. Для оценки оперативной зрительной памяти ребенку последовательно, на 15 секунд каждая, предлагаются карточки-задания, представленные в виде шести по-разному заштрихованных треугольников. После просмотра очередной карточки она убирается и вместо неё предлагается матрица, включающая 24 разных треугольника, среди которых находятся и те шесть треугольников, которые ребенок только что видел на отдельной карточке. детский психодиагностика тест

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

Ошибками считаются неправильно указанные в матрице треугольники или те из них, которые ребенок не смог по какой-либо причине найти. Практически для получения этого показателя поступают следующим образом. По всем четырем карточкам определяется количество правильно найденных на матрице треугольников и их общая сумма делится на 4. Это и будет среднее число правильно указанных треугольников.

Данное число затем вычитается из 6, и полученный результат рассматривается как среднее количество допущенных ошибок. Затем определяется среднее время работы ребенка над заданием, которое в свою очередь получается путем деления общего суммарного времени работы ребёнка над всеми четырьмя карточками на 4.

Момент окончания времени работы ребенка над поиском треугольников в общей матрице определяется экспериментатором при помощи вопроса к ребенку: «Ты уже все сделал, что мог?». Как только ребенок утвердительно ответит на данный вопрос и практически прекратит поиск треугольников в матрице, считается, что он завершил свою работу. Деление среднего времени работы ребенка над поиском на матрице шести треугольников на количество допущенных ошибок позволяет, наконец, получить искомый показатель .

Для диагностики опосредованной памяти, материалом, необходимым для проведения методики, служат лист бумаги и ручка. Перед началом обследования ребенку говорят следующие слова: «Сейчас я буду называть тебе разные слова и предложения и после этого делать паузу. Во время этой паузы ты должен будешь на листе бумаги нарисовать или написать что-нибудь такое, что позволит тебе запомнить и затем легко вспомнить те слова, которые я произнес. Постарайся рисунки или записи делать как можно быстрее, иначе мы не успеем выполнить все задания. Слов и выражений, которые необходимо запомнить, довольно много». Ребенку последовательно одно за другим зачитываются следующие слова и выражения: «Дом. Палка. Дерево. Прыгать высоко. Солнце светит. Весёлый человек. Дети играют в мяч. Часы стоят. Лодка плывёт по реке. Кошка ест рыбу».

После прочтения ребенку каждого слова или словосочетания экспериментатор делает паузу на 20 сек. В это время ребенок должен успеть изобразить на данном ему листе бумаги что-либо такое, что в дальнейшем позволит ему вспомнить нужные слова и выражения. Если за отведенное время ребенок не успел сделать запись или рисунок, то экспериментатор прерывает его и зачитывает очередное слово или выражение. Как только эксперимент закончен, психолог просит ребенка, пользуясь сделанными им рисунками или записями, вспомнить те слова и выражения, которые ему были зачитаны .

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

Предметное тестирование основано на едином психологическом механизме проекции. Суть проекции заключается в переносе психических свойств испытуемого ребенка на материал задания, что позволяет выявить его скрытые личностные особенности. Бессознательные переживания, чувства, мысли, порожденные неосознаваемыми влечениями ребенка, доступны объективной диагностике. С помощью предметных тестов возможно исследовать психическое состояние и личностные свойства уровень развития психологических функций ребенка, с учетом возраста, динамику развития, темп развития, новообразования возраста. Предметные тесты существенно сокращают время исследования, что важно при диагностике детей в силу непроизвольности их внимания, позволяют оценить широкий круг вопросов и обеспечить научность психодиагностических методик.

Тестами в психологии называют стандартизированные методики психодиагностики, позволяющие получать сопоставимые количественные и качественные показатели степени развитости изучаемых свойств. Под стандартизированностью таких методик имеется в виду то, что они всегда и везде должны применяться одинаковым образом, начиная от ситуации и инструкции, получаемой испытуемым, кончая способами вычисления и интерпретации получаемых показателей. Сопоставимость означает, что оценки, получаемые при помощи теста, можно сравнивать друг с другом независимо от того, где? когда? как? и кем? они были получены, если, разумеется, тест применялся правильно Гуревич К.М. Что такое психологическая диагностика М.: Знание, 1985.- 80 с..

Что такое психологический тест в понимании большинства людей? Это - набор вопросов и ключ для их обработки. О том, что есть специальная процедура и правила проведения теста, о том, что тест должен быть валидным и надёжным чаще всего забывают. Даже люди, получившие профильное образование, почувствовав вольный воздух самостоятельности напрочь забывают о жёстких требованиях по проведению методик. Из многочисленных тестов выбираются самые простые в обработке или самые интересные для рекрутера. Так в практику отбора массово вошли принципиально маловалидные или неприемлемые для профотбора проективные методики, тесты: Люшера, Сонди, Несуществующее животное, Дом-дерево-человек, Розовый куст и многие другие. Методики, отлично подходящие для клинической или консультативной диагностики потоком пошли в практику отбора кандидатов и, тем самым, значительно дискредитировали все остальные методики Горшкова Е. Оценка персонала: тонкая настройка бизнеса // Управление компанией. - 2006. - № 3..

Психологическое тестирование относится к разделу психодиагностики и занимается изучением психологических качеств и свойств личности через применение психологических тестов. Этот метод часто применяется в консультировании, психотерапии, а также работодателями при приёме на работу. Психологические тесты нужны, когда требуется узнать о личности человека более подробно, чего нельзя сделать при помощи беседы или опроса.

Основными характеристиками психологических тестов являются:

ѕ Валидность - соответствие полученных из теста данных той характеристике, для которой тест проводится;

ѕ Надёжность - соответствие полученных результатов при повторном тестировании;

ѕ Достоверность - свойство теста давать истинные результаты, даже при намеренных или непреднамеренных попытках их искажения испытуемыми;

ѕ Репрезентативность - соответствие нормам.

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

Существуют различные виды тестов:

ѕ Тесты на профориентацию - для определения предрасположенности человека к какому-либо виду деятельности или соответствия должности;

ѕ Тесты личности - для изучения характера, потребностей, эмоций, способностей и других свойств личности;

ѕ Тесты интеллекта - для изучения степени развития интеллекта;

ѕ Вербальные тесты - для изучения умения человека описывать словами совершаемые действия;

ѕ Тесты достижений - для оценки уровня овладения знаниями и навыками.

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

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

Практические области применения психологии: психология труда, инженерная, социальная, педагогическая, медицинская, юридическая, военная и спортивная психология - при создании и применении психодиагностических методов находят в психодиагностике общий теоретико-методологический базис для оценки личности в системе социальных, экономических и других отношений. Эти практические области психологии со своей стороны обогащают систему основных психологических знаний применением и многократной проверкой их на практике.

Психологическое тестирование применяется в образовании, для тестирования интеллекта, специальных способностей, достижений, личностных качеств, поведения и др.

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

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

В нейрофизиологии проводятся нейропсихологические исследования взаимодействия мозговых патологий с поведением человека. Установлено влияние возраста на поведенческие эффекты, к которым приводит поражение мозга.

Остановимся на наиболее распространенной сфере применения психологического тестирования - отборе персонала.

Тестирование сотрудников является важнейшим компонентом в системе управления персоналом, которое позволяет оценить, как персонал компании в целом, так и каждого сотрудника индивидуально. Проводить тестирование сотрудников необходимо не только при приеме на работу, при окончании испытательного периода, при переводе на другую вакантную должность, при создании кадрового резерва, но и на регулярной основе по утвержденному генеральным директором плану. Именно тестирование сотрудников способно предоставить руководству компании реальную картину состояния дел с персоналом. Отсутствие или несвоевременное проведение мероприятий, таких, как тестирование сотрудников, может привести к весьма негативным последствиям для самой организации, когда исправить состояние дел уже почти невозможно.

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

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

Выборочное исследование разных источников показало невысокую результативность распространенных в практике предприятий тестов (см. табл. 1).

Таблица 1- Сравнительная эффективность тестирования кандидатов

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

Основные аргументы противников применения тестов следующие Маличевский В. Технология оценки и диагностики кандидатов разного уровня HQS при приеме на работу (Human quality selection) // http://www.trn.com.ua/news/2970/.:

Высокая трудоемкость тестирования при профотборе персонала;

Подготовка тестов под должность занимает много времени;

Далеко не каждый менеджер способен грамотно и корректно использовать компьютерные тестовые задания;

Распространенность психологических тестов неизвестной направленности, представленных в Интернете;

Невысокий уровень тестового прогнозирования;

Множество факторов, влияющих на кандидата как в процессе тестирования, так и в процессе работы;

Неуверенность претендентов в том, что в результате тестирования можно получить адекватное представление об их способностях.

Американская ассоциация по менеджменту привела данные, что 44 % предприятий, принявших участие в опросе, применяют тесты при отборе сотрудников. Более того, 40 % компаний из списка Fortune100 применяют психологическое тестирование Психологическое тестирование в процессе кадрового менеджмента // http:// www.podborkadrov.ru/ articles/detail.php?ID=1547..

В нашей стране эта проблема приобретает дополнительную остроту, поскольку, следуя моде на тестирование, на предприятиях используются тесты с ключами, опубликованные как в научных, так и в научно-популярных изданиях. Кроме того, в России в 80 % случаев используются тесты Векслера, Равенна, Амтхауера и Кеттелла, которые достаточно известны не только работодателям, но и работополучателям.

Тестовые методы. Определение теста. Подходы к классификации тестов. Критерии качества товаров. Достоинства и недостатки тестов. Достоинства и недостатки тестовых методов.

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

1. Надежность теста точность устойчивость - согласованность результатов теста, которые получаются при повторном применении теста к тем же обследуемым через время или в результате применения эквивалентных наборов заданий. Надежность показывает, в какой степени индивидуальные различия в тестовых результатах оказываются истинными, а в какой могут быть приписаны случайным ошибкам. Показатель надежности теста должен быть достаточно высоким (0,7- 0,8). Надежность теста не обязательно предполагает его валидность.

2. Валидность теста что

Справедливо следующее неравенство: валидность ≤ надежность.

3. Репрезентативность теста определяется возможностью его использования применительно к данной категории обследуемых лиц. Тест, стандартизированный на студентах, а тем более – на специалистах, будет нерепрезентативным в отношении учащихся средней школы.

4. Достоверность теста – его защищенность от мотивационных искажений (разновидность валидности применительно к тестовым самоотчетам).

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

При использовании психодиагностических тестов важно соблюдать следующие требования:

● четко определять цели, задачи и область применения теста;

● использовать заданный алгоритм проведения тестирования и обработки результатов.

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



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

В основе этой категории методов лежит соблюдение достаточно строгих и сформулированных в явной форме правил. Эти методы обеспечивают диагноз (и на его основе прогноз) лишь с вероятностной точностью, этот диагноз оказывается более надежным по отношению к группе обследуемых, чем по отношению к отдельному обследуемому. Достоинства измерительных методов (объективный характер процедуры, возможность перепроверки) обеспечиваются не автоматически, а благодаря выполнению психометрических требований.

Тест (англ. test –опыт, проба) – система стандартизированных вопросов и задач, позволяющих измерить уровень развития у обследуемых определенных психологических качеств, необходимых теоретических знаний, практических умений, навыков.

Подходы к классификации тестов. Согласно общепринятой классификации тесты можно подразделить:

● по назначению – на общедиагностические, профессиональной пригодности, специальные;

● по комплектности – на изолированные и тестовые батареи;

● по степени однородности задач – на гомогенные и гетерогенные;

● по формам процедуры обследования – на групповые и индивидуальные;

● по форме ответа – на устные и письменные;

● по наличию временных ограничений в выполнении теста – на скоростные тесты, тесты возможностей (результативности) и смешанные;

● по особенностям используемых тестовых задач – на вербальные и невербальные;

● по характеру тестового материала, предъявляемого обследуемым, - на бланковые («карандаш-бумага») и аппаратурные (в том числе компьютерные);

● по предмету диагностирования – на тесты интеллекта, тесты личности, социально-психологические тесты, тесты достижений и др.

8. Надежность и валидность тестов: основные понятия.

1. Надежность теста – это характеристика методики, отражающая точность психодиагностических измерений и устойчивость результатов теста к действию посторонних случайных факторов (временных колебаний психологического или физического состояния обследуемого лица, факторов окружения и др.);

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

Надежность показывает, в какой степени индивидуальные различия в тестовых результатах оказываются истинными, а в какой могут быть приписаны случайным ошибкам. Показатель надежности теста должен быть достаточно высоким (0,7- 0,8).

Надежность теста не обязательно предполагает его валидность.

2. Валидность теста – это оценка пригодности теста к измерению требуемого (искомого) качества. Валидность показывает, что тест измеряет и насколько хорошо он это делает; насколько результаты, полученные по тесту, совпадают с независимо наблюдаемым поведением.

Название теста часто не может служить указанием на его валидность (обоснованность), позволяя лишь отличить тест от других (название тестов слишком широко, расплывчато для того, чтобы определить, на диагностику каких особенностей тест ориентирован). Валидность теста выявляется в лабораторных условиях системой статистических методов. Справедливо следующее неравенство: валидность ≤ надежность.

Валидность теста связана также с его репрезентативностью и достоверностью.

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

В настоящее время существует довольно большое количество разнообразных подходов к тестированию, каждый со своими отправными точками, продолжительностью выполнения и методами, используемыми на каждом этапе. И выбор того или иного из них может быть довольно непростой задачей. В этой статье мы рассмотрим разные подходы к тестированию ПО и поговорим об их основных особенностях, чтобы помочь вам сориентироваться в существующем многообразии.

Каскадная модель (Линейная последовательная модель жизненного цикла ПО)

Каскадная модель (Waterfall Model) является одной из наиболее старых моделей, которую можно применять не только для разработки или тестирования ПО, но также практически для любого другого проекта. Его базовым принципом является последовательный порядок выполнения задач. Это значит, что мы можем переходить к следующему шагу разработки или тестирования только после того, как предыдущий был успешно завершен. Эта модель подходит для небольших проектов и применима только в том случае, если все требования точно определены. Главными достоинствами этой методологии являются экономическая эффективность, простота использования и управления документацией.

Процесс тестирования ПО начинается после завершения процесса разработки. На этой стадии все необходимые тесты переносятся с юнитов на системное тестирование для того, чтобы контролировать работу компонентов как по отдельности, так и в комплексе.

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

Узнайте больше о каскадной модели из предыдущей статьи .

V-Model (Модель верификации и валидации)

Как и каскадная модель, методика V-Model основана на прямой последовательности шагов. Основным отличием между этими двумя методологиями является то, что тестирование в данном случае планируется параллельно с соответствующей стадией разработки. Согласно этой методологии тестирования ПО, процесс начинается как только определены требования и становится возможным начать статическое тестирование, т.е. верификацию и обзор, что позволяет избежать возможных дефектов ПО на поздних стадиях. Соответствующий план тестирования создается для каждого уровня разработки ПО, что определяет ожидаемые результаты, а также критерии входа и выхода для данного продукта.

Схема данной модели показывает принцип разделения задач на две части. Те, которые относятся к дизайну и разработке, размещены слева. Задачи, относящиеся к тестированию ПО, размещены справа:

Основные этапы этой методологии могут изменяться, однако обычно они включают следующие:

  • Этап определения требований . Приемочное тестирование относится к этому этапу. Его основная задача состоит в оценке готовности системы к финальному использованию
  • Этап, на котором происходит высокоуровневое проектирование, или High-Level Design (HDL) . Этот этап относится к системному тестированию и включает оценку соблюдения требований к интегрированным системам
  • Фаза детального дизайна (Detailed Design) параллельна фазе интеграционного тестирования, во время которой происходит проверка взаимодействий между различными компонентами системы
  • После этапа написания кода начинается другой важный шаг — юнит-тестирование. Очень важно убедиться в том, что поведение отдельных частей и компонентов ПО корректно и соответствует требованиям

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

Инкрементная модель

Данная методология может быть описана, как мультикаскадная модель тестирования ПО. Рабочий процесс разделяется на некоторое количество циклов, каждый из которых также делится на модули. Каждая итерация добавляет определенный функционал к ПО. Инкремент состоит из трех циклов:

  1. дизайн и разработка
  2. тестирование
  3. реализация.

В этой модели возможна одновременная разработка разных версий продукта. Например, первая версия может проходить этап тестирования в то время, как вторая версия находится на стадии разработки. Третья версия в то же самое время может проходить этап дизайна. Этот процесс может продолжаться до самого завершения проекта.

Очевидно, что данная методология требует обнаружения максимально возможного количества ошибок в тестируемом ПО настолько быстро, насколько это возможно. Так же, как и фаза реализации, которая требует подтверждения готовности продукта к доставке к конечному пользователю. Все эти факторы существенно увеличивают весомость требований к тестированию.

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

Спиральная модель

Спиральная модель это методология тестирования ПО, которая основана на инкрементном подходе и прототипировании. Она состоит из четырех этапов:

  1. Планирование
  2. Анализ рисков
  3. Разработка
  4. Оценка

Сразу после того, как первый цикл завершен, начинается второй. Тестирование ПО начинается еще на этапе планирования и длится до стадии оценки. Основным преимуществом спиральное модели является то, что первые результаты тестирования появляется незамедлительно после появления результатов тестов на третьем этапе каждого цикла, что помогает гарантировать корректную оценку качества. Тем не менее, важно помнить о том, что эта модель может быть довольно затратной и не подходит для маленьких проектов.

Несмотря на то, что эта модель является довольно старой, она остается полезной как для тестирования, так и для разработки. Более того, главная цель многих методологий тестирования ПО, включая спиральную модель, изменилась в последнее время. Мы используем их не только для поиска дефектов в приложениях, но также и для выяснения причин, их вызвавших. Такой подход помогает разработчикам работать более эффективно и быстро устранять ошибки.

Читайте подробнее o спиральной модели в предыдущем блог посте .

Agile

Методология гибкой (Agile) разработки и тестирование ПО может быть описана как набор подходов, ориентированных на использование интерактивной разработки, динамического формирования требований и обеспечения их осуществления как результата постоянного взаимодействия внутри самоорганизующейся рабочей группы. Большинство гибких методологий разработки ПО нацелены на минимизацию рисков посредством разработки в рамках коротких итераций. Одним из главных принципов этой гибкой стратегии является возможность быстрого реагирования на возможные изменения, нежели стремление положиться на долгосрочное планирование.

Узнайте больше об Agile (прим. — статья на английском языке) .

Экстремальное программирование (XP, Extreme Programming)

Экстремальное программирование является одним их примеров гибкой разработки ПО. Отличительной особенностью этой методологии является “парное программирование”, ситуация, когда один разработчик работает над кодом, в то время как его коллега постоянно проводит обзор написанного кода. Процесс тестирования ПО является довольно важным, поскольку начинается даже раньше, чем написана первая строка кода. Каждый модуль приложения должен иметь юнит-тест, чтобы большинство ошибок могло быть исправлено на стадии написания кода. Другим отличительным свойством является то, что тест определяет код, а не наоборот. Это значит, что определенная часть кода может быть признана завершенной только в том случае, если все тесты пройдены успешно. В противном случае, код отклоняется.

Главными достоинствами такой методологии являются постоянное тестирование и короткие релизы, что помогает обеспечить высокое качество кода.

Scrum

Scrum — Часть методологии Agile, итеративный инкрементный фреймворк, созданный для управления процессом разработки ПО. Согласно принципам Scrum, команда тестировщиков должна участвовать в следующих этапах:

  • Участие в Scrum планировании
  • Поддержка в юнит-тестировании
  • Тестирование пользовательских историй
  • Сотрудничество с заказчиком и владельцем продукта для определения критериев приемлемости
  • Предоставление автоматического тестировании

Более того, участники QA-отдела должны присутствовать на всех ежедневных собраниях, как и другие члены команды, чтобы обсудить, что было протестировано и сделано вчера, что будет протестировано сегодня, а также общий прогресс тестирования.

В то же время принципы Agile методологии в Scrum к появлению специфических особенностей:

  • Оценка усилий, необходимых для каждой пользовательской истории является обязательной
  • Тестировщик должен быть внимательным к требованиям, поскольку они могут постоянно изменяться
  • Риск регрессии возрастает вместе с частыми изменениями в коде
  • Одновременность планирования и выполнения тестов
  • Недопонимание между членами команды в случае если требования заказчика не до конца ясны

Узнайте больше о методологии Scrum из предыдущей статьи .

Заключение

В заключение важно отметить, что сегодня практика использования той или иной методологии тестирования ПО подразумевает мультиверсальный подход. Иными словами, не стоит рассчитывать на то, что какая-то одна методология окажется подходящей для всех типов проектов. Выбор одной из них зависит от большого числа аспектов, таких как тип проекта, требования заказчика, поставленные сроки, а также многих других. С точки зрения тестирования ПО, для некоторых методологий характерно приступать к тестированию на ранних этапах разработки, в то время как при работе с другими принято ожидать до тех пор, пока система не готова полностью.

Если вам нужна помощь с разработкой программного обеспечения или тестированием, выделенная команда разработчиков и QA инженеров готова к работе.

Loading...Loading...