Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

1. Какие виды тестирования наиболее важны для практики?

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

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

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

По объекту тестирования:

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

По знанию системы:

  • Тестирование чёрного ящика
  • Тестирование белого ящика
  • Тестирование серого ящика

По степени автоматизированности:

  • Ручное тестирование
  • Автоматизированное тестирование
  • Полуавтоматизированное тестирование

По степени изолированности компонентов:

  • Компонентное (модульное) тестирование
  • Интеграционное тестирование
  • Системное тестирование

По времени проведения тестирования:

  • Альфа тестирование
    • Тестирование при приёмке
    • Тестирование новой функциональности
    • Регрессионное тестирование
    • Тестирование при сдаче
  • Бета тестирование

По признаку позитивности сценариев:

  • Позитивное тестирование
  • Негативное тестирование

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

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

  

2. Что такое тестирование программы как «черного ящика»?

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

Известны: функции программы.

Исследуется: работа каждой функции на всей области определения.

Как показано на рис. 1, основное место приложения тестов «черного ящика» — интерфейс ПО.

Рис. 1. Тестирование «черного ящика»

Эти тесты демонстрируют:

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

При тестировании «черного ящика» рассматриваются системные характеристики программ, игнорируется их внутренняя логическая структура. Исчерпывающее тестирование, как правило, невозможно.

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

  • набор, образуемый такими входными данными, которые приводят к аномалиям поведения программы (назовем его IT);
  • набор, образуемый такими выходными данными, которые демонстрируют дефекты программы (назовем его ОТ).

Любой способ тестирования «черного ящика» должен:

  • выявить такие входные данные, которые с высокой вероятностью принадлежат набору IT;
  • сформулировать такие ожидаемые результаты, которые с высокой вероятностью являются элементами набора ОТ.

Тестирование «черного ящика» обеспечивает поиск следующих категорий ошибок:

  1. некорректных или отсутствующих функций;
  2. ошибок интерфейса;
  3. ошибок во внешних структурах данных или в доступе к внешней базе данных;
  4. ошибок характеристик (необходимая емкость памяти и т. д.);
  5. ошибок инициализации и завершения.

При тестировании «черного ящика» пренебрегают управляющей структурой программы. Здесь внимание концентрируется на информационной области определения программной системы.

Техника «черного ящика» ориентирована на решение следующих задач:

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

  

3. Какие квалификационные требования предъявляются к специалисту по тестированию ПС?

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

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

Квалификационные требования.

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

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

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

 

Требуемая квалификация Желательная квалификация
Высшее техническое (IT) образование Знание технологий тестирования ПО
Опытный пользователь ПК Опыт тестирования ПО
Опыт программирования Опыт использования инструмента автоматизированного тестирования
Знание технологий баз данных Знакомство с жизненным циклом разработки программного продукта в целом
Способность к быстрому переключению между задачами Опыт работы с различными реляционными СУБД
Ответственность Знание языков программирования
Умение четко излагать свои мысли (устно и письменно) Опыт проектирования комплекта тестов
Знание английского языка (чтение технической литературы) Знание стандартов тестирования
Обучаемость, «живой ум»  
Высокая степень коммуникабельности и способность работать в постоянно меняющейся среде  
Умение работать в команде и эффективно взаимодействовать с высшим руководством  


  

4. По каким показателям оцениваются методы тестирования?

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

  • интенсивность (вероятность) обнаружения и устранения ошибок за единицу времени тестирования;
  • достигаемую надежность (или корректность) функционирования программного средства или его компонентов за счет рационального применения данного метода.

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

Была ли полезна данная статья?
Да
60%
Нет
40%
Проголосовало: 50

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram