Предмет:
Тип роботи:
Курсова робота
К-сть сторінок:
44
Мова:
Українська
з обмеженнями по функціональності або часу роботи) для деякої більшої групи осіб з тим, щоб переконатися, що продукт містить достатньо мало помилок. Іноді бета -тестування виконується для того, щоб отримати зворотній зв'язок про продукт від його майбутніх користувачів.
Тестування «білої скриньки»: перевіряється коректність побудови всіх елементів програми і правильність їх взаємодії один з одним. Аналізуються керуючі зв'язки елементів або інформаційні зв'язки. Тестування за принципом «білого ящика» характеризується ступенем, в якому тести виконують або покривають логіку (вихідний текст) програми.
Тестування «чорної скриньки»: При тестуванні «чорної скриньки» розглядаються системні характеристики програм, ігнорується їх внутрішня логічна структура. Ці тести демонструють:
як виконуються функції програми;
як приймаються вихідні дані;
як виробляються результати;
як зберігається цілісність зовнішньої інформації.
4.2 Інструкція тестування програми
Для повного тестування розробленого програмного продукту потрібно перевірити всі варіанти використання. Варіанти використання (Use Cases) це – опис послідовності дій, які може здійснювати система у відповідь на зовнішні дії користувачів або інших програмних систем. Варіанти використання відображають функціональність системи з точки зору здобуття значимого результату для користувача.
Призапускупрограми користувачемповинно завантажитись головне вікно програмного додатку (рис. 2. 2).
При натисненні кнопки «Обновити» програма повинна обновити всі дані (рис. 4. 1).
Рисунок 4. 1 – Обновлення програми
Клацнувши мишкою по значку + або по певній категорії програма повинна вивести список встановлених на комп'ютері пристроїв даного типу (рис. 4. 2).
Рисунок 4.2 – Відкрита категорія «DVD»
Клацнувши один раз мишкою на пристрій програма повинна вивести більш детальну інформацію про нього (рис. 4. 3).
Рисунок 4. 4 – Більш детальна інформація про пристрій
При проведенні описаних тестувань було перевірено, що програма функціонує правильно.
Висновки
В курсовій роботі було розроблено програму менеджер пристроїв, для перерахування встановлених пристроїв. Реалізовано виведення пристроїв у дереві. Програму призначено для перегляду пристроїв та інформації про них.
Програмний додаток був розроблений на мові С++, яка є мовою високого рівня і дозволяє швидко і ефективно створювати програми, підтримує роботу на низькому рівні з пам'яттю, адресами, портами, надає можливість створювати узагальнені алгоритмів для різних типів даних, їх спеціалізацію, і обчислення на етапі компіляції, з використанням шаблонів.
Вікно програми має стандартних для Windows інтерфейс типу SDI, який складається з одного діалогового вікна Т подібної структури з усіма необхідними елементами керування. У його верхній частині знаходиться класичне меню: Файл, Інформація. У списку під назвою комп'ютера можна побачити всі категорії встановленого обладнання. По кожній категорії можна отримати список встановлених на комп'ютері пристроїв даного типу. Кількість необхідних для повноцінної роботи програми полів та кнопок зведено до мінімуму.
За допомогою блок-схема було описано основні функції і алгоритми роботи програми.
Для тестування розробленого програмного продукту було використано варіанти використання (Use Cases) – опис послідовності дій, які може здійснювати система у відповідь на зовнішні дії користувачів або інших програмних систем.
ПЕРЕЛІК ПОСИЛАНЬ
http://ru.wikipedia.org/wiki/Аппаратное_обеспечение
Страуструп “Программирование: принципы и практика использования C++”. Диалектика-Вильямс, 2010 г., 1248 стр.
Дженифер Тидвелл. Разработка пользовательских интерфейсов. – Издательство: Питер, 2008. – 487с
Седжвик “Алгоритмы на С++”. Вильямс, 2011 г., 1026 стр.
ДОДАТКИ
ДОДАТОК А - ЛІСТИНГ ПРОГРАМИ DevMgr.cpp
#include "devmgr.h"
HINSTANCE _hInst = 0L;
HWND _hDlg = 0L;
//
BOOL EnablePrivilege(LPCTSTR PrviName)
{
HANDLE hToken = 0L;
TOKEN_PRIVILEGES Newtp;
BOOL bRtn = FALSE;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken);
if (LookupPrivilegeValue(NULL,PrviName, &Newtp.Privileges[0].Luid))
{
Newtp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
Newtp.PrivilegeCount = 1;
if (AdjustTokenPrivileges(hToken, FALSE, &Newtp, sizeof(Newtp), NULL, NULL))
bRtn = TRUE;
};
CloseHandle(hToken);
return bRtn;
};
char OpenINFFile(const char bType, char *pszName)
{
char szFile[MAX_PATH] = {0};
char szTitle[64] = {0L};
OPENFILENAME openFile = {0L};
openFile.lStructSize = sizeof(OPENFILENAME);
openFile.hwndOwner = _hDlg;
openFile.hInstance = _hInst;
if (bType)
openFile.lpstrFilter = "INF File(*.inf)\0*.inf\0";
else
openFile.lpstrFilter = "System File(*.sys)\0*.sys\0";
openFile.lpstrFile = szFile;
openFile.lpstrTitle = szTitle;
openFile.nMaxFileTitle = 64;
openFile.nMaxFile