Тестирование представляет собой деятельность по проверке программного кода и документации. Она должна планироваться заранее и систематически проводиться специально назначенным тестировщиком во время разработки программного продукта.
Тестирование начинается практически одновременно с этапом планирования программного продукта, и длиться на всем протяжении разработок и достигает своего пика в конце этапа проектирования.
На ранних стадиях разработки тестируется документация и разрабатываемые модели, такое тестирование требует наличие у тестировщика определённого опыта, в нахождении ошибок в документации и моделях до возникновения ошибок в разработанном программном продукте.
В рамках данного программного продукта тестирование проводилось одновременно с реализацией, кодированием программного продукта. Это позволило оперативно исправлять возникавшие ошибки и недочёты.
Кроме того после завершения этапа разработки было проведено комплексное тестирования всего программного продукта.
Во время разработки было выявлено несколько незначительных ошибок вызванных опечатками в формулах названиях диапазонов и исходных кодах. Такие ошибки легко обнаружимы, так как их наличие вызывает ошибку в отдельном конкретном участке программы за функционал, которого они отвечают. Таким образом, проанализировав место возникновения ошибки и проверить правильность записи формул или исходного кода можно устранить ошибку без особых усилий.
Гораздо более трудными к устранению являются ошибки системы, причина их возникновения весьма «туманна», так как для устранения данной ошибки необходимо знать принципы работы самой системы. Возникновение таких ошибок часто заставляет идти на компромиссы.
При разработке данного программного продукта изначально в качестве условий выбора диалоговых форм «Выбор пользователя» и «Удаление пользователя» было решено использовать поле Фамилия. Что и было реализовано, однако во время тестирования выявилась ошибка, а точнее некорректный выбор пользователя по фамилии. Анализ данной ошибки не дал никаких результатов, так как результаты вывода не имели никакой логики указывающей на причину возникновения ошибки. Скорее всего это ошибка возникает из за несовместимости данных, возвращаемых в таблицу из формы созданной средствами VBA и формулы ПРОСМОТР() самого табличного редактора. Как выяснилось позже, формула «ПРОСМОТР» нормально функционирует и реализует поиск в заданном диапазоне только целочисленным индексам, а попытка поиска по текстовым или цифро-текстовым индексам приводит к некорректному выводу информации.
Для обхода этой ошибки пришлось пойти на компромисс и задать в качестве условия для выбора форм для выбора и удаления клиентов не фамилию клиента, а его код.
Тестирование программного продукта после разработки на предмет его функциональности не выявило ошибок. Это не означает их полное отсутствие, так как тестирование программного продукта в реальных условиях эксплуатации в процессе разработки невозможно.
6. СОПРОВОЖДЕНИЕ ПРОГРАММНОГО ПРОДУКТА
Сопровождение программного продукта это процесс, связанный с его модернизацией и адаптацией к новым условиям или требованиям. Этот этап не является обязательным, однако очень выгоден для разработчика.
При малых затратах на изменение программного продукта разработчик может получить прибыль немногим меньшую чем разработка программного продукта с нуля.
Для данной формы учёта предоставления льгот имеются перспективы развития и модернизации.
За последние несколько лет законодательство в сфере предоставления льгот изменялось несколько раз. И очень вероятно, что изменится в будущем. Программа имеет механизмы настройки параметров расчёта льгот, поэтому при изменении процентов выплаты по льготам модернизация программного продукта не потребуется.
Модернизация будет необходима, если изменится способ расчёта выплат льгот и их учёта. Разработанный программный продукт обладает средствами и возможностями для такой модернизации.
Кроме того в перспективе возможно развитие данного программного продукта доведения его до масштабов автоматизированной системы. Средства Excel и VBA позволят это сделать.
ЗАКЛЮЧЕНИЕ
В данной курсовой работе был разработан программный продукт для расчета и учета предоставления льгот на услуги жилищно-комунального хозяйства.
Программа была разработана с помощью языка программирования Visual Basic for Application (VBA).
Язык программирования Visual Basic for Application – быстрое, простое решение многих задач, связанных с программированием офисных приложений.
На примере данной курсовой работы можно убедиться, как просто создаются диалоговые окна, для наиболее удобного ввода информации в таблицы как прост и удобен интерфейс данной системы. Также просто создаются собственные функции рабочего листа, функции обработки информации в таблицах, создавать кнопки управляющие действиями программы по желанию пользователя.
Visual Basic for Application обладает достаточно широкими возможностями базового языка Visual Basic, и позволяет обращаться практически ко всем возможностям Microsoft Excel по созданию, обработке и хранению информации.
Язык программирования Visual Basic for Application наиболее удобен в работе и прост в обращении для широкого круга пользователей, желающих самостоятельно научиться создавать программы.
Таким образом, данная программа по учёту предоставления льгот на коммунальные услуги делает наиболее простой работу пользователя в данной области и сокращает время на выполнение соответствующих операций
Приложение 1
Листинг программы
Электронная форма учёта предоставления льгот по оплате жилья
‘Лист 4 главное меню
Private Sub CommandButton1_Click()
Лист3.Activate
End Sub
Private Sub CommandButton2_Click()
Лист1.Activate
End Sub
Private Sub CommandButton3_Click()
Лист2.Activate
End Sub
Private Sub CommandButton4_Click()
frmSet. Show
End Sub
‘Создание меню в панели инструментов
Private Sub Workbook_Open()
With mandBars. Add(Name:="Меню", Temporary:=True, Position:=msoBarTop)
With .Controls. Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 66
.Caption = "Главная"
.OnAction = "кГлавной"
End With
With .Controls. Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 66
.Caption = "Квитанция"
.OnAction = "кКвитанции"
End With
With. Controls. Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 66
.Caption = "Тарифы"
.OnAction = "кТарифам"
End With
With .Controls. Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
Приложение 1
.FaceId = 66
.Caption = "Списку"
.OnAction = "кСписку"
End With
.Visible = True
End With
End Sub
‘Печать таблицы тарифов
Private Sub CommandButton1_Click()
Лист2.PrintPreview
End Sub
‘Квитанция печать и вызов форм
Private Sub CommandButton1_Click()
Лист3.PrintPreview
End Sub
Private Sub CommandButton2_Click()
frmCode. Show
End Sub
Private Sub CommandButton3_Click()
frmWrite. Show
End Sub
‘Список клиентов печать и вызов форм
Private Sub CommandButton1_Click()
Лист1.PrintPreview
End Sub
Private Sub CommandButton2_Click()
frmAdd. Show
End Sub
Private Sub CommandButton3_Click()
frmDel. Show
End Sub
‘Форма добавления клиента и процедуры добавления
Приложение 1
Private Sub CommandButton1_Click()
Dim Max
Dim Count As Integer
Count = Sheets("Настройки").Cells(1, 2)
Max = Sheets("Список клиентов").Cells(2, 16)
Sheets("Список клиентов").Cells(Max + 6, 2) = Count + 1
Sheets("Список клиентов").Cells(Max + 6, 3) = TextBox1.Text
Sheets("Список клиентов").Cells(Max + 6, 4) = TextBox2.Text
Sheets("Список клиентов").Cells(Max + 6, 5) = TextBox6.Text
Sheets("Список клиентов").Cells(Max + 6, 6) = TextBox3.Text
Sheets("Список клиентов").Cells(Max + 6, 7) = TextBox4.Text
Sheets("Список клиентов").Cells(Max + 6, 8) = TextBox5.Text
Sheets("Список клиентов").Cells(Max + 6, 9) = ComboBox1.Text
Sheets("Список клиентов").Cells(Max + 6, 10) = ComboBox2.Text
Sheets("Список клиентов").Cells(Max + 6, 11) = ComboBox3.Text
Sheets("Список клиентов").Cells(Max + 6, 12) = ComboBox4.Text
Sheets("Список клиентов").Cells(Max + 6, 13) = ComboBox5.Text
Sheets("Список клиентов").Cells(Max + 6, 14) = ComboBox6.Text
Sheets("Настройки").Cells(1, 2) = Count + 1
frmAdd. Hide
End Sub
Private Sub CommandButton2_Click()
frmAdd. Hide
End Sub
Private Sub UserForm_Activate()
ComboBox1.RowSource = "Газ_код"
ComboBox2.RowSource = "Гвода_код"
ComboBox3.RowSource = "Хвода_код"
ComboBox4.RowSource = "отопление_код"
ComboBox5.RowSource = "Эл_код"
ComboBox6.RowSource = "ЛьготыКод"
End Sub
Private Sub UserForm_Click()
End Sub
‘Форма выбора клиента
Private Sub CommandButton1_Click()
If ComboBox1.Text <> "" Then
Sheets("Квитанция").Cells(2, 13) = ComboBox1.Text
Else
MsgBox "Выбрано пустое значение"
End If
Приложение 1
frmCode. Hide
End Sub
Private Sub CommandButton2_Click()
frmCode. Hide
End Sub
Private Sub UserForm_Activate()
boBox1.RowSource = "Код"
End Sub
Private Sub UserForm_Click()
End Sub
‘Форма удаления клиента из таблицы
Private Sub CommandButton1_Click()
Dim MaxD As Integer
Dim CodeD As Integer
Dim i, d, dd As Integer
MaxD = Sheets("Список клиентов").Cells(2, 16)
Sheets("Список клиентов").Cells(3, 15) = ComboBox1.Text
CodeD = Sheets("Список клиентов").Cells(3, 16)
'Удаление последней записи
If MaxD = CodeD Then
Sheets("Список клиентов").Cells(MaxD + 5, 2) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 3) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 4) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 5) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 6) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 7) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 8) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 9) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 10) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 11) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 12) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 13) = ""
Sheets("Список клиентов").Cells(MaxD + 5, 14) = ""
Else
'Удаление не последней записи
'Удаляем запись
Sheets("Список клиентов").Cells(CodeD + 5, 2) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 3) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 4) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 5) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 6) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 7) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 8) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 9) = ""
Приложение 1
Sheets("Список клиентов").Cells(CodeD + 5, 10) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 11) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 12) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 13) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 14) = ""
'Сдвигаем таблицу
d = MaxD - CodeD
For i = 1 To d
Sheets("Список клиентов").Cells(CodeD + 5, 2) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 2)
Sheets("Список клиентов").Cells(CodeD + 5, 3) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 3)
Sheets("Список клиентов").Cells(CodeD + 5, 4) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 4)
Sheets("Список клиентов").Cells(CodeD + 5, 5) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 5)
Sheets("Список клиентов").Cells(CodeD + 5, 6) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 6)
Sheets("Список клиентов").Cells(CodeD + 5, 7) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 7)
Sheets("Список клиентов").Cells(CodeD + 5, 8) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 8)
Sheets("Список клиентов").Cells(CodeD + 5, 9) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 9)
Sheets("Список клиентов").Cells(CodeD + 5, 10) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 10)
Sheets("Список клиентов").Cells(CodeD + 5, 11) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 11)
Sheets("Список клиентов").Cells(CodeD + 5, 12) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 12)
Sheets("Список клиентов").Cells(CodeD + 5, 13) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 13)
Sheets("Список клиентов").Cells(CodeD + 5, 14) = Sheets("Список клиентов").Cells(CodeD + 1 + 5, 14)
CodeD = CodeD + 1
Next
Sheets("Список клиентов").Cells(CodeD + 5, 2) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 3) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 4) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 5) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 6) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 7) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 8) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 9) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 10) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 11) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 12) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 13) = ""
Sheets("Список клиентов").Cells(CodeD + 5, 13) = ""
End If
End Sub
Private Sub CommandButton2_Click()
frmDel. Hide
End Sub
Приложение 1
Private Sub UserForm_Activate()
boBox1.RowSource = "Код"
End Sub
Private Sub UserForm_Click()
End Sub
‘Форма настройки счётчиков
Private Sub CommandButton1_Click()
Sheets("Настройки").Cells(1, 2) = TextBox1.Text
Sheets("Настройки").Cells(2, 2) = TextBox2.Text
frmSet. Hide
End Sub
Private Sub CommandButton2_Click()
frmSet. Hide
End Sub
Private Sub UserForm_Activate()
TextBox1 = Sheets("Настройки").Cells(1, 2)
TextBox2 = Sheets("Настройки").Cells(2, 2)
End Sub
Private Sub UserForm_Click()
End Sub
‘Форма записи информации в таблицу выплат
Private Sub CommandButton1_Click()
Dim Last As Integer
Last = Sheets("Настройки").Cells(2, 2)
Sheets("Выплаты").Cells(3 + Last + 1, 1) = Last + 1
Sheets("Выплаты").Cells(3 + Last + 1, 2) = TextBox1.Text
Sheets("Выплаты").Cells(3 + Last + 1, 3) = TextBox2.Text
Sheets("Выплаты").Cells(3 + Last + 1, 4) = TextBox3.Text
Sheets("Выплаты").Cells(3 + Last + 1, 5) = TextBox4.Text
Sheets("Настройки").Cells(2, 2) = Last + 1
End Sub
Private Sub CommandButton2_Click()
frmWrite. Hide
End Sub
Private Sub UserForm_Activate()
TextBox1.Text = Sheets("Квитанция").Cells(5, 7)
TextBox2.Text = Sheets("Квитанция").Cells(16, 45)
Приложение 1
TextBox3.Text = Sheets("Квитанция").Cells(19, 31)
TextBox4.Text = Date
End Sub
Private Sub UserForm_Click()
End Sub
‘Макросы меню на панели инструментов
Sub кГлавной()
Лист4.Activate
End Sub
Sub кСписку()
Лист1.Activate
End Sub
Sub кТарифам()
Лист2.Activate
End Sub
Sub кКвитанции()
Лист3.Activate
End Sub
Sub Форма()
frmAdd. Show
End Sub
Sub Форм1()
frmCode. Show
End Sub
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |


