Особенность тестирования программного обеспечения

Характеристика принципов тестирования и отладки программ. Основные цели и задачи проведения тестов. Проверка работы пользовательских интерфейсов. Процесс нахождения и исправления ошибок, связанных с неправильным указанием логических страниц данных.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 31.03.2015
Размер файла 825,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Тестирование и отладка программ

1.1 Принципы тестирования и отладка

1.2 Цели и задачи тестирования

1.3 Синтаксическая отладка программы

1.4 Тестирование и семантическая отладка

1.5 Структурное тестирование

1.6 Восходящее и нисходящее тестирование

1.7 Методы отладки программ обеспечение тестирование отладка

2. Практическое задание

Заключение

Перечень использованной литературы

Приложение

Введение

История тестирования и отладки программного обеспечения отражает эволюцию разработки самого программного обеспечения. В течение длительного времени разработка программного обеспечения уделяла основное внимание крупномасштабным научным программам, а также программам министерства обороны, связанным с системами корпоративных баз данных, которые проектировались на базе универсальной ЭВМ или миникомпьютера. Тестовые сценарии записывались на бумагу. С их помощью проверялись целевые потоки управления, вычисления сложных алгоритмов и манипулирование данными. Окончательный набор тестовых процедур мог эффективно протестировать всю систему полностью. Тестирование обычно начиналось лишь после завершения разработки проекта и выполнялось тем же персоналом тех же разработчиков.

Появление персональных компьютеров способствовало стандартизации этой отрасли, поскольку приложения стали изначально создаваться для работы с общей операционной системой. Внедрение персональных компьютеров открыло новую эру и привело к быстрому и бурному росту коммерческих разработок. Коммерческие приложения жестко боролись за первенство и выживание. Пользователи компьютеров принимали выжившее программное обеспечение как стандарты defacto. Пакетная обработка заменялась системами, работающими в реальном времени.

Тестирование систем реального времени потребовало другого подхода к проектированию тестирования из-за того, что рабочие потоки могли вызываться в любом порядке. Эта особенность привела к появлению огромного количества процедур тестирования, способных поддержать бесконечное число перестановок и сочетаний.

Причиной многих «бед» разработчиков являются программные ошибки. Они могут сделать жизнь разработчиков действительно несчастной, потому что, достаточно нескольким ошибкам вкрасться в их программы, как заказчики прекращают пользоваться этими программами, а сами они даже могут потерять работу.

Долгое время ошибки рассматривали как простые неприятности. Всем программистам известны компании, которые закрылись только потому, что выпускали программные продукты, совершенно непригодные к использованию из-за обилия ошибок. В связи с всеобщей компьютеризацией, все шире и шире захватывающей такие важные области, как управление системами жизнеобеспечения, медицинские приборы и сверхдорогую компьютерную аппаратуру, над ошибками больше нельзя просто посмеиваться или рассматривать их как нечто имеющее значение только на этапах разработки.

Конечная цель программиста заключается в написании правильно работающей программы, но, к сожалению, в 99 случаях из 100 первая попытка использования программы приводит к появлению предупреждения диалогового окна с кодом ошибки, неверного результата или в худшем случае к зависанию компьютера. Приблизительно так начинается нелегкий путь отладки программы.

На отладку в среднем затрачивается около 50% цикла разработки. Если отладка начата вовремя, то ее продолжительность может быть радикально уменьшена, а это означает, что заказчик получит программу значительно быстрее. Нельзя экономить время на рассмотрении требований к проекту и проектировании, но можно сделать намного эффективнее отладку. Ее нужно начинать на стадии разработки требований к программе и продолжать до финальной версии продукта.

1. Тестирование и отладка программ

1.1 Принципы тестирования и отладка

Тестирование программы (software testing) - это процесс анализа или эксплуатации программы с целью выявления дефектов.

Слово процесс (process) используется для того, чтобы подчеркнуть, что тестирование - плановая, упорядоченная деятельность. Этот момент очень важен, если мы заинтересованы в быстрой разработке, так как хорошо продуманный, систематический подход быстрее приводит к обнаружению программных ошибок, чем плохо спланированное и в спешке проводимое тестирование.

Согласно этому определению, тестирование предусматривает "анализ" или "эксплуатацию" программного продукта. Тестовая деятельность, связанная с анализом результатов разработки программы называется статическим тестированием (static testing). Статическое тестирование предусматривает проверку программных кодов, сквозной контроль и проверку программы без запуска на машине, т.е. проверку за столом (desk checks). В отличие от этого, тестовая деятельность, предусматривающая эксплуатацию программного продукта, носит название динамического тестирования (dynamic testing). Статическое и динамическое тестирование дополняют друг друга, и каждый из этих типов тестирования реализует собственный подход к выявлению ошибок.

Программная ошибка - не что иное, как дефект (bug) в разработке программного продукта, который вызывает несоответствие ожидаемых результатов выполнения программного продукта и фактически полученных результатов. Дефект может возникнуть на стадии кодирования, на стадии формулирования требований к проекту или на стадии проектирования, либо же его причина может крыться в некорректной конфигурации или данных. Дефектом может быть также что-то другое, что не соответствует ожиданиям заказчика и что может быть, а может и не быть определено в спецификации программного продукта.

Отладка программы -- это процесс выявления и устранения программных ошибок, факт существования которых уже установлен.

1.2 Цели и задачи тестирования

Цели тестирования:

Повысить вероятность того, что приложение, предназначенное для тестирования, будет работать правильно при любых обстоятельствах.

Повысить вероятность того, что приложение, предназначенное для тестирования, будет соответствовать всем описанным требованиям.

Провести полное тестирование приложения за короткий срок.

Задачи тестирования:

Проверить, что система работает в соответствии с определенными временами отклика клиента и сервера.

Проверить, что наиболее критические последовательности действий с системой конечного пользователя выполняются верно.

Проверить работу пользовательских интерфейсов

Проверить, что изменения в базах данных не оказывают неблагоприятного влияния на существующие программные модули.

При проектировании тестов свести к минимуму переработку тестов при возможных изменениях приложения.

Использовать инструменты автоматизированного тестирования там, где это целесообразно.

Проводить тестирование таким образом, чтобы не только обнаруживать, но и предупреждать дефекты.

1.3 Синтаксическая отладка программы

Синтаксическая отладка - поиск синтаксических ошибок в тексте программы. Обнаружив ошибку, транслятор выводит сообщение, указывая на место ошибки в программе и ее характер. Получив такое сообщение, программист должен исправить ошибку и снова повторить трансляцию. Так продолжается до тех пор, пока не будут исправлены все синтаксические ошибки.

Если мы сталкиваемся с синтаксической ошибкой, то чаще всего мы можем решить проблему с помощью справочной системы, из которой можно получить дополнительную информацию об ошибке, и исправить эту ошибку, уделив дополнительное внимание точному синтаксису используемых функций, объектов, методов и свойств.

1.4 Тестирование и семантическая отладка

Тестирование - это динамический контроль программы, т.е. проверка правильности программы при ее выполнении на компьютере.

Каждому программисту известно, сколько времени и сил уходит на отладку и тестирование программ. На этот этап приходится около 50% общей стоимости разработки программного обеспечения. Но не каждый из разработчиков программных средств может верно, определить цель тестирования. Нередко можно услышать, что тестирование - это процесс выполнения программы с целью необнаружения в ней ошибок. Но эта цель недостижима: ни какое самое тщательное тестирование не дает гарантии, что программа не содержит ошибок. Другое определение: это процесс выполнения программы с целью обнаружения в ней ошибок. Отсюда ясно, что “удачным” тестом является такой, на котором выполнение программы завершилось с ошибкой. Напротив, “неудачным” можно назвать тест, не позволивший выявить ошибку в программе. Определение также указывает на объективную трудность тестирования: это деструктивный (т.е. обратный созидательному) процесс. Поскольку программирование - процесс конструктивный, ясно, что большинству разработчиков программных средств сложно “переключиться” при тестировании созданной ими продукции. Основные принципы организации тестирования:

1) необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибки в ней;

2) следует по возможности избегать тестирования программы ее автором, т.к. кроме уже указанной объективной сложности тестирования для программистов здесь присутствует и тот фактор, что обнаружение недостатков в своей деятельности противоречит человеческой психологии (однако отладка программы эффективнее всего выполняется именно автором программы);

3) по тем же соображениям организация - разработчик программного обеспечения не должна “единолично ” его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);

4) должны являться правилом доскональное изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;

5) необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

6) при анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать;

7) следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

8) тестирования не должно планироваться исходя из предположения, что в программе не будут обнаружены ошибки;

9) следует учитывать так называемый “принцип скопления ошибок”: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;

10) следует всегда помнить, что тестирование - творческий процесс, а не относиться к нему как к рутинному занятию.

Существует два основных вида тестирования: функциональное и структурное. При функциональном тестировании программа рассматривается как “черный ящик” (то есть ее текст не используется). Происходит проверка соответствия поведения программы ее внешней спецификации. Возможно ли при этом полное тестирование программы? Очевидно, что критерием полноты тестирования в этом случае являлся бы перебор всех возможных значений входных данных, что невыполнимо.

При структурном тестировании программа рассматривается как “белый ящик” (т.е. ее текст открыт для пользования). Происходит проверка логики программы. Полным тестированием в этом случае будет такое, которое приведет к перебору всех возможных путей на графе передач управления программы (ее управляющем графе). Даже для средних по сложности программ числом таких путей может достигать десятков тысяч.

Таким образом, ни структурное, ни функциональное тестирование не может быть исчерпывающим. Рассмотрим подробнее основные этапы тестирования программных комплексов. В тестирование многомодульных программных комплексов можно выделить четыре этапа:

1) тестирование отдельных модулей;

2) совместное тестирование модулей;

3) тестирование функций программного комплекса;

4) тестирование всего комплекса в целом (т.е. поиск несоответствия созданного программного продукта, сформулированным ранее целям проектирования, отраженным обычно в техническом задании).

На первых двух этапах используются, прежде всего, методы структурного тестирования, т.к. на последующих этапах тестирования эти методы использовать сложнее из-за больших размеров проверяемого программного обеспечения; последующие этапы тестирования ориентированы на обнаружение ошибок различного типа, которые не обязательно связаны с логикой программы.

Ошибки этапа выполнения или семантические ошибки происходят, когда мы компилируем полную программу, которая при ее выполнении делает что-то недопустимое. То есть, программа содержит допустимые операторы, но при их выполнении что-то происходит неверно. Например, программа может пытаться открыть для ввода несуществующий файл или выполнить деление на ноль.

Семантическая отладка - это процесс нахождения и исправления ошибок, связанных с неправильным указанием логических страниц данных.

Существует 3 способа отладки программы:

1) Пошаговая отладка программ с заходом в подпрограммы;

2) Пошаговая отладка программ с выполнением подпрограммы как одного оператора;

3) Выполнение программы до точки остановки.

Пошаговая отладка программ заключается в том, что выполняется один оператор программы и, затем контролируются те переменные, на которые должен был воздействовать данный оператор.

Если в программе имеются уже отлаженные подпрограммы, то подпрограмму можно рассматривать, как один оператор программы и воспользоваться вторым способом отладки программ.

Если в программе существует достаточно большой участок программы, уже отлаженный ранее, то его можно выполнить, не контролируя переменные, на которые он воздействует. Использование точек остановки позволяет пропускать уже отлаженную часть программы. Точка остановки устанавливается в местах, где необходимо проверить содержимое переменных или просто проконтролировать, передаётся ли управление данному оператору.

1.5 Структурное тестирование

Поскольку исчерпывающее структурное тестирование невозможно, необходимо выбрать такие критерии его полноты, которые допускали бы их простую проверку и облегчали бы целенаправленный подбор тестов.

Наиболее слабым из критериев полноты структурного тестирования является требование хотя бы однократного выполнения (покрытия) каждого оператора программы. Более сильным критерием является так называемый критерий С1: каждая ветвь алгоритма (каждый переход) должна быть пройдена (выполнена) хотя бы один раз.

Использование критерия покрытия условий может определить подбор тестов, обеспечивающих переход в программе, который пропускается при использовании критерия С1 (например, в программе, использующей конструкцию цикла WHILE х AND y DO... , применение критерия покрытия условий требует проверки обоих вариантов выхода из цикла: NOT x и NOT y). С другой стороны покрытие условий может не обеспечивать покрытия всех переходов.

Например, конструкция IF A AND B THEN... требует по критерию покрытия условий двух тестов (например, A=true, B=false и A=false, B=true), при которых может не выполняться оператор, расположенный в then - ветви оператора if. Практически единственным средством, предоставляемым современными системами программирования, является возможность определения частоты выполнения различных операторов программы. Но с помощью этого инструмента поддержки тестирования можно проверить выполнение только слабейшего из критериев полноты - покрытие всех операторов. Правда, с помощью этого же инструмента можно проверить и выполнение критерия С1. Но для этого предварительно текст программы должен быть преобразован таким образом, чтобы все конструкции условного выбора (IF, CASE или SWITCH) содержали ветви ELSE или DEFAULT, хотя бы и пустые. В этом случае все ветви алгоритма, не выполнявшиеся на данном тесте, будут “видимы” из таблицы частоты выполнения операторов преобразованной программы.

Актуальной остается задача создания инструментальных средств, позволяющих:

ь накапливать информации о покрытых и непокрытых ветвях для всех использованных тестов;

ь выделять разработчику еще не покрытые при тестировании участки программы, облегчая выбор следующих тестов;

ь поддерживать более мощные критерии полноты структурного тестирования.

1.6 Восходящее и нисходящее тестирование

Восходящее тестирование - это прекрасный способ локализации ошибок. Если ошибка обнаружена при тестировании единственного модуля, то очевидно, что она содержится именно в нем - для поиска ее источника не нужно анализировать код всей системы. А если ошибка проявляется при совместной работе двух предварительно

протестированных модулей, значит, дело в их интерфейсе. Еще одним преимуществом восходящего тестирования является то, что выполняющий его программист концентрируется на очень узкой области (единственном модуле, передаче данных между парой модулей и т.п.). Благодаря этому тестирование проводится более тщательно и с большей вероятностью выявляет ошибки. тестирование программа интерфейс данные

Главным недостатком восходящего тестирования является необходимое написания специального кода-оболочки, вызывающего тестируемый модуль. Если он, в свою очередь, вызывает другой модуль, для него нужно написать «заглушку». Заглушка - это имитация вызываемой функции, возвращающая те же данные, но ничего больше не делающая.

Понятно, что написание оболочек и заглушек замедляет работу, а для конечного продукта они абсолютно бесполезны. Но написанные однажды, ни элементы могут использоваться повторно при каждом изменении программы. Хороший набор оболочек и заглушек - это очень эффективный инструмент тестирования.

В противоположность восходящему тестированию, стратегия целостного тестирования предполагает, что до полной интеграции системы ее отдельные модули не проходят особо тщательного тестирования.

Преимуществом такой стратегии является то, что нет необходимости в написании дополнительного кода. Поэтому многие руководители выбирают этот способ из соображений экономии времени - они считают, что лучше разработать один обширный набор тестов и с его помощью за один раз проверить всю систему. Но такое представление совершенно ошибочно, и вот почему.

* Очень трудно выявить источник ошибки. Это главная проблема. Поскольку ни один из модулей не проверен как следует, в большинстве из них есть ошибки. Получается, что вопрос не столько в том, в каком модуле произошла обнаруженная ошибка, сколько в том, какая из ошибок во всех вовлеченных в процесс модулях привела к полученному результату. И когда накладываются ошибки нескольких модулей, ситуацию может быть гораздо труднее локализовать и повторить.

Кроме того, ошибка в одном из модулей может блокировать тестирование другого. Как протестировать функцию, если вызывающий ее модуль не работает? Если не написать для этой функции программу-оболочку, придется ждать отладки модуля, а это может затянуться надолго.

* Трудно организовать исправление ошибок. Если программу пишут несколько программистов (а именно так и бывает в больших системах), и при этом неизвестно, в каком модуле ошибка, кто же будет ее искать и исправлять? Один программист будет указывать на другого, тот, выяснив, что его код ни при чем, снова обратится к первому, а в результате будет сильно страдать скорость разработки.

* Процесс тестирования плохо автоматизирован. То, что на первый взгляд кажется преимуществом целостного тестирования - отсутствие необходимости писать оболочки и заглушки, - на самом деле оборачивается его недостатком. В процессе разработки программа ежедневно меняется, и ее приходится тестировать снова и снова. А оболочки и заглушки помогают автоматизировать этот однообразный труд.

Существует и еще один принцип организации тестирования, при котором программа так же, как и при восходящем способе, тестируется не целиком, а по частям. Только направление движения меняется - сначала тестируется самый верхний уровень иерархии модулей, а от него тестировщик постепенно спускается вниз. Такая технология называется нисходящей (top-down). Обе технологии - и нисходящую и восходящую - называют также инкрементальными.

При нисходящем тестировании отпадает необходимость в написании оболочек, но заглушки остаются. По мере тестирования заглушки по очереди заменяются на реальные модули.

Мнения специалистов о том, какая из двух инкрементальных стратегий тестирования более эффективна, сильно расходятся. На практике вопрос выбора стратегии тестирования обычно решается просто: каждый модуль по возможности тестируется сразу после его написания, в результате последовательность тестирования одних частей программы может оказаться восходящей, а других - нисходящей.

1.7 Методы отладки программ обеспечение тестирование отладка

Отладка программы так или иначе принимает рассмотрение и логическое решение доступной информации о ошибках. Большая часть ошибок может быть узнана посредством тщательного анализа текстов программ и результатов тестирования, не получая дополнительной информации. Таким образом используем различные методы:

§ Ручное тестирование - самый простой и естественный метод. В обнаружении ошибок необходимо выполнить протестированную программу вручную, используя выбранный тест и сравнить результаты. Метод очень эффективен, но не применим для программ с трудными расчетами. Этот метод часто используют в качестве компонента для других методов устранения ошибок.

§ Прологи - этот метод основан на тщательном анализе симптомов ОШИБКИ, которые можно показать как неправильные результатов расчета или как сообщение об ошибке. Если компьютер просто «зависает», фрагмент дисплея ОШИБКИ вычисляют и анализируют происхождение последних полученных результатов, постепенно локализуя ошибку.

§ Снижения - отбирают причины, повлекшие вывод ошибки, а затем анализируют причины, которые противоречат доступным данным;

§ Обратная трассировка - эффективен для малых программ. Начинают с точки вывода неправильного результата. Для этой точки находится значения основных переменных, которые могли привести к получению этого результата, затем ищут происхождение этого результата по значениям переменных в предыдущей точке. Процесс продолжается, пока не найдена причина ошибки.

2. Практическое задание

Создать Windows-приложение: разработать интерфейс, написать и отладить программу, создать .EXE файл, сохранить весь проект в отдельной папке.

Решение биквадратного уравнения x4 + 2•P + Q = 0 при любых значениях P и Q.

Реализация.

Биквадратным уравнением называется уравнение следующего вида:

где - любые действительные числа, но , x - неизвестная искомая переменная.

Коэффициенты имеют соответственно названия: - старший коэффициент (коэффициент при ), - второй коэффициент (коэффициент при ), - свободный член.

Корнем биквадратного уравнения называется такое значение переменной , при подстановке которого трехчлен обращается в ноль.

Решить биквадратное уравнение - это значит найти все его корни или установить, что корней нет.

При решении биквадратного уравнения необходимо придерживаться следующей схемы:

1) Подстановкой свести заданное биквадратное уравнение к квадратному уравнению вида

2) Найти корни полученного квадратного уравнения. 3) Приравнять полученные значения корней квадратного уравнения к введенной переменной подстановки . То есть провести обратную замену.

4) Найти корни биквадратного уравнения, решив уравнения обратной замены.

Разработку программы решения начинаем с разработки блок-схемы алгоритма, приняв во внимание вид данного в практическом задании уравнения, в нашем случае a = 1, b= 2•Р, с=Q.

Блок-схема программы:

Размещено на http://www.allbest.ru/

Для презентации практического задания создаем первую форму (Form1), на которой - тема практического задания и четыре кнопки: «Автор», «Немного теории…», «Решить уравнение» и «Выход»:

Нажатие на кнопку «Автор» выводит на экран сведения о разработчике программы (Form6), нажатие на кнопку «Выход» закрывает выполнение приложения.

Нажатие на кнопку «Немного теории…» открывает одноименную форму (Form2) с определением биквадратного уравнения и методом его решения:

На форме - три кнопки: «Выход» - закрывает приложение, «Примеры для отладки программы» - показывает форму «Тестовые задания» (Form4) для отладки программы:

Нажатие на кнопку «Решить уравнение» и на главной форме (Form1), и на форме «Немного теории…» (Form2), и нажатие на кнопку «Начать отладку» на форме «Тестовые задания» (Form4) открывает форму «Решить уравнение» (Form3), на которой происходит ввод данных, отладка программы специально подобранным текстовым заданием и решение любого биквадратного уравнения обозначенного в практическом задании вида x4 + 2?P + Q = 0:

Входными данными для решения задачи являются: Р - половина второго коэффициента и Q - свободный член биквадратного уравнения. Выходные данные - это действительные корни уравнения, их может быть четыре, три, два или один, но уравнение может совсем не иметь действительных корней.

Для отладки программы взяты шесть уравнений, которые образуют список (Form3.Combo1 - составляется при нажатии на кнопку «Начать отладку» наForm4) на форме «Решить уравнение» (Form3). Отладка программы проводилась ручным методом (все тестовые уравнения решены вручную, и результаты выполнения программы сравнивались с ответами, полученными вручную):

Выбрав для отладки любое уравнение, вводят данные и решают его с помощью программы нажатием на кнопку «Вычислить корни уравнения». Нажатием на кнопку «Повторить решение для новых данных» повторяют эти действия для других уравнений, например:

Кнопка «Вывод» показывает на экране одноименную форму результатом анализа результатов отладки программ:

Кнопка «Назад» возвращает на форму «Решить уравнение» (Form3) для решения биквадратных уравнений пользователя.

Заключение

При разработке программ наиболее трудоемким является этап отладки и тестирования программ. Цель тестирования, т.е. испытания программы, заключается в выявлении имеющихся в программе ошибок. Цель отладки состоит в выявлении и устранении причин ошибок.

Отладку программы начинают с составления плана тестирования. Такой план должен представлять себе любой программист. Составление плана опирается на понятие об источниках и характере ошибок. Основными источниками ошибок являются недостаточно глубокая проработка математической модели или алгоритма решения задачи; нарушение соответствия между схемой алгоритма или записью его на алгоритмическом языке и программой, записанной на языке программирования; неверное представление исходных данных на программном бланке; невнимательность при наборе программы и исходных данных на клавиатуре устройства ввода.

Нарушение соответствия между детально разработанной записью алгоритма в процессе кодирования программы относится к ошибкам, проходящим вследствие невнимательности программиста. Отключение внимания приводит и ко всем остальным ошибкам, возникающим в процессе подготовки исходных данных и ввода программы в ЭВМ. Ошибки, возникающие вследствие невнимательности, могут иметь непредсказуемые последствия, так как наряду с потерей меток и описаний массивов, дублированием меток, нарушением баланса скобок возможны и такие ошибки, как потеря операторов, замена букв в обозначениях переменных, отсутствие определений начальных значений переменных, нарушение адресации в массивах, сдвиг исходных данных относительно полей значений, определенных спецификациями формата.

При выполнении курсового проекта я изучил порядок и цели тестирования и отладки созданной программы, причины возникновения ошибок при создании программ, а также методы борьбы с ними. В результате выполнения курсового проекта разработана, протестирована и отлажена программа решения биквадратного уравнения.

Перечень использованной литературы

1. Батищев П.С. Основы программирования на Visual Basic 6.0. Электронный учебник.

2. Угринович Н.Д . Информатика и информационные технологии 10-11. - 2006. 511 с.

3. Кашаев С.М. Программирование в Microsoft Excel на примерах. - СПб.: БХВ-Петербург, 2007. - 320 с.: ил. + Видеокурс (на CD)

4. Коликова Т.В. Основы тестирования программного обеспечения. Учебное пособие [текст] / Т.В. Коликова, В.П. Котляров; - Интуит, 2006, - 285 с. ISBN 5-85582-186-2.

5. Плаксин М. Тестирование и отладка программ - для профессионалов будущих и настоящих [текст] / М. Пласкин; - Бином. Лаборатория знаний, 2007, - 168 с. ISBN 978-5-94774-458-3.

Приложение

Код программы

Программный код формы 1:

Private Sub Command1_Click()

Form1.Hide

Form2.Show

End Sub

Private Sub Command2_Click()

Form1.Hide

End Sub

Private Sub Command3_Click()

Form3.Combo1.Clear

Form1.Hide

Form3.Show

End Sub

Private Sub Command4_Click()

Form6.Show

End Sub

Программный код формы 2:

Private Sub Command1_Click()

Form2.Hide

Form4.Show

End Sub

Private Sub Command2_Click()

Form2.Hide

End Sub

Private Sub Command3_Click()

Form3.Combo1.Clear

Form1.Hide

Form3.Show

End Sub

Программный код формы 3:

Public p As Variant ' параметр

Public q As Variant ' параметр

Public d As Variant ' дискриминант квадр. уравнения

Public t1 As Variant '1-й корень квадр. уравнения

Public t2 As Variant '2-й корень квадр. уравнения

Public x1 As Variant '1-й корень биквадр. уравнения

Public x2 As Variant '2-й корень биквадр. уравнения

Public x3 As Variant '3-й корень биквадр. уравнения

Public x4 As Variant '4-й корень биквадр. уравнения

Private Sub Command1_Click()

Form3.Text9.Text = ""

Form3.Text8.Text = ""

Form3.Text3.Text = ""

Form3.Text4.Text = ""

Form3.Text5.Text = ""

Form3.Text6.Text = ""

Form3.Text7.Text = ""

p = Val(Form3.Text1.Text)

q = Val(Form3.Text2.Text)

d = ((-2) * p) ^ 2 - 4 * q

'MsgBox (p & " " & q & " " & d)

Form3.Text7.Text = Str(d)

If d < 0 Then

Form3.Label5.Caption = "Дискриминант < 0. Действительных решений нет"

GoTo M1

Else

t1 = ((-2 * p) - Sqr(d)) / 2

2 = ((-2 * p) + Sqr(d)) / 2

Form3.Text9.Text = Round(t1, 2)

Form3.Text8.Text = Round(t2, 2)

If (t1 < 0 And t2 < 0) Then

Form3.Label5.Caption = "t1 < 0 и t2 < 0. Действительных решений нет"

GoTo M1

Else

If (t1 >= 0 And t2 >= 0) Then

Form3.Label5.Caption = "4 действительных корня"

x1 = -Sqr(t1): x2 = -x1: x3 = -Sqr(t2): x4 = -x3

Form3.Text3.Text = Round(x1, 2)

Form3.Text4.Text = Round(x2, 2)

Form3.Text5.Text = Round(x3, 2)

Form3.Text6.Text = Round(x4, 2)

GoTo M1

Else

If (t1 >= 0 And t2 < 0) Then

x1 = -Sqr(t1): x2 = -x1

Else

x1 = -Sqr(t2): x2 = -x1

End If

Form3.Label5.Caption = "2 действительных корня"

Form3.Text3.Text = Round(x1, 2)

Form3.Text4.Text = Round(x2, 2)

End If

End If

End If

M1: End Sub

Private Sub Command2_Click()

Form3.Text9.Text = ""

Form3.Text8.Text = ""

Form3.Text1.Text = ""

Form3.Text2.Text = ""

Form3.Text3.Text = ""

Form3.Text4.Text = ""

Form3.Text5.Text = ""

Form3.Text6.Text = ""

Form3.Text7.Text = ""

Form3.Label5.Caption = ""

End Sub

Private Sub Command3_Click()

Form3.Hide

End Sub

Private Sub Command4_Click(Index As Integer)

Form3.Hide

Form5.Show

End Sub

Программный код формы 4:

Private Sub Command1_Click()

Form4.Hide

Form3.Combo1.Clear

Form3.Combo1.AddItem "x^4-3*x^2+2=0"

Form3.Combo1.AddItem "x^4+2*x^2-8=0"

Form3.Combo1.AddItem "x^4-3*x^2+27=0"

Form3.Combo1.AddItem "x^4+5*x^2+6=0"

Form3.Combo1.AddItem "x^4-20*x^2+64=0"

Form3.Combo1.AddItem "x^4-13*x^2-48=0"

Form3.Show

End Sub

Private Sub Command2_Click()

Form4.Hide

End Sub

Программный код формы 5:

Private Sub Command3_Click()

Form5.Hide

Form3.Text9.Text = ""

Form3.Text8.Text = ""

Form3.Text1.Text = ""

Form3.Text2.Text = ""

Form3.Text3.Text = ""

Form3.Text4.Text = ""

Form3.Text5.Text = ""

Form3.Text6.Text = ""

Form3.Text7.Text = ""

Form3.Label5.Caption = ""

Form3.Show

End Sub

Размещено на Allbest.ru

...

Подобные документы

  • Основные стандарты usability-тестирования интерфейсов информационных систем. Количественные и качественные методы оценки тестирования. Технология Eye-tracking. Постановка целей и задач для тестирования сайта Налоговой службы Российской Федерации.

    дипломная работа [3,3 M], добавлен 11.06.2017

  • История возникновения тестирования программного обеспечения, основные цели и особенности его проведения. Виды и типы тестирования, уровни его автоматизации. Использование и исследование необходимых технологий. Полный цикл прогона всей системы мониторинга.

    дипломная работа [1,7 M], добавлен 03.05.2018

  • Сущность тестирования и отладки, методика выявления ошибок в программном обеспечении. Практика отладки приложений в среде Delphi, системы управления версиями приложения и отслеживания ошибок. Применение точек остановки и модификация локальных переменных.

    курсовая работа [303,4 K], добавлен 19.01.2016

  • Тестирование как составляющая часть процесса отладки программного обеспечения, его роль для обеспечения качества продукта. Обнаружение ошибок в программах, выявление причин их возникновения. Подходы к формулированию критериев полноты тестирования.

    курсовая работа [1,6 M], добавлен 20.12.2012

  • История развития и виды тестирования программного обеспечения. Инсталляционное, регрессионное, конфигурационное, интеграционное, локализационное, модульное тестирование. Методы сокращения трудоемкости модульного тестирования разрабатываемого приложения.

    курсовая работа [309,5 K], добавлен 16.12.2015

  • Пользовательский интерфейс - "лицо" системы, от продуманности которого зависит эффективность работы пользователя с системой. Функциональное тестирование пользовательских интерфейсов. Проверка требований, тестопригодность. Методы проведения тестирования.

    реферат [28,7 K], добавлен 21.01.2010

  • Изучение различных видов тестирования программного обеспечения. Выявление в программной системе скрытых дефектов до того, как она будет сдана заказчику. Тестирование методом черного ящика. Требования, предъявляемые к процессу тестирования больших систем.

    курсовая работа [3,0 M], добавлен 19.11.2009

  • Неразрешимость проблемы тестирования программного обеспечения. Виды и уровни тестирования. Стратегии восходящего и нисходящего тестирования. Методы "белого" и "черного" ящика. Автоматизированное и ручное тестирование. Разработка через тестирование.

    курсовая работа [112,2 K], добавлен 22.03.2015

  • Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".

    дипломная работа [3,2 M], добавлен 11.09.2014

  • Изучение составляющих этапов разработки программ, процесса их тестирования, отладки и документирования в контексте курса обучения начинающих программистов. Теоретический анализ постановки задачи и модели программы, создания текста, семантической отладки.

    курсовая работа [29,2 K], добавлен 28.11.2010

  • Выбор среды разработки программного обеспечения. Компьютерная система тестирования знаний в дистанционном обучении OpenTEST. Написание встроенного текстового редактора для расширенного форматирования текста. Руководство пользователя, структура программы.

    дипломная работа [7,1 M], добавлен 20.05.2013

  • Комплексное функциональное и структурное тестирование программного продукта - граф-программа решения квадратного уравнения. Постановка задачи структурного тестирования маршрутов. Заключение о типе и причине ошибки, предложение по ее исправлению.

    курсовая работа [2,8 M], добавлен 05.01.2013

  • Обоснование необходимости разработки компьютерной системы тестирования студентов. Анализ используемого программного и технического обеспечения на предприятии. Требования к функционированию модуля. Сведения о программе: структура, настройка и проверка.

    курсовая работа [1,7 M], добавлен 13.06.2017

  • Способы оценки знаний. WEB-система тестирования студентов. Блок регистрации и авторизации. Категорирование страниц сайта по различным терминам. Создание вопроса с выбором количества правильных вариантов ответа. Система настройки тестов и вопросов в них.

    дипломная работа [3,7 M], добавлен 15.04.2012

  • Подходы и алгоритмы автоматизации тестирования. Анализ специфики работы с локальными и веб-приложениями, внедрение автоматических тестов в процесс контроля качества приложений Global XB, GCube и Thistle. Оптимальный инструмент разработки скриптов.

    дипломная работа [1,5 M], добавлен 15.01.2012

  • Проектирование базы данных, информационной подсистемы PLC-Tester, модуля тестирования и web-приложения. Разработка логической структуры программного продукта и общие требования к техническому обеспечению. Запуск программы и описание тестовых прогонов.

    дипломная работа [3,2 M], добавлен 30.06.2011

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

  • Технология разработки и внедрения программного обеспечения автоматизированной системы управления. Классификация ошибок в программах на этапе эксплуатации системы и общие задачи процесса ее отладки. Методы обнаружениея и локализации ошибок в программах.

    контрольная работа [480,4 K], добавлен 25.10.2010

  • Проблема надежности программного обеспечения, ее показатели и факторы обеспечения. Методы контроля процесса разработки программ и документации, предупреждение ошибок. Этапы процесса отладки ПО, приемы структурного программирования и принцип модульности.

    презентация [379,5 K], добавлен 30.04.2014

  • Cовременные технологии тестирования. Assistant II, eTest, myTest X, veralTest, sunRav TestOfficePro. Концептуальная и физическая модель баз данных. Фреймворк Oposum CMS. Система тестирования учащихся, характеристика главных особенностей работы с ней.

    дипломная работа [2,8 M], добавлен 02.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.