Главная страница
Навигация по странице:

  • Совместимость и преобразование форматов данных

  • Аппаратные конфигурации

  • Установка и обслуживание

  • 90 Часть I: Основы

  • Адаптационное тестирование

  • Общее функционирование.

  • • Номер версии и идентификация системы.

  • Обработка ошибок операционной системой.

  • 92 Часть I: Основы • Совместимость.

  • Интерфейс.

  • Программные

  • Категории программных ошибок

  • Ошибки пользовательского интерфейса

  • Взаимодействие программы с пользователем

  • Тестирование-книга. Ю. Н. Артеменко Научный редактор


    Скачать 6.27 Mb.
    НазваниеЮ. Н. Артеменко Научный редактор
    Дата09.10.2019
    Размер6.27 Mb.
    Формат файлаpdf
    Имя файлаТестирование-книга.pdf
    ТипКнига
    #89291
    страница8 из 49
    1   ...   4   5   6   7   8   9   10   11   ...   49
    Обработка ошибок
    Программа должна корректно реагировать на неправильные, нестандар­
    тные или не предусмотренные документацией действия пользователей.
    Постарайтесь сделать как можно больше ошибок и своими глазами посмот­
    реть на каждое описываемое в документации сообщение. Может быть, вы столкнетесь с сообщениями об ошибках, которых в документации нет.
    Проводя такое тестирование, вы соберете наибольший урожай ошибок, поскольку этой части программы обычно уделяется меньше всего внима­
    ния.
    Защита
    Сложно ли неавторизированному пользователю получить доступ к си­
    стеме? Что для этого нужно? О тестировании защиты программного обес­
    печения немного рассказывается у Бейзера (Beizer, 1990) и более подробно
    — у Фернандеса (Fernandez, 1981).
    Совместимость и преобразование форматов
    данных
    Два программных продукта называют совместимыми (compatible), если они могут работать с одними и теми же файлами данных или если они благополучно сосуществуют в оперативной памяти компьютера и работают,
    Глава 3: Типы тестов ... 89
    не мешая друг другу. Поэтому, получив задание проверить программы на совместимость, обязательно выясните, о какой именно совместимости идет речь.
    Если две программы не могут непосредственно работать с данными друг друга, это еще не значит, что они абсолютно несовместимы. Возможно, что пользователи смогут воспользоваться специальными конвертерами — про­
    граммами-посредниками, преобразующими данные из одного формата в другой.
    Одной из самых распространенных ситуаций, требующих конвертиро­
    вания данных, является выпуск новой версии программы. В этом случае новая программа должна уметь определить, что предложенные ей данные сохранены в формате предыдущей версии, и самостоятельно выполнить их преобразование. Кроме того, программы одного класса часто умеют читать и сохранять данные в формате друг друга. Это позволяет пользователям совершенно безболезненно переходить с одной программы на другую или даже эксплуатировать их совместно.
    Аппаратные конфигурации
    Очень важно, чтобы программа успешно работала на компьютерах са­
    мых разнообразных конфигураций. Даже если программа ориентирована на конкретную модель процессора, все равно в системах, где ей придется работать, периферийные устройства будут различны. Поэтому вам нужно выявить те устройства, с которыми программа должна быть совместима, но на деле не работает.
    Установка и обслуживание
    Вместе с программным продуктом обычно поставляется и программа его установки. Она автоматизирует процесс интеграции продукта в систе­
    му и его настройки для нужд конкретного пользователя. Работает ли эта программа? Насколько она проста и удобна? Сколько времени в среднем требуется на установку?
    Если программу будет устанавливать не пользователь, а специалист, например сотрудник фирмы-дилера, возникает и еще несколько вопросов, связанных с ее обслуживанием. Например, если произойдет сбой програм­
    мы, как быстро квалифицированный специалист сможет устранить его последствия или установить заплатку?
    Эффектные тесты
    Есть среди тестов и такие, которые служат не для реальной работы, а
    Для того, чтобы произвести впечатление на публику. Их проводят перед зрителями (например, администрацией, пришедшей посмотреть, как идет работа), чтобы показать, как "ужасно нестабильна" программа и как про­
    фессиональны тестировщики.

    90 Часть I: Основы
    По-настоящему эффектный тест должен быть очень простым и приво­
    дить к немедленному сбою. Как подбирать такие тесты, сказать сложнее.
    Здесь приходится основываться на своем собственном профессиональном опыте, знании слабых мест программиста, операционной системы и резуль­
    татах тестирования аналогичных продуктов.
    Сопровождение
    Значительная часть средств, которые компания затрачивает на про­
    граммный продукт, уходит уже после завершения его разработки. Вот ка­
    кие данные приводят в своем учебнике Мартин и Мак-Клер (Martin & mcClure, 1984).
    На сопровождение программного обеспечения затрачивается 67% его общей стоимости. Распределяется эта сумма так.
    • 20% бюджета сопровождения тратится на исправление ошибок
    • 25% уходит на адаптацию продукта к новому аппаратному обеспе­
    чению и новой программной среде
    • 6% тратится на исправление документации
    • 4% тратится на повышение производительности
    • 42% тратится на внесение изменений и усовершенствований
    • 3% на другие нужды
    На этапе сопровождения программного продукта в вашей работе не будет ничего особенного — вы будете делать то же самое, что уже делали в конце разработки во время функционального и системного тестирования.
    Если у вас есть серия регрессионных тестов, которые к тому же еще и частично автоматизированы, вам остается только повторять их после каж­
    дого изменения программы. И не забывайте, что сделанные на этом этапе изменения, как и всякие другие, чреваты побочными эффектами. Поэто­
    му проявите предусмотрительность и обязательно проверьте не только измененный фрагмент, но и всю программу в целом.
    Адаптационное тестирование
    Этот вид тестирования выполняется только на этапе сопровождения, когда программа переносится с одной аппаратной или программной плат­
    формы на другую. Если программа должна работать на нескольких типах компьютеров, нужно проверить ее совместимость с каждым из них. Вот краткое описание стратегии такого тестирования.
    Общее функционирование. Выполните серию регрессионных тестов.
    Если ее у вас нет, разработайте набор тестов, выполняющих каждую
    Глава 3: Типы тестов ... 91
    из основных функций программы. При этом постарайтесь хотя бы частично проверить программу как на граничных, так и на основ­
    ных данных. Если какая-то из функций плохо совместима с новой платформой, то, скорее всего, она не будет работать вообще, так что не стоит опасаться, что возникшие проблемы останутся незамечен­
    ными. Как правило, при переносе программы на другую платформу тесты на общее функционирование она проходит вполне успешно.
    Поэтому не стоит тратить на них слишком много времени.
    Клавиатура. Если у компьютера специфическая клавиатура, в рабо­
    те с ней могут быть небольшие отклонения от стандарта. Поэтому нужно обязательно нажать каждую клавишу, и к тому же в различ­
    ных ситуациях. Особое внимание обратите на управляющие клави­
    ши — , и т.п.
    Терминал. Проверьте, как программа работает с новым терминалом.
    Как отображается графика? Если программа работает в текстовом режиме, то все ли символы отображаются правильно, нет ли про­
    блем с цветом, подчеркиванием или подсветкой?
    Номер версии и идентификация системы. Если номер версии про­
    граммы изменился, убедитесь, что он нигде не остался старым. Если при запуске программа идентифицирует аппаратуру или операцион­
    ную систему, убедитесь, что она делает это правильно.
    Диски. Емкость и формат дисков могут сильно отличаться. Убеди­
    тесь, что программа правильно работает с файлами, размер которых кратен 2. Если новая система поддерживает размер дисков, которо­
    го не поддерживала старая, попробуйте поработать с таким большим диском.
    Обработка ошибок операционной системой. Как действует операци­
    онная система в таких ситуациях, как ошибка доступа к диску?
    Позволит ли она прикладной программе самой обработать эту ситу­
    ацию и выдать корректное сообщение или просто остановит про­
    грамму и сообщит о системной ошибке? А как сам программный продукт защищает пользователя от ошибок и странностей операци­
    онной системы?
    Установка. При установке программного продукта инсталляционной программе может потребоваться определить аппаратную и программ­
    ную конфигурацию системы. Убедитесь, что она делает это правиль­
    но. Протестируйте программу установки как можно тщательнее.
    Выполните установку продукта в системах с различной конфигура­
    цией, в сети и на отдельном компьютере, попробуйте установить его поверх предыдущей версии.

    92 Часть I: Основы
    Совместимость. Предположим, что на исходном компьютере ваша программа была совместима с программой Икс. Если программа Икс также была перенесена на новый компьютер, остались ли они совме­
    стимы?
    Интерфейс. В различных графических средах (Windows, Mac,
    AmigaDOS, Motif и т.п.) действуют различные соглашения о пользо­
    вательском интерфейсе. Перейдя в новую среду, программа должна выглядеть в ней достаточно естественно.
    Другие изменения. Поинтересуйтесь у программиста, какие еще из­
    менения он вносил в программу для ее адаптации, и как следует их протестируйте.
    Если программный продукт впервые адаптируется к новой платформе, не рассчитывайте на быстрый успех. Тестирование может занять у вас четверть того времени, которое вы потратили на разработку. Перенос на следующую платформу может пройти и быстрее, особенно если эти плат­
    формы достаточно совместимы.
    Глава
    Программные
    ошибки
    Назначение этой главы
    Главной задачей тестировщика является поиск и документирование оши­
    бок. Найденные ошибки исправляются, решаются описанные тестировщи- ком проблемы, и тем самым улучшается качество программного продукта. В этой короткой главе мы определим понятия качества и программных ошибок, а также расскажем о том, какими бывают про­
    граммные ошибки и как они классифицируются. Зная своего противни­
    ка, вы сможете бороться с ним более целенаправленно.
    Более подробно программные ошибки описываются в приложении, где кроме основной классификации, разделяющей все возможные ошибки на
    13 категорий, рассматривается около 400 их видов.
    Библиография
    Хорошими пособиями для изучения вопросов качества программных про­
    дуктов и классификации возможных ошибок являются книги Деминга
    (Deming, 1982), Фейгенбаума (Feigenbaum, 1991), Ишикавы (Ishikawa,
    1985) и Джурана (Juran, 1989).
    Качество
    Если программный продукт создается по заказу конкретного клиента, тогда клиент может принимать в его проектировании самое непосредствен­
    ное участие. Он предоставляет подробную спецификацию с описанием своих требований и собственного видения продукта, а разработчик согла­
    шается все это реализовать. В таком случае качество будет означать точное соответствие спецификации клиента.
    4

    94 Часть I. Основы
    У большинства разработчиков программного обеспечения
    таких грамотных и обстоятельных клиентов нет.
    Для них критерием качества служит не соответствие
    спецификации, а то, насколько пользователи удовлетворены
    программным продуктом и сопутствующими услугами
    компании.
    Спецификация — спецификацией, но если конечный результат пользо­
    вателю не нравится, значит, его качество не на высоте. И не важно, что пользователь ознакомился со спецификацией и согласился с ней или даже сам ее составил. Если в конечном счете продукт его не удовлетворяет, то только это и будет иметь для него значение.
    Еще одной составляющей качества является надежность программного продукта. А надежность его тем выше, чем реже в нем происходят сбои, особенно такие, которые влекут за собой потерю данных и другие непри­
    ятные последствия.
    Хотя надежность программы исключительно важна, она не является единственным критерием ее качества, и не правы те тестировщики, кото­
    рые так думают. Если программа не позволяет пользователю выполнить что-то, что он считает важным, пользователь не будет ею доволен. А если пользователь недоволен, значит, качество программы нельзя назвать высо­
    ким.
    Итак, качество программы определяется:
    • возможностями, благодаря которым она понравится пользователю;
    • недостатками, которые вынуждают пользователя приобрести другую программу.
    Главное, что тестировщик может сделать для улучшения качества про­
    граммы, — это выявить ее недостатки, сбои в ее работе и явные ошибки.
    Если руководитель проекта примет решение в последний момент добавить какую-нибудь очень важную функцию, это тоже может способствовать повышению качества, даже несмотря на то, что от этого программа станет менее надежной. Ни надежность, ни функциональность программы не могут быть абсолютными, и ее качество в конечном счете означает разум­
    ный баланс между этими двумя характеристиками. (Подробнее данный вопрос рассматривает в своей книге Джуран (Juran, 1989).)
    Оставшаяся часть этой главы посвящена недостаткам и ошибкам про­
    грамм. Как их выявить и как определить степень их серьезности?
    Глава 4: Программные ошибки 95
    Что такое программная ошибка?
    Одним из распространенных определений программной ошибки явля­
    ется расхождение между программой и ее спецификацией. Не пользуйтесь этим определением.
    Расхождение между программой и ее спецификацией является
    ошибкой тогда, и только тогда, когда спецификация существует
    и она правильна.
    Программа, которая соответствует плохой спецификации, и сама никуда не годится. Поэтому следующие два определения более точны.
    • Если программа не делает того, чего пользователь от нее вполне обоснованно ожидает, значит, налицо программная ошибка (Майерс
    (Myers, 1976, с. 6)).
    • Не существует ни абсолютного определения ошибок, ни точного критерия наличия их в программе. Можно лишь сказать, насколько программа не справляется со своей задачей, — это исключительно субъективная характеристика (Бейзер (Beizer, 1984, с. 12)).
    Конечно, второе определение не касается таких явных ошибок, как ошибки вычислений по точно известным формулам. Майерс вообще ис­
    ключил из своего определения ошибки, связанные с человеческим факто­
    ром. Очевидно, что это совершенно самостоятельная группа ошибок, требующая специфического подхода к их анализу и устранению. Бывает довольно сложно убедить программиста, что недостаток пользовательско­
    го интерфейса является ошибкой или что эта ошибка очень серьезна или даже в том, что тестировщик вообще имеет право заниматься такими воп­
    росами. Но пользователи жалуются на подобные ошибки не меньше, чем на очевидные сбои.
    Категории программных ошибок
    В этой главе описываются 13 категорий, охватывающих все возможные ошибки в программном обеспечении. Несколько отличающуюся, но также очень полезную классификацию предлагает в своей книге Бейзер (Beizer,
    1990).
    Ошибки пользовательского интерфейса
    С программой может быть трудно (или даже невозможно) работать по множеству причин. Мы объединили их все под названием "ошибки пользо­
    вательского интерфейса". Вот несколько разновидностей таких ошибок.

    96 Часть I: Основы
    Функциональность
    Функциональные недостатки имеют место, если программа не делает того, что должна, выполняет одну из своих функций плохо или не полно­
    стью. Хотя функции программы достаточно подробно описываются в ее спецификации, окончательное представление о том, что программа долж­
    на делать, существует только в умах ее пользователей.
    Функциональные недостатки есть абсолютно у всех программ,
    поскольку ожидания пользователей — вещь субъективная: у
    разных пользователей они различны. Оправдать их все просто
    невозможно, а попытка этого добиться может привести
    лишь к усложнению и потере концептуальной целостности
    программного продукта.
    Однако во многих случаях функциональный недостаток вполне очеви­
    ден. Если предусмотренную программой задачу трудно выполнить, если она решается неуклюже или при определенных обстоятельствах вообще не может быть решена — проблема налицо. И когда ожидания пользователей вполне разумны и обоснованны, эту проблему без колебаний можно на­
    звать ошибкой.
    Взаимодействие программы с пользователем
    Насколько сложно пользователю разобраться в том, как работать с программой? Откуда вообще он об этом узнает? Как обстоит дело с экран­
    ными инструкциями и подсказками? Достаточно ли их? Понятны ли они?
    Имеется ли в программе интерактивная справка и может ли пользователь в случае затруднений найти в ней реальную помощь? Насколько коррект­
    но программа сообщает пользователю о его ошибках и объясняет, как их исправить? Нет ли в программе элементов, которые могут раздражать пользователя, сбивать его с толку или просто выглядеть неуклюже?
    Организация программы
    Насколько легко потеряться в вашей программе? Нет ли в ней непонят­
    ных команд или таких, которые легко спутать между собой? Какие ошиб­
    ки чаще всего делает пользователь, на что он тратит больше всего времени и почему?
    Пропущенные команды
    Чего в программе не хватает? Не заставляет ли программа выполнять некоторые действия странным, неестественным или крайне неэффектив­
    ным способом? Нельзя ли привести ее в соответствие с привычным стилем
    Глава 4: Программные ошибки 97
    работы пользователя? Допускает ли она хотя бы некоторую степень на­
    стройки?
    Производительность
    В интерактивном программном обеспечении очень важна скорость.
    Плохо, если у пользователя создается впечатление, что программа работа­
    ет медленно, если он чувствует задержки в ее реакции (особенно если конкурирующие программы работают ощутимо быстрее).
    Выходные данные
    Большинство программ так или иначе формируют выходные данные: отображают информацию на экране, печатают ее или сохраняют в файлах.
    Получаете ли вы то, что хотите? Правильно ли формируются отчеты, на­
    глядны ли диаграммы и достаточно ли отчетливо они выглядят на бумаге?
    Сохраняются ли данные в формате, доступном и для других аналогичных программ? Обладает ли программа достаточной гибкостью, чтобы можно было подстраивать ее под нужды конкретного пользователя?
    Обработка ошибок
    Процедуры обработки ошибок — это очень важная часть программы.
    Но, к сожалению, в них тоже очень часто встречаются ошибки. Кроме того, правильно определив ошибку, программа не всегда выдает о ней достаточно информативное сообщение.
    1   ...   4   5   6   7   8   9   10   11   ...   49


    написать администратору сайта