Теоретические сведения

Лабораторная работа №1 Цели и задачи тестирования

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

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

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

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

В процессе тестирования проверяется, что программа работает в соответствии со спецификацией. Программа работает корректно, если она удовлетворяет следующим критериям:

1. При допустимых входных данных программа вырабатывает верный результат.

2. При недопустимых входных данных программа отвергает входные данные и выдает соответствующее диагностическое сообщение.

3. Независимо от допустимости входных данных программа не зависает и не завершается аварийно.

4. Программа правильно работает так долго, как это предполагалось.

5. Программа ведет себя согласно спецификации.

 

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

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

 

День тестировщика - 9 сентября 1945 года ученые Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле. Проделанная работа требовала описания, и слово было найдено — debugging (дебаггинг, дословно: избавление от насекомого) — так и ныне называется процесс выявления и устранения багов (bugs) — причин сбоя работы компьютера. А само слово тестировщик произведено от английского слова test — проверка, испытание.

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

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

В таблице 1 приведены требования, применяемые к разным типам тестировщиков.

 

Таблица 1.4. Развитие профессиональных навыков тестировщика

Рост карьеры Описание
Младший тестировщик Позиция начального уровня для тех, кто имеет диплом в области вычислительной техники, или тех, у кого есть некоторый опыт ручного тестирования. Разрабатывает скрипты тестирования и начинает знакомиться с жизненным циклом и методами тестирования
Тестировщик/ программист-аналитик   Тестировщик или программист, имеющий одно- или двухгодичный опыт работы. Программирует скрипты тестирования и исполняет ведущую роль в программировании для тестирования. Совершенствует свои навыки в области языков программирования, операционных систем, сетей и баз данных.
Старший тестировщик/ программист-аналитик   Тестировщик или программист, имеющий трех- или четырехгодичный опыт работы. Помогает развивать и поддерживать стандарты и процессы тестирования и программирования, возглавляет критические просмотры и руководит младшими тестировщиками и программистами. Совершенствует свои навыки в области языков программирования, операционных систем, сетей и баз данных.  
Руководитель группы Тестировщик или программист, имеющий опыт работы от четырех до шести лет. Руководит работой от одного до трех тестировщиков или программистов. Имеет определенные обязанности по составлению плана-графика и оценке трудоемкости/стоимости. Технические навыки становятся более конкретными.
Ведущий тестировщик / ведущий программист Тестировщик или программист, имеющий опыт работы от шести ведущий программист до десяти лет. Руководит работой от четырех до восьми  сотрудников. Отвечает за составление графика работ, оценку трудоемкости/стоимости и поставку продукта в намеченные сроки и в рамках намеченного бюджета. Отвечает за разработку технического подхода в проекте. Обеспечивает некоторую поддержку заказчиков и презентации. Углубляет технические знания в нескольких определенных областях.
Тест-менеджер / Менеджер по обеспечению  качества/ Менеджер по разработке (проекта) Опыт работы не менее десяти лет. Руководит работой не менее восьми сотрудников в одном или более проектах. Отвечает за качества/ реализацию всего жизненного цикла разработки в соответствующей области (тестирование/обеспечение качества/разработка). Обеспечивает некоторое взаимодействие с заказчиком и многочисленные презентации. Отвечает за стоимость, выполнение графика работ, планирование и персонал.
Менеджер программы Опыт работы не менее пятнадцати лет в области разработки и поддержки (тестирование/обеспечение качества). Отвечает за персонал, занятый в нескольких проектах, и за полный жизненный цикл разработки. Берет на себя ответственность за управление проектом и прибыль/убытки

 

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

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

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

Целью комплексного тестирования (integration testing) является проверка того, что каждый из модулей корректно взаимодействует с другими программными модулями.

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

Задание. Для готовой программной системы нарисовать структуру системы, провести ручное тестирование, задокументировав цели и задачи тестирования для программной системы. Например:

Цели тестирования

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

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

■ Провести полное тестирование приложения за короткий срок.

Задачи тестирования

• Проверить, что система работает в соответствии с определенными временами отклика клиента и сервера.

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

■ Проверить работу пользовательских интерфейсов

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

■ При проектировании тестов свести к минимуму переработку тестов при возможных изменениях приложения.

■ Использовать инструменты автоматизированного тестирования там, где это целесообразно.

■ Проводить тестирование таким образом, чтобы не только обнаруживать, но и предупреждать дефекты.

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

 

 

В таблице 1 приведены различные типы тестов, применяемых для тестирования удобства использования.

Таблица 1. Тестирование удобства использования

Обычное экранное тестирование Режим и команды Подтверждение операции удаления Соответствие компоновки стандартам Соответствие названий полей экрана стандартам Положительный/отрицательный/нулевой отклик на ввод данных Потоки меню Возвраты возможных ошибок конечных пользователей Блокировка клавиш как сигнал конечному пользователю Орфография и грамматика, приемлемые термины Одинаковые имена для одинаковых полей Данные, скрываемые системными сообщениями Логический поток экранов Стандартное использование «горячих клавиш» Способность сохранять работу пользователя Распределение памяти Емкие системные сообщения Возможность опережающего ввода данных с клавиатуры Рассмотрение графического интерфейса пользователя Выбор/отмена выбора значков Графическое отображение данных Возврат/отмена команд Горизонтальные/вертикальные полосы прокрутки Цвета Списки Ненужные данные/пробелы Слишком много/слишком мало введенных данных Пропущенные/неправильные разделители Слишком мало/слишком много отображаемых элементов    
Курсор Размещение на первом поле требуемых данных Пропуск верных полей в процессе редактирования Поведение в закрытых и нередактируемых полях Движение от одного поля к следующему Редактирование последовательности полей Сообщения об ошибках Ориентированы на пользователя, легки для понимания Соответствующие сообщения Стандартизированные сообщения Отчеты по поводу известных ошибок  
  Редактирование чисел Допустимые значения Максимум/минимум или таблица- Значения, начинающиеся с нуля или десятичные Верный знак Соответствие полей требованиям Значения, присваиваемые по умолчанию Целые числа и числа с плавающей запятой
  Редактирование дат Формат Отображение на экране после заполнения Проверка диапазона значений, высокосный год, 2000 год и т.д. Пустые поля, пробелы, нули Соответствие полей требованиям Значения, присваиваемые по умолчанию
  Редактирование символов Формат Диапазон, область действия Отображение на экране после заполнения Соответствие полей требованиям Значения, присваиваемые по умолчанию Пробелы в начале и в конце
  Отчеты Порядок сортировки Порядок вывода на экран Печать даты/номера страниц Усечение данных или выравнивание по столбцу Согласованность отчетов

 

Результаты тестирования предоставить преподавателю.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: