Вопросы объединения процессов тестирования и кадрового обеспечения 142 Часть П. Технологии быстрого тестирования и советы 159
Скачать 4.53 Mb.
|
Оглавление Предисловие 11 Часть I. Процесс быстрого тестирования 15 Глава 1. Понятие о технологии быстрого тестирования 16 Глава 2. Анализ требований и тестирование 35 Глава 3. Планирование испытаний 56 Глава 4. Проектирование и разработка тестов 98 Глава 5. Системные испытания • 118 Глава 6. Вопросы объединения процессов тестирования и кадрового обеспечения 142 Часть П. Технологии быстрого тестирования и советы 159 Глава 7. Введение в технологии тестирования и советы 160 Глава 8. Совместная разработка требований к приложению (JAR): метод выработки требований с применением быстрого тестирования 173 Глава 9. Технологии статического тестирования и советы 183 Глава Ю.Технологии динамического тестирования и советы 211 Глава 11. Разработка и использование показателей тестирования: моделирование и прогнозирование ошибок 241 Глава 12. Технологии оценки трудозатрат на тестирование и советы 264 Часть I I I . П р и м е р ы выполнения быстрого тестирования 293 Глава 13. П р и м е р формулирования требований 294 Глава 14. П р и м е р плана тестирования 313 Глава 15. П р и м е р ы проектирования и разработки тестов 328 Глава 16. П р и м е р сводного отчета по системным испытаниям 368 Литература 377 Предметный указатель 380 Содержание Предисловие 11 Ключевые особенности 11 Структура книги 12 Об авторах 13 Благодарности 14 Часть I. Процесс быстрого тестирования 15 Глава 1. Понятие о технологии быстрого тестирования 16 Основные определения в области тестирования программного обеспечения 17 Что такое быстрое тестирование? 19 Персонал 20 Процесс комплексных испытаний 21 Статическое тестирование 21 Динамическое тестирование 21 Разработка стратегии быстрого тестирования 22 Процесс разработки программного обеспечения 22 Каскадный процесс тестирования 25 Анализ требований 26 Планирование испытаний 28 Проектирование тестов, реализации и отладка 29 Системное тестирование 29 Приемочные испытания 30 Сопровождение 30 Связь тестирования и разработки 31 Что дальше 34 Глава 2. Анализ требований и тестирование 35 Процесс формулирования требований 37 Выявление требований 39 Определение требований 42 Спецификация требований 45 Матрица прослеживаемости требований 47 Тестирование требований 47 Критерии, используемые при тестировании требований 49 Использование прототипов 50 Тестирование в рамках жизненного цикла эволюционного прототипирования 52 Что дальше 54 Глава 3. Планирование испытаний 56 Стратегия тестирования 58 Определение объемов тестовых работ 59 Содержание 7 Определение подхода к тестированию 62 Определение критериев тестирования и точек контроля качества 64 Определение стратегии автоматизации 66 Определение стратегии тестирования 69 Архитектура тестов 69 Инструментальные средства тестирования 71 Среда тестирования 73 Конфигурации аппаратных средств тестирования 74 Оценка трудозатрат на тестирование 75 Определение задач 77 Определение трудозатрат 79 Определение продолжительности задачи и построение графика работ 83 Оценка рисков, связанных с графиком работ 85 Подготовка и пересмотр документов, содержащих планы проведения испытаний 86 Формат плана проведения испытаний 86 Проверка выполнения плана проведения испытаний 95 Ч т о дальше 96 Глава 4. П р о е к т и р о в а н и е и разработка т е с т о в 98 Разработка тестов 99 Определение целей теста 102 Определение спецификаций ввода 103 Определение конфигурации средств тестирования 103 Документ проектов тестов 104 Разработка тестовых случаев 105 Разработка детализированных методик тестирования 107 Определение ожидаемых результатов 110 Установка и очистка — тестирование из известного состояния 110 Шаблон тестового случая 111 Управление конфигурацией тестового случая 113 П е р е с м о т р и отладка тестов 114 Автоматизация тестовых случаев 115 Ч т о дальше 116 Глава 5. Системные испытания 118 Обнаружение и отслеживание дефектов 120 Определение состояний дефектов 120 Базовые характеристики системы отслеживания дефектов 123 Как составлять сообщения о дефектах 128 Анализ обнаруженных дефектов 129 П р о г о н тестов 131 Вход в системные испытания 131 Циклы тестирования 132 Регистрация результатов тестирования 134 Составление отчетов по результатам тестирования 135 Отчет о ходе работ по тестированию 136 8 С о д е р ж а н и е Отчет об устранении дефектов 137 О т ч е т н ы й доклад 138 Критерий выхода из испытаний и готовность выпуска программного продукта 139 Ч т о дальше 140 Глава 6. В о п р о с ы о б ъ е д и н е н и я п р о ц е с с о в т е с т и р о в а н и я и к а д р о в о г о о б е с п е ч е н и я 142 Человеческий ф а к т о р и тестирование 143 Качества, которыми должен обладать специалист по тестированию, чтобы успешно справляться со своими обязанностями 143 Характерные ошибки 145 Как проводить опросы претендентов 147' Совершенствование процесса тестирования 149 Модель развития функциональных возможностей программного обеспечения СММ 150 Как модель СММ соотносится с быстрым тестированием 153 Возможности совершенствования процессов 155 Ч т о дальше 156 Часть II. Т е х н о л о г и и б ы с т р о г о т е с т и р о в а н и я и с о в е т ы 159 Глава 7. В в е д е н и е в т е х н о л о г и и т е с т и р о в а н и я и с о в е т ы 160 Область применения технологий тестирования 160 Ж и з н е н н ы й цикл разработки 161 Преимущества быстрого тестирования 164 Определение статического тестирования 165 Определение динамического тестирования 166 Ж и з н е н н ы й цикл дефекта 167 Формальные этапы тестирования 169 Обязанности членов команды тестирования 170 Ч т о дальше 172 Глава 8. С о в м е с т н а я разработка т р е б о в а н и й к п р и л о ж е н и ю (JAR): м е т о д в ы р а б о т к и т р е б о в а н и й с п р и м е н е н и е м б ы с т р о г о т е с т и р о в а н и я 173 Методология JAR 174 Роль специалистов по тестированию в процессе JAR 181 Резюме 182 Глава 9. Т е х н о л о г и и статического т е с т и р о в а н и я и с о в е т ы 183 Цикломатическая сложность и ее взаимосвязь с выполнением тестирования 184 П р и м е р представления проекта модуля в виде графа 185 Формальная оценка 189 П р и м е н е н и е контрольных перечней 191 Аудит 192 И н с п е к ц и и / к р и т и ч е с к и й а н а л и з / экспертные оценки 195 Распределение ролей и обязанностей в группе выполнения инспекций 195 Отчетность о процессе выполнения инспекций 198 Содержание 9 Показатели процесса инспекции 198 Использование электронной почты или другого электронного приложения для ускорения процесса инспекции 198 Формальная в е р и ф и к а ц и я 200 Языки на основе спецификаций 201 Автоматизированное доказательство теорем 201 Средства автоматизации тестирования 202 Прослеживаемость требований 202 Программа контроля единиц измерения физических величин 202 Символьное выполнение 203 Листинги перекрестных ссылок 204 Программы улучшенной печати 204 Средства сравнения версий 205 Тестирование алгоритмов 205 Диспетчер тестирования 208 Базы данных материалов совместного использования 210 Резюме 210 Глава 10. Т е х н о л о г и и д и н а м и ч е с к о г о т е с т и р о в а н и я и с о в е т ы 211 Функциональное тестирование и анализ 213 Разделение по классам эквивалентности 214 Анализ граничных з н а ч е н и й 215 Отрицательное тестирование 215 Тестирование на основе определения степени риска 217 Определение полноты охвата ветвей при тестировании 220 Тестирование случаев использования 224 Псевдоотладка/видоизменение 226 Трассировка/трассировка снизу в в е р х / мгновенные дампы/постпечать 227 Создание точек п р е р ы в а н и я / п р а в к и 228 Тестирование потока данных 230 Тестирование на предмет утечек памяти 231 •Тестирование и н т е р ф е й с а "человек-компьютер" 233 Тестирование нагрузочной эффективности 234 Тестирование конфигурации платформы 238 Резюме 240 Глава 11. Р а з р а б о т к а и и с п о л ь з о в а н и е показателей т е с т и р о в а н и я : м о д е л и р о в а н и е и п р о г н о з и р о в а н и е о ш и б о к 241 Определение показателей и данных измерений 242 Использование стандартных показателей для внесения усовершенствований 251 Показатели тестирования 255 Плотность ошибок (количество ошибок на тысячу эквивалентных строк кода) 256 Проектно-ориентированная модель ошибок 257 Программа оценки ошибок программного обеспечения (SWEEP) 259 Резюме 263 10 Содержание Глава 12. Технологии оценки трудозатрат на тестирование и советы 264 Применение математических методов для оценки программного обеспечения 268 Технология функциональных баллов 287 Резюме 290 Часть III. Примеры выполнения быстрого тестирования 293 Глава 13. Пример формулирования требований 294 Набор инструментальных средств управления тестированием. Версия 1.0 296 Глава 14. Пример плана тестирования 313 Набор инструментальных средств управления тестированием. Версия 1.0 315 Глава 15. Примеры проектирования и разработки тестов 328 Набор инструментальных средств управления тестированием. Версия 1.0 333 Глава 16. Пример сводного отчета по системным испытаниям 368 Набор инструментальных средств управления тестированием. Версия 1.0 370 Литература 377 Предметный указатель 380 Предисловие В данной книге дается описание практического подхода к тестированию программ ного обеспечения, при этом основное внимание уделяется процессам тестирования на фоне стремительного ускорения процесса разработки программного обеспечения. Этот подход ориентирован на применение специалистами по тестированию про граммного обеспечения и руководителями тестовых работ. При его описании приво дится множество советов, технологий и примеров, которые могут использоваться для повышения эффективности и сокращения сроков тестирования программного обес печения. Данная книга предназначена и для тех, кто решил начать свою служебную карьеру с тестирования программного обеспечения. Она содержит обширный набор ссылок, которые могут оказаться полезными как для уже сформировавшихся профес сионалов, так и для тех, которые только начинают свою трудовую деятельность. Скорость и эффективность разработки программного обеспечения зависят от то го, насколько удачно процесс тестирования вписывается в общий жизненный цикл разработки программного продукта и от эффективности использования технологий тестирования. В книге показано, как увеличить скорость и эффективность тестиро вания, уделив основное внимание следующим вопросам: • Начинать жизненный цикл тестирования необходимо одновременно с началом стадии формулирования технических требований, чтобы дефекты можно было обнаруживать как можно раньше и так же рано начинать планирование и реа лизацию тестовых случаев. • Применять эффективные технологии статического тестирования, такие как инспекции и сквозной контроль, для тестирования промежуточных продуктов, которые создаются на протяжении жизненного цикла разработки. • Применять эффективные технологии динамического тестирования для обна ружения дефектов на стадиях проверки взаимодействия и функционирования компонентов, системных и приемочных испытаний. Ключевые особенности Повысить эффективность тестирования программного обеспечения помогут сле дующие отличительные особенности данной книги: • Основное внимание уделяется настройке процесса тестирования так, чтобы достичь цели наискорейшего выхода на рынок при сохранении качества про граммного продукта. • Тестирование программного обеспечения рассматривается в контексте общего жизненного цикла разработки программного обеспечения. Жизненный цикл разработки программного обеспечения рассматривается с точки зрения, вы годной для специалиста по тестированию. Рассматриваются также модели, та кие как построение эволюционных прототипов, а также спиралевидная и тра диционная каскадная модель. 12 Предисловие • Представлены технологии статического тестирования, которые могут исполь зоваться для подключения группы тестирования на ранних стадиях жизненно го цикла разработки программного обеспечения. Применение статического тестирования позволяет обнаруживать дефекты на ранних стадиях жизни про граммного продукта и тогда же дает возможность составлять планы проведения испытаний и создавать тестовые случаи. • Книга содержит примеры ключевых результатов процесса испытаний. Структура книги Книга состоит из трех частей и организована следующим образом: Часть I. Процесс быстрого тестирования. В этой части даны определения основных понятий и терминов, имеющих отношение к тестированию. В ней описаны про цессы быстрого тестирования, которые тесно интегрированы с общим жизнен ным циклом разработки программного обеспечения. Рассматривается традици онная каскадная модель разработки программных продуктов, равно как и жизнен ные циклы, в основу которых положены инкрементальные поставки и построение эволюционно развивающихся прототипов. Каждая стадия процесса разработки программного продукта исследуется с точки зрения специалиста по тестирова нию, при этом дается описание методов обнаружения и предупреждения дефектов как средств повышения эффективности тестирования. Часть II. Технология быстрого тестирования и советы. В этой части подробно описа ны советы и технологии, которые могут быть использованы для внедрения про цесса быстрого тестирования. Здесь представлены методы выявления и анализа технических требований, оценки трудозатрат на тестирование и разработки гра фиков выполнения тестовых работ, проведения инспекций и перепроверок, раз работки тестов типа черного ящика. В этой части обсуждается широкий спектр технологий динамического тестирования, включая функциональный анализ, раз биение на классы эквивалентности, анализ граничных значений, проверка утечек памяти, тестирование случаев использования и характеристик производи тельности. Часть III. Примеры выполнения быстрого тестирования. В третьей части приводятся примеры реализации процессов и технологий, которые обсуждались в двух пре дыдущих частях книги. В основе этих примеров лежит набор инструментальных средств управления тестированием (Test Management Toolkit, TMT), который яв ляется чисто учебным приложением. Продукт ТМТ позволяет руководителям тес товых работ и специалистам по тестированию осуществлять планы проведения испытаний, оглашать сообщения о дефектах, результаты тестирования и другую информацию, имеющую отношение к тестированию. В условиях Web-приложений появляется возможность одновременной работы нескольких пользователей над несколькими проектами независимо от их географического удаления друг от друга. Предисловие 13 Существуют четыре рабочих продукта, имеющих отношение к процессу тестиро вания: • Документ определения требований • План тестирования • Спецификация тестовой процедуры • Сводный отчет о тестировании. Об авторах Роберт Калбертсон (Robert Culbertson) имеет опыт работы в технических областях, в сфере разработки и тестирования программного обеспечения, а также опытом ру ководства разработкой различных проектов. Работая в компаниях Cisco Systems, Texas Instruments, IBM, в Техасском университете, в компании DSC Communications, он приобрел личный опыт работы с тем, что составляет быстрое тестирование. Ро берт имеет ученые степени бакалавра электротехники и электроники (B.S.E.E.) и ма гистра электротехники и электроники (M.S.E.E.), полученные в Техасском универси тете в Остине, а также степень доктора ф и л о с о ф и и в области электротехники и элек троники от Бирмингемского университета в Англии. Гэри К о б б (Gary Cobb) в течение 25 лет поднимался сразу по двум служебным ле стницам, как преподаватель и как специалист, работающий в промышленной зоне города Остин. Он занимался преподавательской деятельностью в Техасском универ ситете в Остине на отделениях математики, компьютерных наук, электротехники и производства компьютеров. Гэри также вел курс мультимедиа-систем на факультете компьютерных наук в Юго-западном университете штата Техас, в котором занимал пост руководителя лаборатории мультимедиа-систем. Его послужной список в про мышленности включает работу на ответственных должностях в компаниях Texas In struments Inc., Lockheed Martin и Dell Computer Corporation. Он читает краткие кур сы в институте качества программного обеспечения при Техасском университете, который выступил спонсором его разработки критериев программного обеспечения, увенчавшейся присуждением ему премии Greater Austin Quality Award (Победитель по качеству в Остине). Гэри имеет степень доктора ф и л о с о ф и и в области математики, полученную в Техасском университете в Остине. Крис Браун (Chris Brown) работает в компьютерной индустрии и индустрии про граммного обеспечения более 20 лет. Занимаясь вопросами тестирования, он работал на различных должностях в таких компаниях, как Advanced Micro Devices, Cisco Sys tems, Compaq C o m p u t e r Corporation и IBM. В компании Advanced Micro Devices он отвечал за системные испытания результатов генерации кремниевых компиляторов и за проверку на совместимость всех конфигураций аппаратных и программных средств. В компании C o m p a q Крис отвечал на построение тестовых сценариев и тес тирование прототипов и опытных образцов систем для отделения портативных ком пьютерных продуктов. Будучи сотрудником компании IBM, Крис возглавлял команду тестирования администратора баз данных O S / 2 , администратора передачи данных и администратора локальной сети. Он был президентом/главным администратором в Computer Security Corporation, компании, которая поставляла программные средства защиты от вирусов военно-воздушным силам США, а также компаниям Prudential, 14 Предисловие Boeing и другим крупным компаниям и лабораториям. Крис также занимал посты ре гионального менеджера и вице-президента в компании Dataserv C o m p u t e r Mainte nance/BellSouth, где отвечал за техническое обслуживание и ремонт в процессе экс плуатации 40000 компьютеров. Крис имеет степень бакалавра в области электроники и степень магистра по менеджменту. Благодарности Авторы остаются в неоплатном долгу перед Алом Дейлом (Al Dale), основателем ин ститута SQI (Software Quality Institute — институт качества программного обеспече ния), за его поддержку, оказанную этой книге и серии в целом. Мы также хотели бы выразить свою благодарность Полу Петралия (Paul Petralia) за его моральную под держку в период написания и издания этой книги. Наша признательность распро страняется также и на влиятельных сотрудников института SQI и коллектива изда тельства Prentice Hall за их постоянную поддержку и профессиональную помощь. Джессика Болч (Jessica Balch) и весь производственный коллектив компании Pine T r e e Composition проделали большую работу, чтобы вдохнуть в книгу жизнь; мы по лучили огромное удовольствие от сотрудничества с ними. Роберт Калбертсон хочет выразить благодарность всей своей семье — Терри, Шилли и Майклу — они поддерживали своего папу тем, что не были ему помехой во время написания книги. Роберт благодарит свою маму Лорин и брата Лоренса за их неизменную помощь и поддержку. Роберт также выражает свою признательность всем менеджерам, инженерам и преподавателям, которые были для него одновре менно и наставниками, и коллегами в течение многих лет. В частности, эти благодар ности направлены в адрес Боба Маринконза (Bob Marinkonz), Марка Шервуда (Mark Sherwood) и многих других. Гэри Кобб благодарит свою жену Мерилин за ее терпение и заботу в течение дол гих часов, потребовавшихся для написания его части книги. Он также благодарит своих детей Гленна Кобба, Молли Пирсон, Стивена Кобба и Мередит Макларти за оказанную поддержку. В числе людей, оказавших ему помощь в служебном росте, Гэ ри прежде всего желает поблагодарить своих родителей, преподавателей и коллег по работе. Процесс быстрого тестирования Понятие о технологии быстрого тестирования Темы, рассматриваемые в главе: • Основные определения в области тестирования программного обеспечения • Что такое быстрое тестирование? • Разработка стратегии быстрого тестирования • Процесс разработки программного обеспечения • Каскадный процесс тестирования • Связь тестирования и разработки • Что дальше За последних два десятилетия компьютерные системы и выполняемое на них про граммное обеспечение проникло во все области человеческой деятельности. Про граммное обеспечение присутствует в автомобилях, духовках, сотовых телефонах, играх и на рабочих местах. Оно является движущей силой бухгалтерских систем, сис тем обмена данными, соединений с Internet. Распространение программных систем достигло такой стадии, когда корпоративные и национальные экономики впадают во все большую зависимость от успешной разработки и доставки программного обес печения. По мере возрастания ставок на рынке программного обеспечения, все отчетливей вырисовывается потребность разработки большего числа программных продуктов за меньшие промежутки времени. Это обстоятельство предъявляет повышенные требо вания к разработчикам и тестировщикам программного обеспечения не только в плане ускоренного производства программных продуктов, но и в плане обеспечения должного уровня их качества, которое смогло бы удовлетворить потребителей. В силу этого обстоятельства к специалистам по тестированию современного про граммного обеспечения предъявляются следующие основные требования: • Необходимо тестировать быстро, соблюдая жесткие сроки поставки про граммных продуктов. |