Файл: Отладка и тестирование программ: основные подходы и ограничения (Введение в тестирование программного обеспечения).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 360

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

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

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

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

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

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

1. Введение в тестирование программного обеспечения

1.1 Основные термины и определения

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

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


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

Тестирование программного обеспечения в целом подразделяется на два типа: функциональное и нефункциональное тестирование. [2, 5]

Тестирование следует начинать как можно раньше, чтобы сократить затраты и время на переработку и создание программного обеспечения, которое не содержит ошибок и может быть доставлено клиенту. Однако в жизненном цикле разработки программного обеспечения тестирование можно начинать с фазы сбора требований и продолжать до тех пор, пока программное обеспечение не будет запущено в производство. Это также зависит от используемой модели развития. Например, при водопадной модели тестирование начинается, непосредственно в фазу тестирования, а в V-модели тестирование выполняется параллельно фазе разработки. [7]

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

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

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

  • планирование и контроль;
  • анализ и проектирование;
  • внедрение и выполнение;
  • соответствие критериям;
  • действия по закрытию теста. [1]

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

  1. Автомобили Nissan должны отозвать с рынка более 1 миллиона автомобилей из-за сбоя программного обеспечения в сенсорных детекторах подушек безопасности. Там было зарегистрировано две аварии из-за этого сбоя программного обеспечения.
  2. Starbucks был вынужден закрыть около 60 процентов магазинов в США и Канаде из-за сбоя программного обеспечения в своей системе POS-терминалов.
  3. В 2015 году истребитель F-35 стал жертвой программной ошибки, из-за которой он не мог правильно определять цели.
  4. Аэробус China Airlines A300 разбился из-за ошибки в программном обеспечении 26 апреля 1994 года, в результате чего 264 человека погибли.

Ниже перечислены основные определения в области тестирования программного обеспечения.

Доказательство – попытка найти ошибки в программе безотносительно к внешней для программы среде. Большинство методов доказательства предполагает формулировку утверждений о поведении программы и затем вывод и доказательство математических теорем о правильности программы. Доказательства могут рассматриваться как форма тестирования, хотя они и не предполагают прямого выполнения программы. Многие исследователи считают доказательство альтернативой тестированию -- взгляд во многом ошибочный. [8]

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

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

Аттестация – авторитетное подтверждение правильности программы, аналогичное аттестации электротехнического оборудования Underwriters Laboratories. При тестировании с целью аттестации выполняется сравнение с некоторым заранее определенным стандартом.

1.2 Особенности программного обеспечения

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

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


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

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

Рисунок 1 – Классификация ПО

Свободное программное обеспечение, несколько более новая и не связанная с этим концепция, — это программное обеспечение, которое можно свободно использовать, модифицировать и распространять только с одним ограничением: любая распространяемая версия программного обеспечения должна распространяться с оригинальными условиями бесплатного использования, модификации и распространения (известны как авторское право). В отличие от бесплатного программного обеспечения, бесплатное программное обеспечение может распространяться за плату. Бесплатное программное обеспечение может быть более ограниченным в возможностях, чем свободное программное обеспечение. [3]

Условно-бесплатная программа — это программное обеспечение, которое распространяется бесплатно на пробной основе с пониманием того, что пользователь может нуждаться или захотеть заплатить за него позже. Некоторые разработчики программного обеспечения предлагают условно-бесплатную версию своей программы со встроенным сроком действия (по истечении 30 дней пользователь больше не может получить доступ к программе). Другое условно-бесплатное программное обеспечение предлагается с определенными возможностями.

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


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

Дополнительной и трудно классифицируемой категорией программного обеспечения является утилита, которая представляет собой небольшую полезную программу с ограниченными возможностями. Некоторые утилиты поставляются с операционными системами. Как и приложения, утилиты, как правило, устанавливаются отдельно и могут использоваться независимо от остальной части операционной системы. Например, апплеты — это небольшие приложения, которые иногда поставляются с операционной системой как «аксессуары». Они также могут быть созданы независимо с использованием Java или других языков программирования. [6]

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

Программное обеспечение часто упаковывается на CD-ROM. Сегодня многие приобретенные программы, условно-бесплатные и бесплатные программы загружаются через Интернет. Новая тенденция — это программное обеспечение, доступное для использования на другом сайте, известном как поставщик услуг приложений.

Некоторые общие виды прикладного программного обеспечения включают в себя:

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

В данной главе были рассмотрены основные понятия и определения, которые относятся к тестированию программного обеспечения, приведен один из видов классификации ПО,