4-software_engineering_testing (1133544)
Текст из файла
Основы программной инженерии (по SWEBOK)Программная инженерия. Тестирование программного обеспечения.Программная инженерияТестирование программного обеспечения(Software Testing)®Глава базируется на IEEE Guide to the Software Engineering Body of Knowledge - SWEBOK , 2004.Содержит перевод описания области знаний SWEBOK® “Software Testing”, с комментариями изамечаниями."Основы программной инженерии" разработаны на базе IEEE Guide to SWEBOK® 2004 в соответствии с IEEESWEBOK 2004 Сopyright and Reprint Permissions: "This document may be copied, in whole or in part, in any form orby any means, as is, or with alterations provided that (1) alterations are clearly marked as alterations and (2) thiscopyright notice is included unmodified in any copy."Русский перевод SWEBOK 2004 с замечаниями и комментариями подготовлены Сергеем Орликомпри участии Юрия Булуя.
Дополнительные главы написаны Сергеем Орликом. Текст расширений SWEBOKотмечен ццветом, отличным от перевода оригинального текста."Основы программной инженерии" Сopyright © 2004-2010 Сергей Орлик. Все права защищены.SWEBOK Сopyright © 2004 by The Institute of Electrical and Electronics Engineers, Inc.
All rights reserved.Официальный сайт “Основ программной инженерии” (по SWEBOK) - http://swebok.sorlik.ruCopyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru1Основы программной инженерии (по SWEBOK)Программная инженерия. Тестирование программного обеспечения.Программная инженерияТестирование программного обеспечения (Software Testing)Программная инженерия .......................................................................................................................... 2Тестирование программного обеспечения (Software Testing).............................................................. 21. Основы тестирования (Software Testing Fundamentals) ................................................................
41.1 Терминология тестирования (Testing-Related Terminology) .................................................... 41.2 Ключевые вопросы (Key Issues) ............................................................................................... 41.3 Связь тестирования с другой деятельностью (Relationships of testing with other activities) .... 52. Уровни тестирования (Test Levels) ................................................................................................ 52.1 Над чем производятся тесты (The target of the test) ................................................................ 52.2 Цели тестирования (Objectivies of Testing) ..............................................................................
63. Техники тестирования (Test Techniques)....................................................................................... 83.1 Техники, базирующиеся на интуиции и опыте инженера (Based on the software engineer’sintuition and experience) .................................................................................................................. 83.2 Техники, базирующиеся на спецификации (Specification-based techniques)........................... 93.3 Техники, ориентированные на код (Code-based techniques) ................................................... 93.4 Тестирование, ориентированное на дефекты (Fault-based techniques)................................
103.5 Техники, базирующиеся на условиях использования (Usage-based techniques) .................. 103.6 Техники, базирующиеся на природе приложения (Techniques based on the nature of theapplication) .................................................................................................................................... 113.7 Выбор и комбинация различных техник (Selecting and combining techniques)...................... 114. Измерение результатов тестирования (Test-related measures).................................................. 114.1 Оценка программ в процессе тестирования (Evaluation of the program under test, IEEE 982.198) .................................................................................................................................................
114.2 Оценка выполненных тестов (Evaluation of the tests performed)............................................ 125. Процесс тестирования (Test Process) ......................................................................................... 135.1 Практические соображения (Practical considerations) ............................................................
135.2 Тестовые работы (Test Activities) ........................................................................................... 15Тестирование (software testing) – деятельность, выполняемая для оценки и улучшения качествапрограммного обеспечения. Эта деятельность, в общем случае, базируется на обнаружениидефектов и проблем в программных системах.Тестирование программных систем состоит из динамической верификации поведения программ наконечном (ограниченном) наборе тестов (set of test cases), выбранных соответствующим образом изобычно выполняемых действий прикладной области и обеспечивающих проверку соответствияожидаемому поведению системы.В данном определении тестирования выделены слова, определяющие основные вопросы, которымадресуется данная область знаний:Динамичность (dynamic): этот термин подразумевает тестирование всегда предполагаетвыполнение тестируемой программы с заданными входными данными.
При этом, величины,задаваемые на вход тестируемому программному обеспечению, не всегда достаточны дляопределения теста. Сложность и недетерминированность систем приводит к тому, чтосистема может по разному реагировать на одни и те же входные параметры, в зависимостиот состояния системы. В данной области знаний термин “вход” (input) будет использоваться врамках соглашения о том, что вход может также специфицировать состояние системы, в техслучаях, когда это необходимо. Кроме динамических техник проверки качества, то естьтестирования, существуют также и статические техники, рассматриваемые в области знаний“Software Quality”.Конечность (ограниченность, finite): даже для простых программ теоретически возможностоль большое количество тестовых сценариев, что исчерпывающее тестирование можетзанять многие месяцы и даже годы.
Именно поэтому, с практической точки зрения,всестороннее тестирование считается бесконечным. Тестирование всегда предполагаетCopyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru2Основы программной инженерии (по SWEBOK)Программная инженерия. Тестирование программного обеспечения.компромисс между ограниченными ресурсами и заданными сроками, с одной стороны, ипрактически неограниченными требованиями по тестированию, с другой. То есть мы сноваговорим об определении характеристик “приемлемого” качества, на основе которыхпланируем необходимы объем тестирования.Выбор (selection): многие предлагаемые техники тестирования отличаются друг от друга втом, как выбираются сценарии тестирования.
Инженеры по программному обеспечениюдолжны обладать представлением о том, что различные критерии выбора тестов могутдавать разные результаты, с точки зрения эффективности тестирования. Определениеподходящего набора тестов для заданных условий является очень сложной проблемой.Обычно, для выбора соответствующих тестов совместно применяют техники анализа рисков,анализ требований и соответствующую экспертизу в области тестирования и заданнойприкладной области.Ожидаемое поведение (expected behaviour): Хотя это не всегда легко, все же необходиморешить, какое наблюдаемое поведение программы будет приемлемо, а какое – нет.
Впротивном случае, усилия по тестированию – бесполезны. Наблюдаемое поведение можетрассматриваться в контексте пользовательских ожиданий (подразумевая “тестирования дляпроверки” - testing for validation), спецификации (“тестирование для аттестации” - testing forverification) или, наконец, в контексте предсказанного поведения на основе неявныхтребований или обоснованных ожиданий.
См. тему SWEBOK 6.4 “Приемочные тесты”области знаний “Software Requirements”.Общий взгляд на тестирование программного обеспечения последние годы активноэволюционировал, становясь все более конструктивным, прагматичным и приближенным к реалиямсовременных проектов разработки программных систем. Тестирование более не рассматриваетсякак деятельность, начинающаяся только после завершения фазы конструирования.
Сегоднятестирование рассматривается как деятельность, которую необходимо проводить на протяжениивсего процесса разработки и сопровождения и является важной частью конструированияпрограммных продуктов. Действительно, планирование тестирования должно начинаться на раннихстадиях работы с требованиями, необходимо систематически и постоянно развивать и уточнятьпланы тестов и соответствующие процедуры тестирования. Даже сами по себе сценариитестирования оказываются очень полезными для тех, кто занимается проектированием, позволяявыделять те аспекты требований, которые могут неоднозначно интерпретироваться или даже бытьпротиворечивыми.Не секрет, что легче предотвратить проблему, чем бороться с ее последствиями.
Тестирование,наравне с управлением рисками, является тем инструментом, который позволяет действоватьименно в таком ключе. Причем действовать достаточно эффективно. С другой стороны, необходимоосознавать, что даже если приемочные тесты показали положительные результаты, это совсем неозначает, что полученный продукт не содержит ошибок. Этим вопросам, в частности, адресованаобласть знаний “Сопровождение программного обеспечения” (Software Maintenance). Однако,адекватное внимание вопросам тестирования качественно снижает риск возникновения ошибок наэтапе эксплуатации, обеспечивая более высокую удовлетворенность пользователей, что и является,по существу, целью любого проекта.В области знаний “Качество программного обеспечения” (Software Quality) техники управлениякачеством четко разделены на статические (без выполнения кода) и динамические (с выполнениемкода).
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.