Добавлен: 28.03.2023
Просмотров: 120
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Стандарты откладки и тестирования программ
1.1 Основные разработчики стандартов в области программной инженерии
1.2 Стандарты на тестирование и обеспечение качества программного обеспечения
Глава 2. Анализ методов откладки и тестирования программного обеспечения
2.1 Анализ методов тестирования программного обеспечения
2.2 Некоторые аспекты отладки программного обеспечения
Глава 3. Распространенные программные ошибки
3.1 Ошибки пользовательского интерфейса
- функциональность;
- быстрота изучения программы новым пользователем;
- легкость запоминания необходимых приемов работы;
- производительность:
- вероятность возникновения ошибок пользователя:
- удовлетворенность пользователя программой.
Проектируя пользовательский интерфейс, разработчик программы учитывает опыт и нужды ее будущих пользователей, а также возможности аппаратного обеспечения и доступных программных технологий.
Для достижения разумного баланса между перечисленными характеристиками программы разработчику приходится чем-то жертвовать. Если в программе встретится одна из ниже рассмотренных ошибок пользовательский интерфейса, то эта ошибка может быть не случайной, а намеренной уступкой, сделанной проектировщиком ради улучшения другой составляющей качества продукции.
3.2 Функциональность
Если с помощью программы трудно, неудобно или невозможно выполнить что-то. чего может обоснованно ожидать от нее пользователь, значит, в ней имеется функциональная ошибка.
Избыт очная функциональность
Универсальная система, предназначенная для выполнения слишком большого количества разнообразных задач, сложна и в изучении, и в эксплуатации. Ее пользователи постоянно забывают, как выполнить то или иное действие. Таким системам недостает концептуального единства. Они сопровождаются огромным количеством документации, обширной справочной системой, в которой легко заблудиться: разделы руководств чересчур объемны. Кроме того много функциональные системы не отличаются обычно не отличаются высокой производительностью.
Пользователи часто совершают ошибки, а получаемые ими сообщения об этих ошибках бывают расплывчаты и носят чересчур общий характер.
Основным критерием оценки функциональности продукта может быть следующий: если редко используемые функции программы усложняют использование ее базовых возможностей, значит, уровень функциональности программы выходит из-под контроля.
Ложное впечатление о наборе функций
Руководства и маркетинговая литература ни в коем случае не должны создавать у пользователя впечатление, что программа может больше, чем на самом деле.
Неадекватность реализации базовых функций
Если к одной из ключевых функции программы невозможно обратиться, и если она реализована слишком узко или слишком медленно работает, такая программа не годится для реальной эксплуатации. Например, если система управления базами данных 8 часов сортирует 1000 записей, никто не захочет ею пользоваться.
Пропущенная функция
В программе отсутствует описанная в спецификации или очевидно необходимая функция.
Функция должна быть реализована пользователем
Если система обладает всеми необходимыми пользователю возможностями, но при этом компоненты, реализующие некоторые из этих возможностей, пользователь должен «собрать» сам. то можно сказать, что она является инструментальным набором, а не завершенной программой.
Программа не делает того, что ожидает от нее пользователь
Например, если программа должна сортировать список имен, едва ли кто-то станет ожидать, что имена будут сортироваться в порядке ASCII. Кроме того, пользователи предположат, что программа не будет учитывать ведущих пробелов и регистра букв. Если же программист хочет убедить, что программа должна работать таким неожиданным образом, он должен отразить это в ее названии и документации, и желательно еще и внести в нее возможность альтернативного способа работы.
3.3 Взаимодействие программы и пользователя
В этом разделе описываются ошибки взаимодействия программы и пользователя. Соответственно предполагается, что речь идет об интерактивной программе, пользователь которой сидит за компьютером или терминалом. Отдельные ошибки могут относиться и к пакетным программам, которые тоже выдают некоторую информацию, например, сообщения об ошибках.
Пропущенная информация
Все, о чем пользователю необходимо знать, должно отображаться на экране. Желательно также, чтобы на экране отображалась информация, которую среднестатистический пользователь найдет полезной.
Отсутствие инструкций на экране
Как определить название программы, как из нее выйти, какую клавишу нажать, чтобы получить справочную информацию? Если в программе используется командный язык, как узнать перечень се команд? Программа может отображать всю эту информацию при запуске, однако в любом случае пользователь не должен обращаться за ответами на все эти вопросы к руководству.
Программа рассчитана на то, что у пользователя всегда под рукой печатная документация
Можно ли использовать программу, потеряв руководство? Неопытный пользователь не должен полностью зависеть от печатной документации.
Недокументированные возможности
Если большинство функций или команд уже перечислены на экране, то позаботьтесь, чтобы были перечислены и все остальные. Пропуск нескольких из них может смутить пользователя, или же он просто никогда о них не узнает, решив, что на экране есть все. что нужно, и не догадавшись заглянуть в документацию.
Аналогичным образом, если для некоторых команд программы описано их применение в особых случаях, необходимо позаботиться о таких описаниях и для всех остальных.
Состояния, из которых сложно найти выход
Если пользователю сложно определить. как выйти из нежелательного состояния программы или прервать нежелательный процесс, это так же плохо, как если бы выход не был предусмотрен вообще.
Отсутствие курсора
Курсор - один из основных инструментов пользователя. Он указывает на активную точку экрана, а также подтверждает, что программа работает и ждет указаний. Поэтому курсор (текстовый или указатель мыши) должен обязательно постоянно присутствовать в любой интерактивной программе.
Программа не распознает ввод
Интерактивная программа должна реагировать на ввод информации пользователем. В частности, если пользователь вводит текст, вводимые символы должны немедленно отображаться на экране. Следующие исключения не являются ошибками:
- программа находится в процессе перехода из одного состояния в другое:
- программа игнорирует определенные действия пользователя;
- пользователем дана команда не отображать ввод;
- вводится пароль или другая секретная информация.
Длительное отсутствие активности
Выполняя длительное задание (занимающее более двух секунд), программа должна показывать пользователю, что она работает, а не зациклилась или остановилась. Иначе пользователь не будет знать, нужно ли ему перезапустить компьютер или просто немного подождать. Желательно отображать еще и индикатор, показывающий, какая часть задания выполнена и сколько времени еще осталось.
Невозможность определить, выполнена ли данная программе команда
Программа может выполнить команду не тогда, когда этого ожидает пользователь, или не отобразить на экране внесенные изменения. Например, удаленные данные могут оставаться на экране до тех пор,. пока пользователь не выйдет из текущего режима. Подобные ситуации человек воспринимает как ошибки программы и сам может реагировать на них неправильно, допуская много ошибок.
Невозможность определить, что один и тот же документ открыт несколько раз
Программы, позволяющие одновременно открывать несколько документов, должны проверять каждый открываемый документ и сообщать пользователю, если он открывается повторно. Иначе пользователь может запутаться во вносимых в документ изменениях. Кроме того, версии документа должны иметь на экране разные имена. Например, если пользователь дважды открыл файл MyDoc, в одном окне этот файл должен иметь имя My_Doc:l, а в другом - My_Doc:2 (или что-то в этом роде). В качестве альтернативы можно вообще не разрешать дважды открывать один документ.
Неверная или смущающая пользователя информация
Любая встреченная пользователем ошибка тут же подрывает его доверие ко всей программе. Незначительные на первый взгляд ошибки или недостаточно подробные сообщения программы. из-за которых пользователь может сделать неверные обобщения или выводы. — обычно наиболее трудная часть работы тестировщиков, поскольку добиться их исправления сложнее всего.
Простая фактическая ошибка
Обычная последовательность переходов по программе - от общего к частному. Поэтому после выбора пользователем определенного режима или команды на экране нередко остается информация предыдущего режима, большая часть которой излишня или не относится к делу. После каждого видимого изменения состояния программы обязательно проверяйте всю информацию на экране на предмет се оптимального соответствия новому состоянию.
Синтаксические ошибки
Программисты не особенно заботятся об ошибках правописания, а вот на пользователя они производят самое неприятное впечатление. Все их необходимо исправлять.
Неаккуратное упрощение
Пытаясь описать ситуацию или функцию программы как можно проще, автор сообщения может упомянуть только ее важнейший аспект, опустив важные подробности. Не желая пользоваться сленгом, он может перестараться и заменить необходимые профессиональные термины неэквивалентными им и неуклюже звучащими описаниями, что только затруднит понимание сообщения. Обращайте внимание на такие ошибки. Помните, что вы являетесь единственным технически грамотным человеком, анализирующим выводимый программой текст.
Неудачные метафоры
Метафоры используются для сравнения компьютерных систем с чем-то знакомым пользователю. Они помогают лучше понять систему и предсказывать ее поведение. Однако, если предположения пользователя окажутся неверны, значит, метафора никуда не годится. Например, метафорой является пиктограмма с изображением корзины для бумаг, используемая во многих программах для команды удаления файлов. Если удаленный файл можно вытащить из корзины, метафора верна. Однако, если файл исчезает в корзине навсегда, в качестве метафоры лучше подошел бы измельчитель бумаги.
Неточные названия команд и функций
Команда СОХРАНИТЬ не должна использоваться для удаления файла или сортировки его содержимого. Если в русском (английском) языке за словом закрепилось определенное значение, названная этим словом команда должна ему соответствовать.
Несколько названий одной функции
Одна и та же функция не должна иметь в программе несколько названий. Пользователь не должен ломать голову над тем. чем отличаются команды Тень и Наложить тень.
Пестрые цветовые сочетания
Умелый подбор цветов может сделать программу привлекательной и облегчить се использование, а неумелый — сделать все наоборот. Цвета должны быть ненавязчивыми, спокойными, их не должно быть много. Задача более ярких элементов — привлекать внимание при необходимости, а не отвлекать его от основной работы. Обратите внимание на гармоничность цветовых сочетаний. По возможности следует предоставлять пользователю альтернативу.
Использование цветов в качестве смыслового элемента интерфейса
Конструктор программы не должен использовать цвета в качестве индикаторов, если рассчитывает, что она будет эксплуатироваться широким кругом пользователей. Среди них могут быть дальтоники, а кроме того, у некоторых пользователей могут быть монохромные мониторы.
Несогласованность со стилем операционной среды
Если в операционной среде программы существуют определенные стандарты пользовательского интерфейса, лучше всего их придерживаться. Например, в современных графических средах интерфейс командной строки выглядит анахронизмом.
Даже если конструкторам программы кажется, что они могут предложить лучшее решение, не каждый пользователь захочет обучаться новым соглашениям. Помните, что пользователь работает не с одной, а с целым комплексом программ, и он будет чувствовать себя гораздо комфортнее, если все они будут оформлены в едином стиле, выводить одинаковые диалоговые окна в одних и тех же местах и по возможности управляться одинаковыми командами.
Заключение
В заключении следует отметить, что при рассмотрении вопросов повышения качества ПО необходимо обращать внимание на то, что прохождение тестирования не является достаточным условием работоспособности АС. Таким образом результат тестирования состоит не в демонстрации отсутствия дефектов в АС, а в нахождении максимального количества ошибок. Это связано с тем, ведь невозможно гарантировать отсутствие дефектов в нетривиальной системе, ведь если программа ведет себя правильно при прохождении большого числа тестов, нет основании утверждать, что в ней нет ошибок, со всей определенностью можно лишь говорить, что не известно, когда эта программа не работает.
Итак, подводя итоги, следует отметить, что на сегодняшний день существует широкое разнообразие моделей и методов тестирования программных продуктов. Наиболее оптимальным методом является метод тестирования в образовательной среде с применением интеллектуальной системы поддержки принятия решения. Указанный метод предусматривает использование искусственных нейронных сетей, которые позволяют повысить эффективность тестирования отказов программных продуктов за счет быстрого обучения, а также точного прогнозирования на начальной стадии тестирования.