Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Тестирование ПО и программная инженерия




Лекция №1. Основные понятия в области тестирования программного обеспечения (ПО). Особенности организации процесса тестирования ПО

 

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

В учебной литературе, например [1-4], даны различные определения для термина «тестирование программного обеспечения». Обобщив их, можно привести следующее определение:

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

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

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

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

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

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

Чтобы избежать путаницы, необходимо также определить понятия «верификация» и «валидация», связанные с тестированием ПО.

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

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

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

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

 

Тестирование ПО и программная инженерия

Рассмотрение различных аспектов тестирования ПО находится в рамках научно-практической дисциплины software engineering, что переводится на русский язык как «инженерия программного обеспечения» или, как утвердилось в национальных стандартах, «программная инженерия».

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

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

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

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

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

Известно, что системой называют совокупность объектов произвольной природы, образующих некоторую целостность. Определяющая предпосылка выделения некоторой совокупности как системы – это возникновение у нее новых свойств, отсутствующих в составляющих ее элементах [5].

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

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

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

Различают методы, средства и процессы программной инженерии.

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

– планирование и оценка программного проекта;

– анализ требований к компьютерной системе и, в частности, к ее ПО;

– проектирование алгоритмов, структур программ и структур данных;

– конструирование программного текста (синонимы: кодирование, программирование, реализация);

– тестирование;

– сопровождение ПО, уже используемого заказчиком.

Средства (утилиты) программной инженерии обеспечивают автоматизированную или автоматическую поддержку методов. В целях совместного применения утилиты могут объединяться в системы автоматизированной разработки ПО. Такие системы принято называть CASE-системами (Computer Aided Software Engineering – программная инженерия с компьютерной поддержкой).

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

– порядок применения методов и утилит;

– формирование отчетов, форм по соответствующим требованиям;

– контроль, помогающий обеспечивать качество и координировать изменения;

– формирование «вех» (т.е. временных меток), по которым руководители оценивают прогресс.

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

Следует помнить, что модель – это некоторое представление о системе, отражающее наиболее существенные закономерности ее структуры и процесса функционирования и зафиксированное на некотором языке или в другой форме[5].

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

Качество программного обеспечения – это степень соответствия системы, компонента или процесса определенным требованиям [1].

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

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...