Создание клиентских частей SQL-баз данных под Win95 и WinNT

  d8ef8794     

Отладка


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

Модуль справочников и модуль отчетов являются вспомогательными.

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

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

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

Первый тест на правильность отражения информации. Программа должна отражать именно ту информацию, которая находится в базе данных. Для проверки правильности функционирования необходимо проводить визуальное сравнение данных на экране и содержимого базы данных. Содержимое базы данных выводится на экран при помощи стандартного SQL запроса (SELECT * FROM <имя таблицы>). Расхождение информации на экране и в базе данных свидетельствует об ошибке в программе при формировании запроса к базе данных или при выводе данных на экран.

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


Третий тест на правильность введения информации в базу данных. Для этого вводится информация и проверяется правильность ее отражения в базе данных. Отрицательный результат теста означает ошибку при формировании запроса к базе данных.
Модуль отчета включает в себя подпрограмму вывода на печать/просмотр журнала выданных или полученных счетов-фактур за определенных период и подпрограмму печати счета-фактуры. Подпрограмма вывода на журнала счетов-фактур должна, при наличии данных за период, выдавать их на печать, а при отсутствии сообщать об этом. Подпрограмма печати счета-фактуры должна просто печатать счет-фактуры, поэтому тестирование может заключаться в правильности вывода на принтер информации и отработки функции формировании суммы прописью.
Первый тест для подпрограммы выдачи отчета журнала счетов ориентирован в первую очередь на правильность вывода информации. Отрицательный результат теста означает либо ошибку в подпрограмме при формировании запроса или при выводе информации на принтер, либо в хранимой процедуре SP_MAKE_BOOK, которая формирует данные для отчета. Последнее можно проверить при помощи стандартной программы SQL Query, поставляемой вместе SQL Server, которая предоставляет интерактивный интерфейс к базе данных.
Второй тест на правильность работы отработки ввода периода. Для этого вводится заведомо неправильный интервал, т.е. интервал в котором нет ни одного счета-фактуры, либо где верхняя граница меньше чем нижняя. Отрицательный результат теста означает ошибку при вводе или обработки интервала.
Главным модулем является модуль регистрации счетов-фактур. Он должен отражать и давать возможность корректировать информацию, при этом не путать счета выданные и полученные. Также обходимо предусмотреть возможность различной фильтрации и поиска данных. Исходя из этого, тестирование можно разбить на две часть, это основную (отражение и корректировка) и дополнительную (фильтрация и поиск).
Так как пустой (т.е. без единого товара) счет-фактуры не имеет смысла, необходимо предусмотреть проверку на наличие хотя бы одного товара. Также товар без цены или количества не имеет смысла.


Первый тест на правильность отражения информации. Программа должна отражать именно ту информацию, которая находится в базе данных, в том числе отражать только те товары, которые относятся к базе данных. Для локализации ошибки, сначала тестируется логика работы базы данных и вспомогательных представлений V_Articles и V_Facture. Так как в таблице товары хранится только информация о цене, количестве и ссылка на налоги, а в таблице журнала счетов вообще отсутствует информация о сумме счета, для удобства работы было созданы эти представления. Для проверки правильности функционирования программы необходимо проводить визуальное сравнение экрана и содержимого базы данных. Отрицательный результат теста обозначает ошибку в программе при выборе информации из базы данных или при формировании запроса к ней.
Второй тест для подпрограммы журнала счетов ориентирован в первую очередь на правильность вывода информации. Для этого вводится заведомо неправильная информация: дубликат первичного ключа (идентификатор счета плюс номер товара), отсутствие клиента (внешний ключ) или товара, отсутствие или пустые поля, которые не могут быть пустыми. Отрицательный результат теста означает либо ошибку в подпрограмме, при формировании запроса и выдачи информации, либо в логике базы данных. Последнее можно проверить при помощи стандартной программы SQL Query, поставляемой вместе SQL Server.
Третий тест на правильность отработки фильтрации и поиска. Поиск осуществляется при помощи встроенного в Delphi поиска, поэтому необходимо проверить только правильность передачи аргументов. Фильтрация информации разделена на три компонента: фильтрация по типу счета-фактуры (невидимый для пользователя компонент), фильтрация по дате счета-фактуры и расширенная фильтрация в виде SQL предложения. Для проверки фильтрации информации по дате, необходимо варьировать параметрами даты, и визуально проверять правильность отражения в программе.
Комплексная отладка всех модулей дополнительно проверяет логику работы базы данных, т.к. модули программы функционально независимы.


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

Содержание раздела