1 4 2 3
1 2 3 1 4 2 3
Connection – компонента типу TADOConnection призначена для встановлення зв’язку з базою даних;
SurveysDataSource – компонента типу TDataSource, яка виконує роль джерела даних тестувань та опитувань думки;
SurveysStoredProc – компонента типу TADOStoredProc, призначена для виклику збережуваних процидур орієнтованих на завантаження тестувань та опитувань з бази;
ActionStoredProc – компонента типу TADOStoredProc, призначена для виклику збережуваних процидур орієнтованих на додавання, редагування та видалення даних з бази.
Код:
type
TDataModule1 = class(TDataModule)
Connection: TADOConnection;
ActionStoredProc: TADOStoredProc;
SurveysStoredProc: TADOStoredProc;
SurveysDataSource: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end;
Попередній план тестування системи.
У процесі розробки даного програмного продукту було виявлено деякі важливі області, які необхідно уважно протестувати з метою виявлення всіх недоліків та помилок. Оскільки Клієнт 1 і Клієнт 2 системи мають подібну структуру, їхні важливі області теж певною мірою збігаються. Далі наводиться список всіх важливих областей:
Першою важливою областю є класи, які виконують операції з базою даних, а саме класи модулів: AccountManagerDAL, ReportBuilderDAL і SurveyBuilderDAL (Клієнт 1); і класи модуля: SurveyDAL (Клієнт 2); які працюють з базою даних за допомогою компонент модуля DataModule. У випадку неправильного функціонування одного з цих класів, може відбутися втрата даних, що в свою чергу призведе до некоректної роботи або й краху системи. Дані класи тестуватимуться шляхом перевірки коретності роботи їх методів; для кожного методу задаватимуться певні вхідні параметри і перевірятимется результати їх виконання.
Детальний опис даної вжливої області наведений нижче, окремо для Клієнта 1 і Клієнта 2.
Клієнт 1:
Модуль AccountManagerDAL:
TUsersDAL.В даному класі тестуватимуться методи необхідні для роботи з користувацькими записами системи: GetRoleId, GetFreeUserId, IsInLogin, IsInUserId, AddUser, UpdateUser, DeleteUser, GetUsers, GetUsersById, GetUsersByName, GetUsersByLogin, GetUsersByPassword, GetUsersByRoleId, GetUsersByGroupId. У випадку неправильної роботи методів цього класу можуть виникати проблеми з функціями управління користувацькими записами системи, такими як: створення, видалення, редагування користувацьких записів та ін.. Також помилки у цьому класі можуть призвести до втрати або спотворення даних про користувачів.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
GetRoleId
IsInLogin
AddUser
UpdateUser
DeleteUser
GetUsers
GetUsersByRoleId
GetUsersByGroupId
|
Login: <логін користувача> Password: <пароль>
Login: <логін користувача>
UserId: <ID користувача> FullName: <ім’я користувача> Login: <логін користувача> Password: <пароль> RoleId: <ID ролікористувача>
UserId: <ID користувача> FullName: <ім’я користувача> Login: <логін користувача> Password: <пароль> RoleId: <ID ролі користувача>
UserId: <ID користувача>
-------------------
RoleId: <ID ролі користувачів>
GroupId: <ID групи >
|
RoleIdкористувача: 1 – адміністратор; 2 – вчитель; 3 – студент; 0 – у випадку відсутності користувача в базі.
1 – користувач з таким логіном існує; 0 – користувач з таким логіном не існує.
Добавлення користувацького запису в базу з відповідними даними.
Обновлення відповідного користувацького запису.
Видалення користувацького запису, з відповідним ID,з бази.
Список всіх користувацьких записів.
Список всіх користувацьких записів відповідного типу.
Список всіх користувацьких записів що належать до групи з відповідним ID. |
TGroupsDAL.В цьому класі тестуватимуться методи необхідні для роботи з групами користувачів системи, такі як: GetFreeGroupId, IsInGroupId, IsInName, AddGroup, UpdateGroup, DeleteGroup, AddUserToGroup, DeleteUserFromGroup, GetGroupsByName, GetGroupsByUserId, GetGroupsById. У випадку несправності методів цього класу можуть виникати проблеми з функціями управліннями групами користувачів, такими як: створення, видалення, редагування груп, а також добавлення та видалення користувачів з групу. Також помилки у цьому класі можуть призвести до втрати або спотворення даних бази, які стосуються груп.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
IsInName
AddGroup
UpdateGroup
DeleteGroup
GetGroupsByUserId |
Name: <назва групи>
GroupId: <ID групи> Name: <назва групи>
GroupId: <ID групи> Name: <назва групи>
GroupId: <ID групи>
UserId: <ID користувача> |
1 – група з таким іменем існує; 0 – група з таким іменем не існує.
Добавлення групи базу з відповідними даними.
Обновлення імені групи з відповідним ID.
Видалення групи за вказаним ID.
Список груп до яких належить користувач з заданим ID. |
Модуль ReportBuilderDAL:
TReportDAL– В даному класі тестуватимуться методи, необхідні для роботи зі звітами системи:CreateSurveyReport,CreateTestReport,GetUserTestResults. У випадку неправильної роботи методів цього класу можуть виникати проблеми з функціями управління користувацькими записами системи, такими як: створення, видалення, редагування користувацьких записів та ін.. Також помилки у цьому класі можуть призвести до втрати або спотворення даних про користувачів.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
CreateSurveyReport
CreateTestReport
GetUserTestResults
|
SurveyName: <назва опитування>
TestName: <назва тестування>
UserId: <ID користувача> |
Створення звіту для заданого опитування.
Створення звіту для заданого тестування.
Результат тесту заданого користувача. |
Модуль SurveyBuilderDAL:
TSurveyDAL– В цьому класі тестуватимуться методи призначені для роботи зі списками тестувань та опитувань: IsInName,LoadSurvey,SaveSurvey, UpdateSurvey, DeleteSurvey, GetSurveysByUserId, GetSurveysByGroupId. У випадку неправильної роботи методів цього класу можуть виникати проблеми завантаженням, збереження і видаленням тестувань та опитувань з бази. Також помилки у цьому класі можуть призвести до втрати інформації, яка стосується тестувань та опитувань.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
IsInName
LoadSurvey
SaveSurvey
UpdateSurvey
DeleteSurvey
GetSurveysByUserId
GetSurveysByGroupId
|
Name: <назва опитування / тестування >
SurveyId: <ID опитування / тестування>
Survey: <об’єкт опитування / тестування >
Survey: <об’єкт опитування / тестування >
SurveyId: <ID опитування / тестування>
UserId: <ID користувача>
GroupID: <ID групи> |
1 – опитування /тестування з таким іменем існує; 0 – опитування/тестування з таким іменем не існує.
Об’єкт TSurvey відповідного тестування/опитування.
Збереження тестування/опитування до бази.
Обновлення тестування/опитування в базі.
Видалення тестування/опитування з бази.
Список тестувань та опитувань доступних користувачу з заданим ID.
Список тестувань та опитувань доступних групі користувачів з заданим ID |
TSurvey– В цьому класі тестуватимуться методи призначені для створення тестувань та опитувань, і їх збереження у вигляді об’єкта (екземпляра даного класу):CreateSurvey,AddQuestion,GetQuestions,DeleteQuestion. У випадку неправильної роботи методів цього класу можуть виникати проблеми зі створенням тестувань та опитувань.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
CreateSurvey
AddQuestion
GetQuestions
DeleteQuestion |
----------------
Question: <стрічка питання>
----------------
QuestionId: <ID запитання> |
Створення об’єкта TSurvey. Додавання запитання до опитування/тестування.
Список запитань.
Видалення запитання з заданим ID. |
Клієнт 2:
Модуль SurveyDAL:
TSurveyDAL– В даному класі тестуватимуться методи призначені для завантаження та відтворення списків тестувань та опитувань, а також збереження користувацьких відповідей до бази даних:LoadSurvey, SaveSurveyAnswers, GetSurveysByUserId, GetSurveysByGroupId. Несправність цих методів може призведе до спотворення користувацьких відповідей, а також до невірного відтворення списків тестувань та опитувань в клієнті.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
LoadSurvey
SaveSurveyAnswer
GetSurveysByUserId
GetSurveysByGroupId
|
SurveyId: <ID опитування / тестування>
SurveyAnswer: <об’єкт опитування / тестування >
UserId: <ID користувача>
GroupID: <ID групи> |
Об’єкт TSurvey відповідного тестування/опитування.
Збереженнярезультатів тестування/опитування до бази.
Список тестувань та опитувань доступних користувачу з заданим ID.
Список тестувань та опитувань доступних групі користувачів з заданим ID. |
TSurvey– В цьому класі тестуватимуться методи для створення тестувань та опитувань та їх збереження у вигляді об’єкта (екземпляра даного класу):CreateSurvey, AddQuestion, GetQuestions, DeleteQuestion. У випадку неправильної роботи методів цього класу можуть виникати проблеми з відтворенням тестувань та опитувань в клієнті.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
CreateSurvey
AddQuestion
GetQuestions |
----------------
Question: <стрічка питання>
---------------- |
Створення об’єкта TSurvey.
Додавання запитання до опитування/тестування.
Список запитань. |
TSurveyAnswers– В цьому класі тестуватимуться методи для збереження відповідей на питання тестувань та опитувань у вигляді об’єкта (екземпляра даного класу):CreateSurveyAnswers,AddAnswer. У випадку неправильної роботи методів цього класу можуть виникати проблеми зі збереженням відповідей користувачів на тестування і опитування.
Опис нормальної роботи методів
Назва методу |
Значення параметрів |
Результат виконання |
CreateSurveyAnswer
AddAnswers |
----------------
Answers: TStringList |
Створення об’єкта TsurveyAnswer.
Додавання відповідей до даного тестування/опитування. |
Наступна критична область – це область збережуваних процедур бази даних, тому що саме вони складають основу функцій системи, і обробки інформації. Якщо у цій області системи відбудется збій, може може відбутись серйозна втрата або спотворення даних, що в свою чергу завдасть безліч клопотів користувачам системи. Збережувані процедури тестуватимуться таким чином: для кожної процедури задаватимуться певні вхідні параметри і перевірятимется результати їх виконання. До тестування збережуваних процедур потрібно поставитися з великою відповідальністю.
Опис нормальної роботи збережуваних процедур.
Назва методу |
Значення параметрів |
Результат виконання |
dbo.AddGroup
dbo.AddUser
dbo.AddUserToGroup
dbo.DeleteGroup
dbo.DeleteUser
dbo.DeleteUserFromGroup
dbo.GetGroups
dbo.GetGroupsByUserId
dbo.GetRoleId
dbo.GetUsers
dbo.GetUsersByGroupId
dbo.GetUsersByRoleId
|
@GroupId: <ID групи> @Name: <назва групи>
@UserId: <ID користувача> @FullName: <ім’я користувача> @Login: <логін користувача> @Password: <пароль> @RoleId: <IDролікористувача>
@UserId: <IDкористувача> @GroupId: <IDгрупи>
@GroupId: <IDгрупи>
@UserId: <IDкористувача>
@UserId: <IDкористувача> @GroupId: <IDгрупи>
----------------
@UserId: <IDкористувача>
@Login: <логін користувача> @Password: <пароль>
----------------
@GroupId: <IDгрупи>
@RoleId: <IDролі користувача> |
Добавленнянової групи в таблицю dbo.Groupsбази.
Добавлення нового користувацького запису в таблицю dbo.Usersбази.
Добавлення заданого користувача до заданої групи шляшом додавання запису в таблицю dbo.UserGroups бази.
Видалення заданої групи з таблиці dbo.Groups бази.
Видалення заданого запису користувача з таблиці dbo.Users бази.
Видалення заданого користувача з заданої групи шляшом видалення запису з таблиці dbo.UserGroups бази.
Список всіх груп з таблиці dbo.Groups бази.
Список груп до яких входить заданий користувач з таблиці dbo.Groups бази.
RoleId відповідного користувача.
Список всіх користувачів з таблиці dbo.Users бази.
Список користувачів, що належать до певної групи з таблиці dbo.Users.
Список користувачів заданого типу |
Наступна критична область – це область перевірки внесених даних користувачем системи. Якщо користувачу дозволити вносити будь-які дані, це неодмінно призведе до несправної роботи системи. Це можуть бути не тільки перевірки на відповідність формату або на наявність від’ємних чисел, а й те, наприклад, скільки разів користувач натискає ту чи іншу кнопку, що може призвести до неочікуваного результату роботи і невірного виконання операцій. Основні перевірки валідності введених даних виконуются на верхньому рівні (рівні інтерфейсу), отже тестуватимется модуль інтерфейсу FmMain.
Остання критична область – це перевірка сумісності. Якщо клієнтська частина не сумісна з тією чи іншою операційною системою, або не сумісна з певними програмними продуктами, які встановлені на комп’ютері - користувачу має буди висвітлене повідомлення з поясненням проблеми несумісності і порадами, щодо її усунення.