Предисловие
В данной книге дается описание практического подхода к тестированию программного обеспечения, при этом основное внимание уделяется процессам тестирования на фоне стремительного ускорения процесса разработки программного обеспечения. Этот подход ориентирован на применение специалистами по тестированию программного обеспечения и руководителями тестовых работ. При его описании приводится множество советов, технологий и примеров, которые могут использоваться для повышения эффективности и сокращения сроков тестирования программного обеспечения. Данная книга предназначена и для тех, кто решил начать свою служебную карьеру с тестирования программного обеспечения. Она содержит обширный набор ссылок, которые могут оказаться полезными как для уже сформировавшихся профессионалов, так и для тех, которые только начинают свою трудовую деятельность.
Скорость и эффективность разработки программного обеспечения зависят от того, на-сколько удачно процесс тестирования вписывается в общий жизненный цикл разработки программного продукта и от эффективности использования технологий тестирования. В книге показано, как увеличить скорость и эффективность тестирования, уделив основное внимание следующим вопросам:
- Начинать жизненный цикл тестирования необходимо одновременно с началом стадии формулирования технических требований, чтобы дефекты можно было обнаруживать как можно раньше и так же рано начинать планирование и реализацию тестовых случаев.
- Применять эффективные технологии статического тестирования, такие как инспекции и сквозной контроль, для тестирования промежуточных продуктов, которые создаются на протяжении жизненного цикла разработки.
- Применять эффективные технологии динамического тестирования для обнаружения дефектов на стадиях проверки взаимодействия и функционирования компонентов, системных и приемочных испытаний.
Ключевые особенности
Повысить эффективность тестирования программного обеспечения помогут следующие отличительные особенности данной книги:
- Основное внимание уделяется настройке процесса тестирования так, чтобы достичь цели наискорейшего выхода на рынок при сохранении качества программного продукта.
- Тестирование программного обеспечения рассматривается в контексте общего жизненного цикла разработки программного обеспечения. Жизненный цикл разработки программного обеспечения рассматривается с точки зрения, выгодной для специалиста по тестированию. Рассматриваются также модели, такие как построение эволюционных прототипов, а также спиралевидная и традиционная каскадная модель.
- Представлены технологии статического тестирования, которые могут использоваться для подключения группы тестирования на ранних стадиях жизненного цикла разработки программного обеспечения. Применение статического тестирования позволяет обнаруживать дефекты на ранних стадиях жизни программного продукта и тогда же дает возможность составлять планы проведения испытаний и создавать тестовые случаи.
- Книга содержит примеры ключевых результатов процесса испытаний.
Структура книги
Книга состоит из трех частей и организована следующим образом:
Часть I. Процесс быстрого тестирования. В этой части даны определения основных понятий и терминов, имеющих отношение к тестированию. В ней описаны процессы быстрого тестирования, которые тесно интегрированы с общим жизненным циклом разработки программного обеспечения. Рассматривается традиционная каскадная модель разработки программных продуктов, равно как и жизненные циклы, в основу которых положены инкрементальные поставки и построение эволюционно развивающихся прототипов. Каждая стадия процесса разработки программного продукта исследуется с точки зрения специалиста по тестированию, при этом дается описание методов обнаружения и предупреждения дефектов как средств повышения эффективности тестирования.
Часть II. Технология быстрого тестирования и советы. В этой части подробно описаны советы и технологии, которые могут быть использованы для внедрения процесса быстрого тестирования. Здесь представлены методы выявления и анализа технических требований, оценки трудозатрат на тестирование и разработки графиков выполнения тестовых работ, проведения инспекций и перепроверок, разработки тестов типа черного ящика. В этой части обсуждается широкий спектр технологий динамического тестирования, включая функциональный анализ, разбиение на классы эквивалентности, анализ граничных значений, проверка утечек памяти, тестирование случаев использования и характеристик производительности.
Часть III. Примеры выполнения быстрого тестирования. В третьей части приводятся примеры реализации процессов и технологий, которые обсуждались в двух предыдущих частях книги. В основе этих примеров лежит набор инструментальных средств управления тестированием (Test Management Toolkit, TMT), который является чисто учебным приложением. Продукт TMT позволяет руководителям тестовых работ и специалистам по тестированию осуществлять планы проведения испытаний, оглашать сообщения о дефектах, результаты тестирования и другую информацию, имеющую отношение к тестированию. В условиях Web-приложений появляется возможность одновременной работы нескольких пользователей над несколькими проектами независимо от их географического удаления друг от друга.
Существуют четыре рабочих продукта, имеющих отношение к процессу тестирования:
- Документ определения требований
- План тестирования
- Спецификация тестовой процедуры
- Сводный отчет о тестировании.
Об авторах
Роберт Калбертсон (Robert Culbertson) имеет опыт работы в технических областях, в сфере разработки и тестирования программного обеспечения, а также опытом руководства разработкой различных проектов. Работая в компаниях Cisco Systems, Texas Instruments, IBM, в Техасском университете, в компании DSC Communications, он приобрел личный опыт работы с тем, что составляет быстрое тестирование. Роберт имеет ученые степени бакалавра элек-тротехники и электроники (B.S.E.E.) и магистра электротехники и электроники (M.S.E.E.), полученные в Техасском университете в Остине, а также степень доктора философии в области электротехники и электроники от Бирмингемского университета в Англии.
Гэри Кобб (Gary Cobb) в течение 25 лет поднимался сразу по двум служебным лестницам, как преподаватель и как специалист, работающий в промышленной зоне города Остин. Он занимался преподавательской деятельностью в Техасском университете в Остине на отделениях математики, компьютерных наук, электротехники и производства компьютеров. Гэри также вел курс мультимедиа-систем на факультете компьютерных наук в Юго-западном университете штата Техас, в котором занимал пост руководителя лаборатории мультимедиа-систем. Его послужной список в промышленности включает работу на ответственных должностях в компаниях Texas Instruments Inc., Lockheed Martin и Dell Computer Corporation. Он читает краткие курсы в институте качества программного обеспечения при Техасском университете, который выступил спонсором его разработки критериев программного обеспечения, увенчавшейся присуждением ему премии Greater Austin Quality Award (Победитель по качеству в Остине). Гэри имеет степень доктора философии в области математики, полученную в Техасском университете в Остине.
Крис Браун (Chris Brown) работает в компьютерной индустрии и индустрии программного обеспечения более 20 лет. Занимаясь вопросами тестирования, он работал на различных должностях в таких компаниях, как Advanced Micro Devices, Cisco Systems, Compaq Computer Corporation и IBM. В компании Advanced Micro Devices он отвечал за системные испытания результатов генерации кремниевых компиляторов и за проверку на совместимость всех конфигураций аппаратных и программных средств. В компании Compaq Крис отвечал на построение тестовых сценариев и тестирование прототипов и опытных образцов систем для отделения портативных компьютерных продуктов. Будучи сотрудником компании IBM, Крис возглавлял команду тестирования администратора баз данных OS/2, администратора передачи данных и администратора локальной сети. Он был президентом/главным администратором в Computer Security Corporation, компании, которая поставляла программные средства защиты от вирусов военно-воздушным силам США, а также компаниям Prudential, Boeing и другим крупным компаниям и лабораториям. Крис также занимал посты регионального менеджера и вице-президента в компании Dataserv Computer Maintenance/BellSouth, где отвечал за техническое обслуживание и ремонт в процессе эксплуатации 40000 компьютеров. Крис имеет степень бакалавра в области электроники и степень магистра по менеджменту.
Благодарности
Авторы остаются в неоплатном долгу перед Алом Дейлом (Al Dale), основателем института SQI (Software Quality Institute - институт качества программного обеспечения), за его поддержку, оказанную этой книге и серии в целом. Мы также хотели бы выразить свою благодарность Полу Петралия (Paul Petralia) за его моральную поддержку в период написания и издания этой книги. Наша признательность распространяется также и на влиятельных сотрудников института SQI и коллектива издательства Prentice Hall за их постоянную поддержку и профессиональную помощь. Джессика Болч (Jessica Balch) и весь производственный коллектив компании Pine Tree Composition проделали большую работу, чтобы вдохнуть в книгу жизнь; мы получили огромное удовольствие от сотрудничества с ними.
Роберт Калбертсон хочет выразить благодарность всей своей семье - Терри, Шилли и Майклу - они поддерживали своего папу тем, что не были ему помехой во время написания книги. Роберт благодарит свою маму Лорин и брата Лоренса за их неизменную помощь и поддержку. Роберт также выражает свою признательность всем менеджерам, инженерам и преподавателям, которые были для него одновременно и наставниками, и коллегами в течение многих лет. В частности, эти благодарности направлены в адрес Боба Маринконза (Bob Marinkonz), Марка Шервуда (Mark Sherwood) и многих других.
Гэри Кобб благодарит свою жену Мерилин за ее терпение и заботу в течение долгих часов, потребовавшихся для написания его части книги. Он также благодарит своих детей Гленна Кобба, Молли Пирсон, Стивена Кобба и Мередит Макларти за оказанную поддержку. В числе людей, оказавших ему помощь в служебном росте, Гэри прежде всего желает поблагодарить своих родителей, преподавателей и коллег по работе.