Отчет по практике. Методические указания по организации практики направление от Университета на данное предприятие настоящий дневникотчет с заполненными разделами
Скачать 437.5 Kb.
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего образования «Сибирский государственный университет науки и технологий имени академика М.Ф. Решетнева» И ИТК (институт/факультет) ДНЕВНИК-ОТЧЕТ ПРОХОЖДЕНИЯ ПРАКТИКИ ОБУЧАЮЩИМСЯ ____________________________Кузнецов_____________________________ (фамилия) _________________________Юрий_Иванович___________________________ (имя, отчество) Направление _09.03.02 «Информационные системы и технологии в управлении» Группа _БИСЗ18-01/02 Вид практики _учебная Тип практики ознакомительная практика Сроки прохождения практики с 05.07.2021 по 17.07.2021 Оценка кафедры по результатам прохождения практики ______________________ __Моргунова Ольга Николаевна__ ________________ __17.07.2021___ ФИО руководителя практики от Университета подпись дата Красноярск 2021 г. ПАМЯТКА ОБУЧАЮЩЕМУСЯ При оформлении на практику обучающийся обязан иметь следующие документы: паспорт; трудовую книжку, за исключением случаев, когда трудовой договор заключается впервые; страховое свидетельство обязательного пенсионного страхования (СНИЛС); документы воинского учета – для военнообязанных и лиц, подлежащих призыву на военную службу; идентификационный номер налогоплательщика (ИНН); предписание и справку-форму для обучающихся, проходящих практику на режимных предприятиях; методические указания по организации практики; направление от Университета на данное предприятие; настоящий дневник-отчет с заполненными разделами. В период прохождения практики обучающийся обязан: прибыть на место прохождения практики в сроки, установленные календарным учебным графиком; выполнить индивидуальное задание, выданное руководителем практики; соблюдать требования охраны труда и пожарной безопасности, правил внутреннего трудового распорядка; вести дневник-отчет практики (для обучающихся по программам бакалавриата и специалитета), где отражать ход выполнения индивидуального задания, описывать выполненную работу, и оформить полученные результаты в соответствии с требованиями, установленными программой практики и методическими указаниями. По окончании практики обучающийся обязан: сдать на предприятие всю документацию, которой он пользовался в период практики; получить справку-форму о допуске на режимное предприятие для возврата её в 1-й отдел университета (для режимных предприятий); сдать пропуск на предприятие; своевременно оформить и сдать дневник-отчет по итогам практики руководителю от Университета. Обучающемуся необходимо знать: при подведении итогов работы обучающегося на практике принимается во внимание оценка результатов прохождения практики, данная руководителем практики от предприятия, качество дневника-отчета; неудовлетворительные результаты промежуточной аттестации по практике или непрохождение промежуточной аттестации по практике при отсутствии уважительных причин признаются академической задолженностью; обучающиеся, не ликвидировавшие в установленные сроки академическую задолженность, отчисляются из Университета приказом проректора по образовательной деятельности по представлению директора института (декана факультета, директора филиала) как не выполнившие обязанности по добросовестному освоению образовательной программы и выполнению учебного плана. Ознакомлен______________________________________________________ (подпись, дата) Наименование организации, в которой обучающийся проходит практику: СибГУ имени М.Ф, Решетнева, научно-исследовательская лаборатория ИИТК Руководителем практики от Университета назначен: Моргунова Ольга Николаевна (фамилия, имя, отчество) доцент кафедры ИВТ (должность на кафедре) Контактный телефон 89135657334 Руководителем практики от Организации назначен: Попов Алексей Михайлович (фамилия, имя, отчество) Директор ИИТК (должность в цехе, отделе) Контактный телефон 291-91-47 Дата фактического прибытия обучающегося в организацию 05.07.2021 М. П.1 Дата фактического убытия обучающегося из организации 17.07.2021 Вводный инструктаж провел2: «__»____________20__г. Руководитель службы охраны труда (должность) Дубовик Тамара Петровна (ФИО, подпись) Инструктаж на рабочем месте провел1: «__» ____________20__г. Директор ИИТК (должность) Попов А.М. (ФИО, подпись) Инструктаж на новом рабочем месте провел1: «__» ____________20__г. ______________________________________________________________________ (должность) ______________________________________________________________________ (ФИО, подпись) Индивидуальное задание на практику
Задание выдал: Руководитель практики от Университета Моргунова О.Н. 05.07.2021 (Ф.И.О., подпись, дата) Задание согласовал: Руководитель практики от Организации Попов А.М. 05.07.2021 (Ф.И.О., подпись, дата) Рабочий график проведения практики
Руководитель практики от Организации Попов А.М. 05.07.2021 (Ф.И.О., подпись, дата) Отчет о прохождении учебная практики3 (вид практики) Содержание отчета Введение…………………………………………………………………………… Индивидуальное задание…………………………………………………………. Глава 1…………………………………………………………………………....... Глава 2…………………………………………………………………………....... Заключение………………………………………………………………………… Библиографический список………………………………………………………. ВВЕДЕНИЕ Учебная практика охватывает круг вопросов, связанных с разработкой программного обеспечения: с анализом требований, проектированием архитектуры программы, проектированием модулей, реализацией проекта в исходных кодах, тестировании программ. Важное внимание уделяется самостоятельному выбору студентом предметной области, умению самостоятельно проводить сбор, анализ научно-технической информации, изучать отечественный и зарубежный опыт в данной предметной области. Цель прохождения практики – закрепление теоретических знаний в области информационных технологий, полученных за время обучения, и развитие практических навыков в создании компьютерных программ. Задачами практики являются: – изучение состава, структуры, принципов реализации и функционирования информационных технологий, используемых при создании информационных систем; – изучение базовых и прикладных информационных технологий; – изучение инструментальных средств информационных технологий; – изучение основных этапов создания программного продукта; – формирование у студентов навыков ведения самостоятельной работы с технической документацией. ИНДИВИДУЛЬНОЕ ЗАДАНИЕ Для выполнения индивидуального задания по учебной практике в качестве объекта тестирования выбрана лабораторная работа по дисциплине «Языки программирования». Лабораторная работа представляет из себя программный продукт, реализованный на языке программирования С++, позволяющий совершать операции конъюнкции, дизъюнкции и отрицания элементов массивов. Пользователь может ввести количество элементов массива. Массив заполняется случайными числами от 0 до 1. Затем пользователь может выбрать операцию. Программа выводит результат вычисления операции, а также подсчитывает количество нулей и единиц в заполненных массивах. Цель практики – получить навыки тестирования программ на основе различных стратегий и методов, в процессе тестирования использовать знания и навыки, полученные в 1– 4 семестрах. Задачи: 1) Изучить литературу по тестированию программ. 2) Выбрать в качестве объекта тестирования программу. 3) Ознакомиться со стратегией тестирования «белый ящик». Выбрать функции для тестирования, выбрать методику тестирования, описать методику тестирования, разработать тестовую программу для тестирования функций, выполнить тестирование функций. 4) Ознакомиться со стратегией тестирования «черный ящик». Выбрать модули для тестирования, описать методику тестирования, выполнить тестирование модулей. 5) Подвести итог тестирования. Представить процесс тестирования в виде таблицы, в которой необходимо отразить: вводимые данные или выполняемые действия пользователя, реакцию программы, оценку правильности реакции программы. ГЛАВА 1 Тестирование стратегией «белый ящик» предполагает, что внутренняя структура программы известна. Проверяющий выбирает входные значения, основываясь на знании кода, который будет их обрабатывать. Точно так же известно, каким должен быть результат этой обработки. Знание всех особенностей тестируемой программы и ее реализации – обязательны для этой техники. Тестирование белого ящика – углубление во внутреннее устройство системы, за пределы ее внешних интерфейсов. В качестве тестирования методом «белого ящика» выбран метод покрытия условий. Метод покрытия условий похож на метод покрытия решений. Данный метод направлен на проверку точности истинных или ложных результатов каждого логического выражения. Этот метод включает в себя тесты, которые проверяют выражения независимо друг от друга. Результаты этих проверок аналогичны тем, что получают при применении метода покрытия решений, за исключением того, что метод покрытия решений более чувствителен к управляющей логике программы. Рассмотрим функцию SetValues (Листинг 1), которая заполняет массив случайными числами в диапазоне от 0 до 1. Листинг 1. Функция SetValues void SetValues(int k) { delete[]mas; G = k; mas = new bool[G]; for (int i = 0; i < G; i++) mas[i] = rand() % 2; return; Разработана программа, тестирующая функцию SetValues (Листинг 2). Результат работы программы представлен на рисунке 1. Листинг 2. Программа, тестирующая функцию SetValues #include using namespace std; #include #include int G; bool *mas; bool Test_SetValues(int k) { delete[]mas; G = k; mas = new bool[G]; for (int i = 0; i < G; i++) { mas[i] = rand() % 2; cout << mas[i] << ' '; } cout << endl; int s = 0; for (int i = 0; i < k - 1; i++) { if ((mas[i] <= 1) && (mas[i] >= 0)) s++; } if (s == k - 1) return true; else return false; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int k; cout << "Введите количество элементов массива "; cin >> k; int *mas = new int[k]; bool test1, test2; test1 = Test_SetValues(k); test2 = Test_SetValues(k); if (test1 == true) cout << "Массив заполнен верно элементами в диапазоне от 0 до 1!" << endl; if (test2 == false) cout << "Массив заполнен неверно элементами в диапазоне от 0 до 1!" << endl; system("pause"); return 0; } Рисунок 1. Результат работы программы, тестирующей функцию SetValues Проанализировав полученный результат, можно сказать, что функция SetValues работает корректно. Далее рассмотрим функцию operator & (Листинг 3), которая выполняет операцию конъюнкции элементов массивов. Листинг 3. Функция operator & TBoolVector operator &(TBoolVector &_b) { TBoolVector c; c.SetValues(G); for (int i = 0; i < G; i++) c.mas[i] = mas[i] && _b.mas[i]; return c; } Разработана программа, тестирующая функцию operator & (Листинг 4). Результат работы программы представлен на рисунке 2. Листинг 4. Программа, тестирующая функцию operator & #ifndef HEADER_H #define HEADER_H #include using namespace std; class TBoolVector { int G; bool *mas; public: TBoolVector() : G(0), mas(0) {} bool SetValues(int k) { delete[]mas; G = k; mas = new bool[G]; for (int i = 0; i < G; i++) { mas[i] = rand() % 2; cout << mas[i] << ' '; } cout << endl; return 0; } TBoolVector operator &(TBoolVector &_b) { TBoolVector c; c.SetValues(G); for (int i = 0; i < G; i++) c.mas[i] = mas[i] && _b.mas[i]; return c; } friend std::ostream &operator <<(std::ostream &_out, const TBoolVector &_t) { for (int i = 0; i < _t.G; i++) _out << _t.mas[i] << ' '; return _out; } }; #endif #include using namespace std; #include "Header.h" #include bool Test1_operator(int *mas, int k) { int s = 0; bool a = 1; bool b = 0; bool c = a && b; for (int i = 0; i < k; i++) { if (c == 0) s++; } if (s == k) return true; else return false; } bool Test2_operator(int *mas, int k) { int s = 0; bool a = 0; bool b = 0; bool c = a && b; for (int i = 0; i < k; i++) { if (c == 0) s++; } if (s == k) return true; else return false; } bool Test3_operator(int *mas, int k) { int s = 0; bool a = 1; bool b = 1; bool c = a && b; for (int i = 0; i < k; i++) { if (c == 1) s++; } if (s == k) return true; else return false; } void Out_mas(TBoolVector c, int k) { cout << "Результат операции конъюнкции: \n"; cout << c << endl; cout << endl; return; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int k; cout << "Введите количество элементов массива "; cin >> k; TBoolVector a, b; int *mas = new int[k]; a.SetValues(k); b.SetValues(k); TBoolVector c = a & b; cout << "Массив А: "; cout << a << endl; cout << "Массив В: "; cout << b << endl; bool test1, test2, test3; Out_mas(c, k); test1 = Test1_operator(mas, k); test2 = Test2_operator(mas, k); test3 = Test3_operator(mas, k); if ((test1 == true)&&(test2 == true)&&(test3 == true)) cout << "Операция конъюнкции выполняется верно!" << endl; system("pause"); return 0; } Рисунок 2. Результат работы программы, тестирующей функцию operator & Проанализировав полученный результат, можно сказать, что функция operator & работает корректно. Далее рассмотрим функцию Kol_0 (Листинг 5), которая подсчитывает количество нулей в массиве. Листинг 5. Функция Kol_0 int Kol_0() { int k = 0; for (int i = 0; i < G; i++) if (!mas[i]) k++; return k; } Разработана программа, тестирующая функцию Kol_0 (Листинг 6). Результат работы программы представлен на рисунке 3. Листинг 6. Программа, тестирующая функцию Kol_0 #ifndef HEADER_H #define HEADER_H #include using namespace std; class TBoolVector { int G; bool *mas; public: TBoolVector() : G(0), mas(0) {} bool SetValues(int k) { delete[]mas; G = k; mas = new bool[G]; for (int i = 0; i < G; i++) { mas[i] = rand() % 2; cout << mas[i] << ' '; } cout << endl; return 0; } TBoolVector operator &(TBoolVector &_b) { TBoolVector c; c.SetValues(G); for (int i = 0; i < G; i++) c.mas[i] = mas[i] && _b.mas[i]; return c; } int Kol_0() { int k = 0; for (int i = 0; i < G; i++) if (!mas[i]) k++; return k; } friend std::ostream &operator <<(std::ostream &_out, const TBoolVector &_t) { for (int i = 0; i < _t.G; i++) _out << _t.mas[i] << ' '; return _out; } }; #endif #include using namespace std; #include "Header.h" #include int G; bool *mas; bool Test_Kol(int k) { delete[]mas; G = k; mas = new bool[G]; for (int i = 0; i < G; i++) { mas[i] = rand() % 2; int a = 0; int b = 0; if (mas[i] == 0) a++; else if (mas[i] == 1) b++; if (a = G - b) return true; else return false; } } void Out_mas(TBoolVector c, int k) { cout << "Результат операции конъюнкции: \n"; cout << c << endl; cout << endl; return; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int k; cout << "Введите количество элементов массива "; cin >> k; TBoolVector a, b; int *mas = new int[k]; a.SetValues(k); b.SetValues(k); TBoolVector c = a & b; cout << "Массив А: "; cout << a << endl; cout << "Массив В: "; cout << b << endl; bool test; Out_mas(c, k); cout << "Количество нулей в массиве А:"; cout << a.Kol_0() << endl; cout << "Количество нулей в массиве В:"; cout << b.Kol_0() << endl; test = Test_operator(k); if (test == true) cout << "Количество нулей в массивах подсчитано правильно!" << endl; system("pause"); return 0; } Рисунок 3. Результат работы программы, тестирующей функцию Kol_0 Проанализировав полученный результат, можно сказать, что функция Kol_0 работает корректно. ГЛАВА 2 Тестирование стратегией «чёрного ящика» или поведенческое тестирование – стратегия (метод) тестирования функционального поведения объекта (программы, системы) с точки зрения внешнего мира, при котором не используется знание о внутреннем устройстве тестируемого объекта. Под стратегией понимаются систематические методы отбора и создания тестов для тестового набора. Стратегия поведенческого теста исходит из технических требований и их спецификаций. В этом методе программа рассматривается как «чёрный ящик». Целью тестирования ставится выяснение обстоятельств, в которых поведение программы не соответствует спецификации. Для обнаружения всех ошибок в программе необходимо выполнить исчерпывающее тестирование, то есть тестирование на всевозможных наборах данных. Для большинства программ такое невозможно, поэтому применяют разумное тестирование, при котором тестирование программы ограничивается небольшим подмножеством всевозможных наборов данных. При этом необходимо выбирать наиболее подходящие подмножества, подмножества с наивысшей вероятностью обнаружения ошибок. В качестве тестирования методом «черного ящика» выбраны способ «предположение об ошибке» и «анализ граничных значений». Рассмотрим модули вычисления операций конъюнкции и дизъюнкции. Основная идея предположения об ошибке заключается в том, чтобы перечислить в некотором списке возможные ошибки или ситуации, в которых они могут появиться, а затем на основе этого списка написать тесты. Анализ граничных значений включает в себя определение границ входных значений и выбор в качестве тестовых данных значений, находящихся на границах, внутри и вне границ (числа, вводимые в массив должны быть целочисленными). Результаты тестирования представлены в таблице 1.1. Таблица 1.1 – Тестирование методом «черного ящика»
При проведении тестирования, когда количество элементов массива – отрицательное число или нечисловой символ, программа выдавала ошибку, представленную на рисунке 4. Рисунок 4. Количество элементов массива – отрицательное число, нечисловой символ При проведении тестирования, когда количество элементов массива равно нулю, программа работала с пустым массивом. Работа программы представлена на рисунке 5. Рисунок 5. Количество элементов массива равно нулю При проведении тестирования, когда количество элементов равно одному, программа работает с одним элементом массива, как показано на рисунке 6. Рисунок 6. Количество элементов массива равно одному При проведении тестирования, когда количество элементов массива равно 1665555555, программа выдавала ошибку, представленную на рисунке 7. Рисунок 7. Количество элементов массива равно 1665555555 Проанализировав полученный результат, можно сказать, что модули вычисления операций поразрядной конъюнкции и дизъюнкции элементов массивов работают корректно. ЗАКЛЮЧЕНИЕ В результате выполнения задания по учебной практике закреплены теоретические знания в области информационных технологий, полученные за время обучения, и развиты практических навыки в тестировании программ. Решены следующие задачи: 1) Изучена литература по тестированию программ. 2) В качестве объекта тестирования выбрана одна из лабораторных работ по дисциплине «Языки программирования», реализованная на языке программирования С++, выполняющая операции поразрядной конъюнкции, дизъюнкции и отрицания. 3) Изучена стратегия тестирования «белый ящик». Выбрана методика тестирования – метод покрытия условий. Для тестирования выбраны функции заполнения массива случайными числами, операция конъюнкции и подсчет количества нулей в массивах. 4) Изучена стратегия тестирования «черный ящик». Выбраны модули вычисления операций конъюнкции и дизъюнкции. Для тестирования модулей выбран метод анализ граничных значений и метод предположения об ошибке. 5) Подведён итог тестирования. С помощью данных стратегий протестированы функции и модули одной из лабораторных работ по учебной дисциплине «Языки программирования». Лабораторная работа представляет из себя программный продукт, реализованный на языке программирования С++, который выполняет вычисления операций конъюнкции, дизъюнкции и отрицания. БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1) Майерс, Г. Искусство тестирования программ, 3-е изд. [Текст] / Г. Майерс, Т. Баджетт, К. Сандлер . – М. : Вильямс, 2012. – 272 с. 2) Орлов, С.А. Технологии разработки программного обеспечения: учебник для вузов [Текст] / С.А. Орлов, Б.Я. Цилькер. – 4-е изд. – СПб. : Питер, 2012. – 608 с. 3) Метод «белого ящика». Тестирование и отладка программного обеспечения – курсовая работа [Электронный ресурс]. – URL: http://prog.bobrodobro.ru/107739 (дата обращения 15.07.2020). Отзыв руководителя от Организации о прохождении практики обучающимся 1. Полученные компетенции в соответствии с программой практики 1. Умение применять методы и средства познания, обучения и самоконтроля для интеллектуального развития, повышения культурного уровня, профессиональной компетенции, сохранения своего здоровья, нравственного и физического самосовершенствования. 2. Умение критически оценивать свои достоинства и недостатки, наметить пути и выбрать средства развития достоинств и устранения недостатков 3. Способность использовать современные компьютерные технологии поиска информации для решения поставленной задачи, критического анализа этой информации и обоснования принятых идей и подходов к решению. 4. Способность проводить сбор, анализ научно-технической информации, отечественного и зарубежного опыта по тематике исследования. 5. Способность оформлять полученные рабочие результаты в виде презентаций, научно-технических отчетов, статей и докладов на научно-технических конференциях Характеристика работы обучающегося В ходе прохождения учебной ознакомительной практики студент Кузнецов Ю.И. показал умение применять и использовать знания, полученные в ВУЗе, для решения поставленных перед ним практических задач: – изучены справочно-информационные издания по профилю задания; – выполнено индивидуальное задание. В ходе выполнения практического задания удалось закрепить знания по программированию, изучены методы тестирования программ, разработаны тестовые программы для выполнения тестирования. Дополнительно получены следующие компетенции: – способность к самоорганизации и самообразованию и способность осуществлять поиск, хранение, обработку и анализ информации из различных источников и баз данных, представлять ее в требуемом формате с использованием информационных, компьютерных и сетевых технологий. Работа практиканта заслуживает оценки «отлично». Замечания руководителя практики о прохождении практики обучающимся
Руководитель практики от Организации _ Директор ИТТК __ _______________ Попов А.М. должность подпись расшифровка подписи М. П. 1 Если практика проводилась в подразделениях Университета, то ставится печать дирекции/деканата 2 Инструктаж обучающихся по ознакомлению с требованиями охраны труда, техники безопасности, пожарной безопасности, а также правилами внутреннего трудового распорядка Организации. 3 Объем и содержание отчета определяется рабочей программой практики и методическими указаниями. |