Тестирование ПО и программная инженерия
Стр 1 из 2Следующая ⇒ Лекция №1. Основные понятия в области тестирования программного обеспечения (ПО). Особенности организации процесса тестирования ПО
Понятие тестирования программного обеспечения В учебной литературе, например [1-4], даны различные определения для термина «тестирование программного обеспечения». Обобщив их, можно привести следующее определение: Тестирование – это один из видов деятельности в процессе разработки программного обеспечения (ПО), заключающийся в проверке соответствия между реальными результатами выполнения программы, полученными на конечном множестве исходных данных, и ожидаемыми, заранее известными результатами (называемыми эталонными). Целью такой проверки является установление соответствия поведения программы, ее свойств и характеристик требованиям. В ходе тестирования осуществляется контролируемое выполнение программы для выявления в ней дефектов (т.е. фактов расхождения с требованиями). Тестирование направлено на минимизацию количества дефектов в программе. Задача тестирования – определение условий, при которых проявляются дефекты системы, и протоколирование этих условий. В процесс тестирования обычно не входит выявление конкретных дефектных участков программного кода и никогда не входит исправление дефектов – это задача отладки, которая выполняется по результатам тестирования системы. Отладка – процесс нахождения ошибок, являющихся причинами дефектов в программе, и исправления этих ошибок. Отладка начинается после того, как в ходе тестирования были обнаружены дефекты. Тестирование является одним из наиболее устоявшихся способов обеспечения качества разработки ПО и входит в набор эффективных средств современной системы обеспечения качества программного продукта.
Чтобы избежать путаницы, необходимо также определить понятия «верификация» и «валидация», связанные с тестированием ПО. Верификация – процесс, направленный на проверку степени соответствия разрабатываемой программной системы требованиям. Понятие «верификация ПО» является более общим, чем «тестирование ПО». Процесс тестирования является составной частью процесса верификации. Валидация – это проверка соответствия программной системы ожиданиям заказчика. Целью валидации является доказательство того, что в результате разработки системы достигнуты те цели, которые планировали достичь благодаря ее использованию. Термины «тестирование», «верификация» и «валидация» означают разные уровни проверки корректности работы программной системы. Проведенное тестирование само по себе не может гарантировать полного отсутствия дефектов в ПО. Однако, в сочетании с другими процессами в рамках верификации и валидации (например, направленными на устранение противоречивости и неполноты проектной документации), грамотно организованное тестирование дает гарантию того, что система удовлетворяет требованиям во всех предусмотренных ситуациях.
Тестирование ПО и программная инженерия Рассмотрение различных аспектов тестирования ПО находится в рамках научно-практической дисциплины software engineering, что переводится на русский язык как «инженерия программного обеспечения» или, как утвердилось в национальных стандартах, «программная инженерия». Программная инженерия – это система инженерных принципов для создания экономичного ПО, которое надежно и эффективно работает в реальных компьютерах. Программная инженерия обеспечивает систематическое применение научных и технологических знаний, методов и практического опыта к проектированию, реализации, тестированию и документированию ПО в целях оптимизации его производства, поддержки и качества.
Программная инженерия обеспечивает управляемый, комплексный подход к созданию сложного программного продукта коллективом инженеров, определяя все шаги этой деятельности – от начальной идеи до прекращения использования продукта клиентами. Далее будет рассмотрен ряд наиболее важных понятий в области программной инженерии, понимание которых необходимо при изучении особенностей тестирования ПО. Программное обеспечение (ПО) включает в себя не только программы, но и всю сопутствующую документацию, а также конфигурационные данные (т.е. данные о настройках программы), необходимые для правильной работы программы. ПО часто называют программной системой (ПС), чтобы подчеркнуть наличие многих элементов и показать его сложность. Известно, что системой называют совокупность объектов произвольной природы, образующих некоторую целостность. Определяющая предпосылка выделения некоторой совокупности как системы – это возникновение у нее новых свойств, отсутствующих в составляющих ее элементах [5]. Зачастую ПО создается промышленным способом, коллективом профессиональных инженеров, и продается пользователям в виде программныхпродуктов. Разрабатываются программные продукты в рамках программных проектов. Программный проект – это временное предприятие (т.е. имеющее определенное начало и завершение), предназначенное для создания уникальных продуктов или услуг. Завершение наступает, когда достигнуты цели проекта или признано, что цели проекта не могут быть достигнуты или исчезла необходимость в проекте. Несмотря на временный характер программных проектов, большинство проектов предпринимается для достижения устойчивого, длительного результата – время жизни конечного программного продукта может существенно превышать время жизни программного проекта. Различают методы, средства и процессы программной инженерии. Метод (переводится с древнегреческого как «путь исследования или познания») – систематизированная совокупность шагов, действий, которые необходимо предпринять, чтобы решить определенную задачу или достичь определенной цели. Методыпрограммной инженерии обеспечивают решение следующих задач:
– планирование и оценка программного проекта; – анализ требований к компьютерной системе и, в частности, к ее ПО; – проектирование алгоритмов, структур программ и структур данных; – конструирование программного текста (синонимы: кодирование, программирование, реализация); – тестирование; – сопровождение ПО, уже используемого заказчиком. Средства (утилиты) программной инженерии обеспечивают автоматизированную или автоматическую поддержку методов. В целях совместного применения утилиты могут объединяться в системы автоматизированной разработки ПО. Такие системы принято называть CASE-системами (Computer Aided Software Engineering – программная инженерия с компьютерной поддержкой). Процесспрограммной инженерии – это набор взаимосвязанных работ, которые преобразуют исходные данные в выходные результаты. Процессы объединяют методы и средства так, что они обеспечивают непрерывную технологическую цепочку разработки. Процессы определяют: – порядок применения методов и утилит; – формирование отчетов, форм по соответствующим требованиям; – контроль, помогающий обеспечивать качество и координировать изменения; – формирование «вех» (т.е. временных меток), по которым руководители оценивают прогресс. Реальные процессы достаточно сложны, поэтому в теории программной инженерии предлагаются модели процессов – упрощенные и формализованные описания процессов создания ПО. Следует помнить, что модель – это некоторое представление о системе, отражающее наиболее существенные закономерности ее структуры и процесса функционирования и зафиксированное на некотором языке или в другой форме[5]. Модели процессов являются лишь абстрактными представлениями реальной последовательности шагов разработки ПО. Однако, применение моделей процессов гарантирует систематический, упорядоченный подход к промышленной разработке, использованию и сопровождению ПО, вносит в процесс создания ПО организующее инженерное начало.
Качество программного обеспечения – это степень соответствия системы, компонента или процесса определенным требованиям [1]. Качество ПО характеризуется набором свойств, определяющих, насколько продукт хорош или плох с точки зрения заинтересованных сторон, таких как заказчик, спонсор, конечный пользователь, разработчики и тестировщики, и т.д. Каждый из участников может иметь различное представление о том, насколько высоко качество продукта. Постановка задачи обеспечения качества продукта является задачей определения заинтересованных лиц, их критериев качества и затем нахождения оптимального решения, удовлетворяющего этим критериям.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|