ПЗ к интернет-магазину. поянительная записка к курсовой работе интернет-магазин. Ежегодно количество интернет
Скачать 1.32 Mb.
|
3.3 Разработка функции вывода каждого товараОсновной задачей данной функции является отображение на странице каталога всех продаваемых товаров: $num = 6; // Здесь указываем сколько хотим выводить товаров. $page = (int)$_GET['page']; $count = mysql_query("SELECT COUNT(*) FROM table_products WHERE visible = '1'",$link); $temp = mysql_fetch_array($count); If ($temp[0] > 0) { $tempcount = $temp[0]; // Находим общее число страниц $total = (($tempcount - 1) / $num) + 1; $total = intval($total); $page = intval($page); if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; // Вычисляем начиная с какого номера // следует выводить товары $start = $page * $num - $num; $qury_start_num = " LIMIT $start, $num"; } $result = mysql_query("SELECT * FROM table_products WHERE visible='1' ORDER BY $sorting $qury_start_num ",$link); if (mysql_num_rows($result) > 0) { $row = mysql_fetch_array($result); do { if ($row["image"] != "" && file_exists("./uploads_images/".$row["image"])) { $img_path = './uploads_images/'.$row["image"]; $max_width = 200; $max_height = 200; list($width, $height) = getimagesize($img_path); $ratioh = $max_height/$height; $ratiow = $max_width/$width; $ratio = min($ratioh, $ratiow); $width = intval($ratio*$width); $height = intval($ratio*$height); }else { $img_path = "images/no-image.png"; $width = 110; $height = 200; } // Количество отзывов $query_reviews = mysql_query("SELECT * FROM table_reviews WHERE products_id = '{$row["products_id"]}' AND moderat='1'",$link); $count_reviews = mysql_num_rows($query_reviews); echo ' '.$row["title"].'
'.group_numerals($row["price"]).' руб. '.$row["mini_features"].' '; } while ($row = mysql_fetch_array($result)); } ?>
$result = mysql_query("SELECT * FROM table_products WHERE visible='1' ORDER BY $sorting $qury_start_num",$link); if (mysql_num_rows($result) > 0) { $row = mysql_fetch_array($result); do { if ($row["image"] != "" && file_exists("./uploads_images/".$row["image"])) { $img_path = './uploads_images/'.$row["image"]; $max_width = 150; $max_height = 150; list($width, $height) = getimagesize($img_path); $ratioh = $max_height/$height; $ratiow = $max_width/$width; $ratio = min($ratioh, $ratiow); $width = intval($ratio*$width); $height = intval($ratio*$height); }else { $img_path = "images/noimages80x70.png"; $width = 80; $height = 70; } // Количество отзывов $query_reviews = mysql_query("SELECT * FROM table_reviews WHERE products_id = '{$row["products_id"]}' AND moderat='1'",$link); $count_reviews = mysql_num_rows($query_reviews); echo ' '; } while ($row = mysql_fetch_array($result)); } echo ' if ($page != 1){ $pstr_prev = ' if ($page != $total) $pstr_next = ' ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ 4.1 Этапы отладки Отладка программы является достаточно сложным процессом обнаружения и исправления ошибок, который обычно требует последовательного выполнения четырех этапов: выявление ошибки; локализация ошибки в тексте программы; установление причины ошибки; исправление ошибки. В конкретных ситуациях перечисленные этапы могут пересекаться, некоторых из них может и не быть, однако в общем случае дело обстоит именно так. 4.2 Типы ошибок Тестирование программного обеспечения – процесс исследования, испытания программного обеспечения (ПО) с целью получения информации о качестве продукта. Так как разрабатываемый программный продукт является интернет-магазином, то особое внимание было уделено функции продаже, поставкам, создание отчетов, а также вывода товаров на экран. Найденные ошибки устранялись, и тестирование продолжалось до тех пор, пока работа приложения не была признана удовлетворительной. Разработка любой программы предполагает наличие в исходном тексте ошибок и борьбу с ними. Всё практически неисчислимое множество возможных ошибок обычно подразделяют на две группы: синтаксические ошибки; смысловые (логические) ошибки. Синтаксические ошибки – это самые простые ошибки, которые легко устраняются уже на этапе компиляции. Причина их одна, неправильная запись служебных слов, операторов. Смысловые (логические) ошибки – самые сложные и трудноуловимые. Они проявляются в том, что программа ведет себя не так, как предполагалось. Последствия смысловых ошибок могут быть самыми разными: неправильное содержимое окна, невыполнение или неверное выполнение команд пользователя, неправильное содержимое таблиц и многое другое. На борьбу со смысловыми ошибками уходит почти все время отладки. 4.3 Функциональное тестирование Тестирование программы включает в себя проверку её работы в различной среде и разных условиях с целью выявления ошибок и корректность её работы. Тест – это последовательность входных данных и соответствующая им набор эталонных результатов, которые должны быть получены при верном функционировании программы. При проведении тестирования были испытаны все функции приложения. В каждом окне были испытаны все события, которые были задуманы при разработке web-приложения. Таблица 4.1 – Тест-кейс
Окончание таблицы 4.1
4.4 Полное тестирование Основная цель тестирования – выявление всех отклонений результатов функционирования реальной программы от заданных эталонных значений. Задача состоит в обнаружении максимального числа ошибок, в качестве которых принимается любое отклонение от эталонов. После локализации и устранения, обнаруженных ошибок применяется контрольное тестирование, задача которого состоит в подтверждении правильности выполнения корректировки программы. В течение срока разработки программного продукта выполнялись ежедневные тесты, приложение тестировалось, если же возникали какие-либо ошибки – они исправлялись, работа над проектом продолжалась дальше и так до тех пор, пока версия данного программного продукта не смогла считаться завершённой. По завершению работы можно сделать следующий вывод: успешно запускается программный продукт; функции всех кнопок выполняются правильно (открываются другие окна, добавляется информация в базу и другое); интерфейс соответствует нормам, не имеет раздражающих, мелких или огромных букв; не содержится никаких устойчивых системных, исключающих возможность правильной работы приложения, блокирующих ошибок; все дымовые тесты проходят. Регрессионное тестирование (regressiontesting) – тестирование ПО, при котором проводится проверка ранее найденных ошибок, а также проверка основной функциональности. Проводится, как правило, на каждой новой версии программного продукта. Регрессивное тестирование является наиболее важной фазой тестирования непосредственно перед окончанием работ над продуктом, так как непосредственно перед релизом продукта крайне необходимо проверить не только основную функциональность, но и то, что ни одна из ранее найденных ошибок не повторяется в финальной версии. Являясь неотъемлемой частью функционального тестирования, регрессионное тестирование позволяет гарантировать, что изменения, связанные с устранением дефектов, не оказали негативного воздействия на остальные функциональные области приложения. Регрессия багов. При тестировании программного продукта или отдельных её компонентов и свойств возникали ошибки, которые впоследствии исправлялись. Многие ошибки исправлялись не с первого раза, но благодаря тестам все ошибки были исправлены окончательно. Регрессия старых багов. При проектировании программного продукта возникало множество ошибок, которые исправлялись, но с исправлением новых ошибок, старые иногда возвращались. Чем это было вызвано, выявлено. Ошибки устранены. Тестирование пройдено. Регрессия побочного эффекта. При добавлении и выборе данных случалось такое, что эти данные как нужно не отображались из-за указанного неверное типа или идентификатора. Ошибки выявлены, исправлены. Тестирование пройдено успешно. Тестирование стабильности (stability/endurance/soaktesting) – тестирование ПО, при котором проверяется работоспособность ПО при длительном тестировании со средним уровнем нагрузки. Все компоненты соединены, ошибок не возникало, тестирование пройдено успешно. Имели место следующие тесты: Работа способности авторизации: открытие приложение; авторизуемся; ввод данных в поля; нажимаем кнопку вход. Вывод: пользователь успешно вошел в приложение. Аналогичные тесты были проведены для остальных форм. Проверка добавления категории: нажимаем на кнопку «Добавить»; были введены данные и нажата кнопка «Добавить»; Вывод: данные были успешно добавлены в таблицу. Проверка кнопки «удалить»: нажимаем кнопку «удалить» ; Вывод: данные которые были выбраны, успешно удалены. Цель проведения испытаний состояла в том, чтобы рассмотреть все возможные варианты работы программы, протестировать ее в нормальных, исключительных и экстремальных условиях, выявить недостатки и устранить их, если таковые имели место. Тестирование программы проводилась на протяжении всего времени разработки, и после окончания работы над программой. В процессе тестирования готового программного средства явных ошибок обнаружено не было. Все ошибки и недочеты были исправлены в процессе разработки программы. Также с программной точки зрения была предусмотрена и исключена вероятность возникновения всевозможных ошибок при работе пользователя с данным программным средством. |