Содержание

Терминология: что такое обеспечение качества и чем оно отличается от тестирования. Чем опросник отличается от теста? Автоматизированное или ручное тестирование

Ручное тестирование

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

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

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

Ручное функциональное тестирование ПО

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

Ручное и автоматизированное тестирование программного обеспечения

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

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

Ключевые преимущества ручного тестирования

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

  • Проект по ручному тестированию можно быстро запустить
  • Ручное тестирование позволяет вносить корректировки (менять и актуализировать тесты) в случае необходимости
  • Легко адаптируется к динамичным изменениям тестируемой системы
  • Ручное тестирование полностью имитирует фактическое использование системы конечным пользователем
  • Позволяет получить пользовательский фидбэк, особенно на разовых и непродолжительных проектах
  1. Оперативность
  2. Гибкость
  3. Адаптация
  4. Человеческий фактор
  5. Обратная связь
  6. Ручное тестирование выгодно

Основные этапы ручного тестирования программного обеспечения

  1. Подготовительный
    • Анализ исходных документов о системе (например, техническое задание, паспорт проекта, бизнес-требования, функциональные требования и другие)
    • Разработка и согласование плана ручного тестирования, тест-кейсов, сроков, количества итераций и прочее
    • Оценка возможных рисков, определение границ проекта
  2. Основной
    • Выполнение ручного тестирования на основе спецификаций требований и по заранее подготовленным тестовым сценариям
    • Фиксация обнаруженных дефектов в системе отслеживания ошибок
  3. Заключительный
    • Разработка и согласование отчетов о проведенном тестировании
    • Предоставление рекомендаций по внедрению ПО, совершенствованию систем и пр. (по запросу)

Инструменты ручного тестирования

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

Управление тестированием обычно ведется в специализированных системах, вроде HP ALM, IBM Rational Quality Manager, MS Team Foundation Server, TestRail, TestLink, Jira и Redmine.

Для поиска, конвертации и сравнения файлов могут использоваться Notepad++, Intype или PSPad. Среди файловых менеджеров популярностью пользуются Total Commander, trolCommander, Free Commander и Far Manager. Из XML-редакторов часто используются Altova XML Spy, Xsemmel и XMLPad.

Из инструментов для создания скриншотов, видео, скринкастов и анимации (gif) можно выделить Snagit, ScreenHunter, Monosnap, Snipping Tool, GreenShot, Recordit, CamStudio, Jing, LICEcap и Ashampoo Snap. Для сравнения изображений и других графических файлов инженеры по ручному тестированию часто используют FastStone Image Viewer, ImageDupeless и ImageDiscerner.

Провести работы по ручному функциональному тестированию автоматизированной системы мобильного банка «АС Smart Bank».

В качестве инструментария был выбран продукт HP Application Lifecycle Management 11.0. Тестирование проводилось на устройствах, работающих на платформах iOS и Android.

Усилить внутрибанковские компетенции в области автоматизации тестирования и развернуть инфраструктуру управления жизненным циклом прикладного программного обеспечения.

Читать еще:  Страны экспортеры угля. Экспорт угля из России: плюсы для экономики страны. Месторождения каменного угля в России

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

Проверка функций переводов между картами, корректности расчета комиссии, привязки банковских карт типа VISA, MasterCard, Maestro.

При тестировании устройств на ОС iOS была использована Over-The-Air платформа TestFlight и iPhone Configuration Utility, тестирование ОС Android проводилось с помощью программы Android SDK.

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

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

Терминология: что такое обеспечение качества и чем оно отличается от тестирования. Чем опросник отличается от теста? Автоматизированное или ручное тестирование

Инспекции исходного текста и сквозные просмотры являются основными методами ручного тестирования. Так как эти два метода имеют много общего, они рассматриваются здесь совместно. Инспекции и сквозные просмотры включают в себя чтение или визуальную проверку программы группой лиц. Оба метода предполагают проведение подготовительной работы. Завершающим этапом является «обмен мнениями» – собрание, проводимое участниками проверки. Цель такого собрания – нахождение ошибок, но не их устранение (т. е. тестирование, а не отладка). Программа, тестируется не автором, а другими людьми и фактически «инспекция» и «сквозной просмотр» – просто новые названия старого метода «проверки за столом», однако они более эффективны потому что в процессе участвует не только автор программы, но и другие лица. Результатом использования этих методов является, обычно, точное определение природы ошибок. К тому же этим методом можно обнаруживать группы ошибок, что позволяет в дальнейшем корректировать сразу несколько ошибок.

Инспекции исходного кода

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

Инспекционное заседание разбивается на две части:

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

Сквозные просмотры

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

Проверка за столом

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

Читать еще:  Страны без биометрических паспортов. Как украинцам оформить биометрический паспорт. Биометрические технологии завоевывают мир

Тестирование, обеспечение качества и контроль качества: в чём разница?

Тестирование и обеспечение качества (Quality Assurance, QA) для многих «братья-близнецы», отличить которые друг от друга может только специалист IT-сферы. Несмотря на их взаимосвязь, это совершенно разные термины. Кроме того, их нельзя путать с третьим понятием – контролем качества (Quality Control, QC).

В сегодняшней статье мы расскажем подробнее о каждом из вышеперечисленных видов деятельности и окончательно расставим все точки над i в этом вопросе.

Тестирование vs. обеспечение качества

Так в чем же различие между этими понятиями и почему тестировщиков часто называют специалистами в сфере QA?

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

Кроме тестирования, QA также включает в себя контроль качества, который отвечает за соблюдение предъявляемых к системе требований. Если представить все три термина в виде иерархии, то тестирование окажется частью QC, а QC – частью QA.

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

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

Зачастую профессии тестировщика ПО и QA-инженера воспринимаются тождественно, однако в выполняемых специалистами задачах существует ряд отличий.

Особенности обеспечения качества

Процесс QA включает в себя подготовку плана тестирования, планирование и проведение тестирования, а также управление его результатами. Это помогает определить требования как для разработки ПО, так и для проверки его качества.

В обязанности QA-инженера зачастую входят:

  • детализация требований к системе;
  • подготовка тестов и сам процесс тестирования;
  • поиск и фиксирование дефектов;
  • контроль исправления багов;
  • документирование дефектов.

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

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

Что нужно знать о контроле качества?

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

По сравнению с QA контроль качества требует больше времени и может быть выполнен только после этапа обеспечения качества.

Чтобы процесс контроля качества прошёл максимально эффективно, на проекте нужно:

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

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

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

Что же тогда делает тестировщик?

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

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

Сейчас в большинстве случаев специалисты начинают свою карьеру в IT именно с позиции junior-тестировщика. Это одна из самых лёгких и быстрых точек входа, особенно после прохождения курсов по тестированию ПО. Именно junior-специалисты тестируют разработку по готовым сценариям, в то время как их middle- и senior-коллеги ответственны за разработку планов и тест-кейсов.

Подведём итог

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

Читать еще:  Страны лидеры по выращиванию риса. Мировой рынок риса: производство и торговля. Конъюнктура мировых товарных рынков

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

H Что вам необходимо знать, выбирая: ручное или автоматическое тестирование в черновиках Tutorial

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

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

Ручное тестирование программного обеспечения

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

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

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

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

В общем, автоматизированное тестирование не имеет смысла для маленьких, и краткосрочных проектов, поскольку первоначальные расходы слишком высоки. Кроме того, если вы тестируете вещи, которые требуют человеческого понимания (human touch), такие как юзабилити (usability), то тестировщик-человек будет гораздо лучше. Тестировщикам, которые имеют мало опыта в тестировании, рекомендуется начинать именно с ручного тестирования, и, как только они осознают, что такое тестовое покрытие и оценивание рисков, им следует приступать к автоматизированному тестированию.

Автоматизированное тестирование

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

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

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

Ричард Фенхель, технический директор в компании «Black Marble» объясняет значение использования автоматизированных средств: «Использование авторизированного тестирования, сделало цикл обратной связи короче, так как мы больше не ограничены неудобствами SharePoint. Это не удалило потребность в тестировании, как части цикла разработки ПО полностью, но большая часть проверок, в частности, для веб-частей, стала намного легче.»

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

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

Ссылка на основную публикацию
Adblock
detector