Технологии контроля безопасности автоматизированных систем на основе структурного и поведенческого тестирования программного обеспечения

Тестирование программного обеспечения как средство выявления ошибок в работе программ. Исследование основных методов и принципы тестирования программных комплексов, применяемых в интересах оценивания и контроля безопасности автоматизированных систем.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 07.03.2019
Размер файла 45,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

3

Технологии контроля безопасности автоматизированных систем на основе структурного и поведенческого тестирования программного обеспечения

Миронов Сергей Владимирович

заместитель директора, Департамент информационных технологий в сфере управления государственными и муниципальными финансами и информационного обеспечения бюджетного процесса Министерства финансов Российской Федерации

Куликов Григорий Владимирович

кандидат технических наук

заместитель начальника центра, ОАО «НПО РусБИТех»

Аннотация

Предметом исследования являются основные методы и принципы тестирования программных комплексов, применяемые в интересах оценивания и контроля безопасности автоматизированных систем. В результате проведенных исследований приведена информация по способам выявления методами тестирования программного обеспечения наиболее распространенных угроз безопасности для подсистем: межсетевого экранирования; аудита; контроля доступа; контроля целостности; парольной и криптографической. При этом считали, что в изделии могут присутствовать следующие уязвимости: переполнение буфера, некорректная обработка форматных средств, гонки. Методы исследования включают методы теории программирования, теории надежности, программной инженерии, помехоустойчивого кодирования, информационной безопасности, системного анализа. Основным выводом проведенного исследования является то, что тестирование программного обеспечения является мощным средством для выявления как ошибок в работе программ, так и уязвимостей безопасности. Современные методы поведенческого тестирования позволяют выявлять уязвимости без исходных текстов программ и могут успешно применяться на российском рынке, для которого передача исходных текстов на тестирование задача почти невыполнимая.

Ключевые слова: структурное тестирование, программная инженерия, метод тестирования программы, подсистема безопасности, уязвимость программного обеспечения, поведенческое тестирование, тестирование программ, безопасность ифнормации, безопасность автоматизированной системы, угрозы безопасности программ

The subjects of the study are the basic methods and principles of testing software systems used in the interest of the safety evaluation and control of automated systems. The study provides recommendations on the methods of software testing for the most common threats to security subsystems such as firewall, audit; access control; integrity monitoring; password and encryption. The authors considered the possibility that the product could contain the following vulnerabilities: buffer overflow, incorrect handling of format means, race problems. The research methods include the methods of the theory of programming, theory of reliability, software engineering, error-correcting coding, information security, system analysis. The main conclusion of the study is that software testing is a powerful tool to detect both errors in the software and security vulnerabilities. Modern methods of behavioral testing allow to identify vulnerabilities without software source code and can be used successfully in the Russian market, where accessing the source code for testing purposes is almost impossible.

Keywords:

structural testing, software engineering, program testing method, Security Subsystem, software vulnerabilities, behavioral testing, testing programs, information security, safety of the automated system, threat security programs

безопасность тестирование ошибка программа

Введение

Увеличение сложности корпоративных автоматизированных систем, выявление новых способов реализации уязвимостей и стремительное развитие технологий, используемых нарушителями, определяет на сегодня одну из важнейших задач по защите информации - разработку и внедрение комплексного подхода к оценке и контролю безопасности автоматизированных систем [1-3].

Наиболее распространенными способами оценки и контроля безопасности автоматизированных систем являются: сертификация; аттестация; аудит; тестирование [4-6]. Несмотря на большие потенциальные возможности по выявлению угроз безопасности тестирование не получило широкого распространения в России из-за нескольких предпосылок:

1) Несовершенство нормативной базы:

1. отсутствие стандартов, декларирующих эффективные методы тестирования современных комплексов программ;

2. отсутствие документов, придающих тестированию обязательный характер, что, например, присутствует у сертификации и аттестации;

2) Высокая стоимость и трудоемкость проведения тестирования программного обеспечения;

3) Малое количество отечественных компаний, выполняющих независимое тестирование.

В статье рассмотрены основные методы и принципы тестирования программных комплексов. Кроме этого будет приведена информация по способам выявления методами тестирования наиболее распространенных угроз безопасности.

Причины использования средств тестирования программного обеспечения

Тестирование программ можно рассматривать как в качестве самостоятельного подхода к анализу безопасности, так и использование его методов как в рамках сертификации, аттестации или аудита систем [7, 8]. Существует ряд причин, когда необходимо использовать тестирование программного обеспечения:

1) предоставление разработчикам информации, необходимой для минимизации ошибок;

2) выявление ошибок в разработанном программном обеспечении;

3) оценка безопасности программного обеспечения;

4) предоставление необходимой информации для разработчика, по созданию проекта, который будет легко в дальнейшем тестировать;

5) попытка взлома программного обеспечения или проверка на уязвимости;

6) проверка соответствия программного продукта, заявленной документации.

Стратегии тестирования программного обеспечения

Существуют две основные стратегии тестирования программного обеспечения: стратегия поведенческого тестирования(которая также называется тестированием черного ящика или функциональным тестированием) и структурное тестирование (тестирование белого ящика). Также применяется гибридная стратегия поведения, которая является комбинацией вышесказанных стратегий.

Для проведения структурного тестирования необходимо наличие исходных текстов программ. Структурное тестирование предполагает составление программы тестирования на основании знаний о структуре и конфигурации объекта испытаний. Этот метод описан в стандарте ANSI/IEEE Std 1008-1987. Такой вид тестирования наиболее эффективен для выявления программных ошибок, однако, в тоже время, является самым трудоемким. Он используется в случае анализа модулей небольшого объема или отдельно взятых фрагментов кода, например, связанных с безопасностью изделия [9]. Метод структурного тестирования применяется в ходе проведения сертификационных испытаний программного обеспечения [10, 11].

Существуют инструментальные средства проведения структурного тестирования программного обеспечения, но, они, как правило, заточены на выполнение узких задач, например, выявление утечек памяти, определение участков кода, некорректно обрабатывающих массивы и переменные, а также средства анализа связности фрагментов кода и др. [10, 12]

В настоящее время распространена ситуация, когда разработчики не хотят предоставлять исходные тексты своих изделий, но в тоже время, хотят его протестировать. В данной ситуации возможно проведение только поведенческого тестирования. Потому остановимся на этом методе поподробнее.

Методы тестирования

Все методы тестирования можно разделить на две большие группы: это функциональные тесты и тесты на безопасность, надежность и производительность.

Функциональное тестирование имеет важное значение для разработчиков, т.к. это оно непосредственно влияет на качество программной продукции. Данное тестирование заключается в проверке соответствия функций изделия какой-либо документации, представленной разработчиком. В рамках функциональных проверок тестировщик выполняет все заявленные разработчиком возможности изделия. Как правило, этот вид тестирования выполняется с другими видами тестирования, например, нагрузочным или стрессовым тестированием. Названный вид тестирования описан стандартом ISO 09646-1-6:1991, регламентирующим проверку функциональных возможностей и поведения продукции относительно требований и рекомендаций ISO, а также заявлений и документации разработчиков о функциональных возможностей изделия. Этот вид тестирования обычно проводится самим разработчиком [13-16].

Тестирование на надежность и производительность заключается в создании стрессовых ситуаций для изделия и попыток заставить работать изделие в нештатном режиме.

Например, для изделия, обрабатывающего поток поступающих транзакций, создать ситуацию, при которой в единицу времени на него будут поступать тысячи транзакций, либо понижать пропускную способность сети и многое другое [17, 18].

Тестирование на безопасность

При проведении тестировании на безопасность изделия необходимо выделить все подсистемы безопасности изделия и проверить реализацию существующих уязвимостей. К числу подсистем безопасности, требующих тестирования, как правило, относят следующие подсистемы: межсетевого экранирования; аудита; контроля доступа; контроля целостности; парольную; криптографическую.

Считаем, что в изделии могут присутствовать следующие уязвимости: переполнение буфера, некорректная обработка форматных средств, гонки (эти уязвимости являются наиболее распространенными [17-26]).

Соответствие указанных подсистем безопасности и методов тестирования представлено в таблице 1.

Таблица 1 - Соответствие подсистем безопасности и методов тестирования

Подсистема безопасности

Методы и направления тестирования

Подсистема межсетевого экранирования

Тестирование на проникновение, проверка системы фильтрации сообщений, сканирование портов и уязвимостей, попытка обхода системы, подмена сетевых пакетов, DoS-атака

Подсистема аудита

Генерация тестовых действий и отслеживание отображения их результатов в журнале, проверка защищенности журнала аудита, осуществление попыток его модификации, подмена пользователей

Подсистема контроля доступа

Осуществление попыток несанкционированного доступа к объектам защиты, отслеживание их фиксации и попытка изменения политики разграничения доступа,

Подсистема контроля целостности

Осуществление модификации контролируемых файлов и отслеживание реакции изделия на эти действия, подмена хешей контролируемых файлов

Парольная подсистема

Подбор паролей и имен пользователей, попытка взлома хранилища паролей и осуществление операции восстановления паролей, подмена пользователей

Криптографическая подсистема

Перехват засекреченной информации и попытка ее вскрытия, подбор ключей к криптосистеме и проверка уязвимостей их реализации

Аутсорсинговое тестирование

Еще одним распространенным методом тестирования является «аутсорсинг». Этот вид подразумевает тестирование продукта независимыми компаниями: за рубежом созданы специальные тестовые агентства, наиболее часто применяющие тестирование безопасности, надежности и производительности.

Использование тестирования для выявления ошибок

1) Переполнение буфера

Переполнение буфера возникает из-за того, что данные и информация о потоке выполнения программы перемешаны, а также в низкоуровневых языках программирования разрешен прямой доступ к памяти. Пример возникновения переполнения буфера - запись программой данных в память, не принадлежащую выделенному буферу.

Результатами переполнения буфера может быть как крах программы, так получение противником контроля над положением или выполнение других программ с правами пользователя, запустившего программу.

Классический пример реализации переполнения буфера на языке С++:

#include <stdio.h>

void func1()

{

char buf[256];

gets(buf);

….

}

Способы структурного тестирования:

Обнаружить места переполнения буфера можно как легко, так и очень сложно. Прежде всего, необходимо с использованием метода сигнатурного тестирования выявить все участки программы, где используются функции по работе со строками. Затем проанализировать все возможные параметры, а также размеры используемых строк и их проверку. Кроме этого, необходимо отследить все вводимые пользователями данные как напрямую, так и через конфигурационные файлы и базы данных, начиная с точки ввода в программу и далее по всем функциям.

Кроме этого можно использовать средства обнаружения ошибок при работе с памятью

Способы поведенческого тестирования:

Наиболее эффективным методом является рандомизированное тестирование, которое заключается в передачи анализируемому объекту полуслучайных данных произвольного объема и отслеживания работы программы при обработки этих данных. В ходе исследования во все места запроса от пользователей данные вводятся полуслучайные данные произвольного размера. Это может быть, ввод имени пользователя, либо имени файлов. Файлы настроек приложения, доступные для пользователей, либо записи из баз данных.

Кроме этого можно использовать средства обнаружения ошибок при работе с памятью и применять существующие эксплойты.

Сравнение эффективности структурного и поведенческого тестирования:

Поведенческое тестирование для выявления данной ошибки просто реализуемо и в более короткие сроки уязвимости могут быть выявлены. Однако нет 100% вероятности выявления как в случае структурного тестирования.

2) Ошибки, связанные с форматной строкой

Такая ошибка является разновидностью переполнения буфера и заключается в отсутствии контроля вводимых от пользователя параметров.

Результатами могут быть: запись по произвольному адресу в памяти, обход защиты стека, исполнение произвольного кода и раскрытие информации.

Пример реализации ошибки:

Файл test.cpp

#include <stdio.h>

int main (int argc, char* argv[])

{

FILE *in;

if(argc > 1)

{

if ((in = fopen(argv[1], "rt")) == NULL)

{

printf("Cannot open input file %s.n", argv[1]);

return 1;

}

}

}

Вызов файла:

C:test.exe bad_file%x%x.txt

В результате на экране выедено:

Cannot open file bad_file234a078eab0.

Где, 234a07, 8eab0 - адреса из стека.

Способы структурного тестирования:

Данная ошибка очень легко выявляется на этапе анализа кода, достаточно отследить все операции с операндами командой строки на предмет выявления процедур проверок.

Способы поведенческого тестирования:

Наиболее эффективным методом также является рандомизированное тестирование. В ходе исследования при вызове программы в качестве параметров вызова передаются специальным образом сконфигурированные данные. Эти данные включают спецификаторы формата данных, длинные пути, применение существующих эксплойтов.

Сравнение эффективности структурного и поведенческого тестирования:

Ошибки, связанные с форматной строкой легко выявляются при использовании обоих методов.

3) Переполнение целых чисел

Переполнение возникает из-за того, что существуют операции, при выполнении которых компьютер дает не тот же результат, что на бумаге. К данным операциям чаще всего относят операции приведения типов как явных так и неявным приведением.

Результат: Переполнение целых чисел чаще всего вызывает переполнение буфера с последующим выполнением кода.

Пример реализации:

#include <stdio.h>

int main (int argc, char* argv[])

{

const long MAX_INPUT = 0x7fff;

short len;

if(argc > 1)

{

len = strlen(argv[1]);

if(len < MAX_INPUT)

{

//основной функционал

}

else

{

return 0;

}

}

}

Комментарий: В случае, если в качестве аргумента будет введена строка, длина которой больше 32К, то переменная len станет отрицательной, поэтому будет выполнен «основной функционал» с неверными входными данными.

Способы структурного тестирования:

Такая ошибка очень трудно выявляется на этапе анализа кода, необходимо отследить все операции с переменными, арифметические операции и приведения типов.

Способы поведенческого тестирования:

Такая ошибка также очень трудно выявляется. Можно использовать только рандомизированное тестирование. В ходе исследования при вызове программы в качестве параметров передаются строки символов, чтобы вызвать ошибку. Часто ошибки возникают, если длина строк составляет,: 127,128, 255, 32К, 64К-1, 64К. Применение существующих эксплойтов.

Сравнение эффективности структурного и поведенческого тестирования:

Ошибки, связанные с переполнением целых чисел сложно выявляются при использовании обоих методов.

4) Внедрение SQL-команд

Ошибка возникает в случае отсутствия проверки параметров, водимых пользователем, при создании SQL-запросов (их конкатенации).

В результате реализации уязвимости может быть скомпрометирована машина и осуществлено раскрытие секретных данных.

Пример реализации:

gets(ID);

CString sSQL = “SELECT money FROM zarpl WHERE id=” + ID;

….

Комментарий: пользователь может ввести любое значение идентификатора, либо вместо идентификатора ввести дополнительные операнды SQL-запроса, которые при конкатенации введенной строки со строкой из программы выведут недоступные ранее для пользователя данные.

Способы структурного тестирования:

Для выявления ошибки используются метод сигнатурного анализа поиска операций взаимодействия с базой данных. Определяются места формирования запросов и проверки вводимых данных.

Способы поведенческого тестирования:

Данная ошибка достаточно трудно выявляется. Можно использовать только рандомизированное тестирование. В ходе исследования при вызове программы в качестве параметров формирования запросов передаются частично некорректные данные.

Сравнение эффективности структурного и поведенческого тестирования:

Структурное тестирование эффективней поведенческого тестирования за счет наглядности процедур формирования запросов.

5) Гонки

Гонки возникают в случае существования двух и более программ, выполняемые в разных контекстах (процессах или потоках). Эти программы могут блокировать друг друга, а также изменять один и тот же объект.

В результате реализации этой уязвимости, может быть осуществлено блокирование программы, аварийный останов программы.

Способы структурного тестирования:

Метод поиска не эффективен без использования динамического тестирования.

Способы поведенческого тестирования:

Такая ошибка достаточно трудно выявляется. Можно использовать только тесты на быстрых многопроцессорных машинах. А также выявление коллизий в ходе выполнения программы на высокоскоростных машинах.

Сравнение эффективности структурного и поведенческого тестирования:

Структурное и поведенческое тестирование не очень эффективны при выявлении гонок, однако с некоторой вероятностью их можно выявить только при поведенческом тестировании.

Заключение

Как видно из приведенного анализа: тестирование программного обеспечения является мощным средством для выявления ошибок в работе программ, так и уязвимостей безопасности. За рубежом тестированию уделяется значительное внимание, эффективно функционирует специальная отрасль «Software Testing & Quality Assurance». Современные методы поведенческого тестирования позволяют выявлять уязвимости без исходных текстов программ и могут успешно применяться на российском рынке, для которого передача исходных текстов на тестирование задача почти невыполнимая.

Библиография

1.Марков А.С., Миронов С.В., Цирлов В.Л. Выявление уязвимостей программного обеспечения в процессе сертификации // Информационное противодействие угрозам терроризма. 2006. № 7. С. 177-186.

2.Котенко И.В., Саенко И.Б., Юсупов Р.М. Перспективные модели и методы защиты компьютерных сетей // Вестник Российской академии наук. 2013. Т. 83. № 5. С. 463.

3.Непомнящих А.В., Куликов Г.В., Соснин Ю.В., Нащёкин П.А. Методы оценивания защищенности информации в автоматизированных системах от несанкционированного доступа // Вопросы защиты информации. 2014. № 1 (104). С. 3-12.

4.Лакутин А. Аутсорсинг тестирования программного обеспечения. М.: КИС, 2002. 412 с.

5.Меньших В.В., Ковальчук А.А. Оценки уязвимости и опасности распространения угроз информационной безопасности в телекоммуникационных системах // Информационная безопасность регионов. 2013. № 2 (13). С. 17-22.

6.Майерс Г. Искусство тестирования программ. М.: Финансы и статистика, 1982. 176 с.

7.Нащёкин П.А., Непомнящих А.В., Соснин Ю.В., Куликов Г.В. Критерии и методы проверки выполнения требований по защищенности автоматизированной системы при изменении настроек или выделенных ресурсов средств защиты информации // Вопросы защиты информации. 2013. № 4 (102). С. 50-53.

8.Голосовский М.С. Информационно-логическая модель процесса разработки программного обеспечения // Программные системы и вычислительные методы. 2015. № 1. С. 59-68.

9.Богомолов А.В., Чуйков Д.С., Запорожский Ю.А. Средства обеспечения безопасности информации в современных автоматизированных системах // Информационные технологии. 2003. № 1. С. 2.

10.Бейзер Б. Тестирование черного ящика. Технологии функционального тестирования программного обеспечения систем. СПб.: Питер, 2004. 318 с.

11.Соснин Ю.В., Куликов Г.В., Непомнящих А.В. Комплекс математических моделей оптимизации конфигурации средств защиты информации от несанкционированного доступа // Программные системы и вычислительные методы. 2015. № 1. С. 32-44.

12.Ховард М., Ледбланк Д., Виега Д. 19 смертных грехов, угрожающих безопасности программ: Как недопустить типичных ошибок. М.: Издательский Дом ДМК-пресс, 2006. 288 с.

13.Марков А.С., Миронов С.В., Цирлов В.Л.. Выявление уязвимостей в программном коде // Открытые системы, №12, 2005. С.64-69.

14.Непомнящих А.В., Непомнящих Е.В., Лавров Д.Н. Приоритизация требований к программному обеспечению в условиях непрерывной интеграции // Прикладная информатика. 2012. № 1 (37). С. 20-27.

15.Бородакий Ю.В., Куликов Г.В., Непомнящих А.В. Методика оценивания функциональных возможностей систем обнаружения вторжений на основе ранжирования степени опасности атак // Известия ЮФУ. Технические науки. 2006. № 7 (62). С. 124-128.

16.Брунилин А.А., Куваев В.О., Саенко И.Б. Онтологический подход к организации информационного взаимодействия разнородных автоматизированных систем специального назначения // T-Comm: Телекоммуникации и транспорт. 2015. Т. 9. № 2. С. 69-73.

17.Марков А.С., Миронов С.В., Цирлов В.Л. Опыт тестирования сетевых сканеров уязвимостей // Информационное противодействие угрозам терроризма. 2005. № 5. С. 109-122.

18.Рудаков И.С., Рудаков С.В., Богомолов А.В. Методика идентификации вида закона распределения параметров при проведения контроля состояния сложных систем // Информационно-измерительные и управляющие системы. 2007. Т. 5. № 1. С. 66-72.

19.Грушо А.А., Грушо Н.А., Тимонина Е.Е. Искусственная недостоверность информации как средство ее защиты // Вестник РГГУ. Серия: Документоведение и архивоведение. Информатика. Защита информации и информационная безопасность. 2011. № 13 (75). С. 123-127.

20.Фёдоров М.В., Калинин К.М., Богомолов А.В., Стецюк А.Н. Математическая модель автоматизированного контроля выполнения мероприятий в органах военного управления // Информационно-измерительные и управляющие системы. 2011. Т. 9. № 5. С. 46-54.

21.Меньших В.В., Пастушкова Е.А. Генерация вариантов синтеза управляющих воздействий для принятия решений в системах критического применения с использованием функционально избыточного набора действий // Системы управления и информационные технологии. 2014. Т. 57. № 3. С. 15-19.

22.Голосовский М.С. Моделирование жизненного цикла специального программного обеспечения // Сборник трудов II всероссийской научно-практической конференции «Южно-Уральская молодежная школа по математическому моделированию». Челябинск, 2015. С. 55-62.

23.Козлов В.Е., Богомолов А.В., Рудаков С.В., Оленченко В.Т. Математическое обеспечение обработки рейтинговой информации в задачах экспертного оценивания // Мир измерений. 2012. № 9. С. 42-49.

24.Кукушкин Ю.А., Богомолов А.В., Ушаков И.Б. Математическое обеспечение оценивания состояния материальных систем // Информационные технологии. 2004. № 7 (приложение). 32 с.

25.Ермаков А.Д. Тестирование безопасности программного обеспечения с использованием верификаторов // Известия высших учебных заведений. Физика. 2013. Т. 56. № 9-2. С. 181-183.

26.Азымшин И.М., Чуканов В.О. Анализ безопасности программного обеспечения // Безопасность информационных технологий. 2014. № 1. С. 45-47

Размещено на Allbest.ru

...

Подобные документы

  • История развития и виды тестирования программного обеспечения. Инсталляционное, регрессионное, конфигурационное, интеграционное, локализационное, модульное тестирование. Методы сокращения трудоемкости модульного тестирования разрабатываемого приложения.

    курсовая работа [309,5 K], добавлен 16.12.2015

  • Изучение различных видов тестирования программного обеспечения. Выявление в программной системе скрытых дефектов до того, как она будет сдана заказчику. Тестирование методом черного ящика. Требования, предъявляемые к процессу тестирования больших систем.

    курсовая работа [3,0 M], добавлен 19.11.2009

  • Неразрешимость проблемы тестирования программного обеспечения. Виды и уровни тестирования. Стратегии восходящего и нисходящего тестирования. Методы "белого" и "черного" ящика. Автоматизированное и ручное тестирование. Разработка через тестирование.

    курсовая работа [112,2 K], добавлен 22.03.2015

  • Использование операционных систем. Контрольно-испытательные методы анализа безопасности программного обеспечения. Логико-аналитические методы контроля безопасности программ и оценка технологической безопасности программ на базе метода Нельсона.

    контрольная работа [22,6 K], добавлен 04.06.2012

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

  • Тестирование как составляющая часть процесса отладки программного обеспечения, его роль для обеспечения качества продукта. Обнаружение ошибок в программах, выявление причин их возникновения. Подходы к формулированию критериев полноты тестирования.

    курсовая работа [1,6 M], добавлен 20.12.2012

  • История возникновения тестирования программного обеспечения, основные цели и особенности его проведения. Виды и типы тестирования, уровни его автоматизации. Использование и исследование необходимых технологий. Полный цикл прогона всей системы мониторинга.

    дипломная работа [1,7 M], добавлен 03.05.2018

  • Комплексное функциональное и структурное тестирование программного продукта - граф-программа решения квадратного уравнения. Постановка задачи структурного тестирования маршрутов. Заключение о типе и причине ошибки, предложение по ее исправлению.

    курсовая работа [2,8 M], добавлен 05.01.2013

  • Проблема надежности программного обеспечения, ее показатели и факторы обеспечения. Методы контроля процесса разработки программ и документации, предупреждение ошибок. Этапы процесса отладки ПО, приемы структурного программирования и принцип модульности.

    презентация [379,5 K], добавлен 30.04.2014

  • Развитие аппаратных компьютерных средств - задача первых трех десятилетий компьютерной эры. Процесс тестирования как составляющая процесса обеспечения качества разработки ПО. Принципы и критерии, предъявляемые к тестированию программного обеспечения.

    курсовая работа [319,5 K], добавлен 25.05.2009

  • Унифицированный язык моделирования (UML) как стандартный инструмент для создания "чертежей" программного обеспечения. Визуализирование, специфицирование, конструирование и документирование артефактов программных систем. Правила языка, диаграммы классов.

    курсовая работа [613,9 K], добавлен 24.11.2010

  • Сущность тестирования и отладки, методика выявления ошибок в программном обеспечении. Практика отладки приложений в среде Delphi, системы управления версиями приложения и отслеживания ошибок. Применение точек остановки и модификация локальных переменных.

    курсовая работа [303,4 K], добавлен 19.01.2016

  • Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".

    дипломная работа [3,2 M], добавлен 11.09.2014

  • Тестирование как процесс выполнения программы с намерением найти ошибки. Шаги программы при тестировании, его оценка и значение. Роль информационных потоков тестирования, оценивания и отладки. Особенности структурного и функционального тестирования.

    презентация [574,8 K], добавлен 22.03.2014

  • Развитие информационных систем. Современный рынок финансово-экономического прикладного программного обеспечения. Преимущества и недостатки внедрения автоматизированных информационных систем. Методы проектирования автоматизированных информационных систем.

    дипломная работа [1,5 M], добавлен 22.11.2015

  • История образования ТОО "ABC Design". Разработка программного и информационного обеспечения компьютерных сетей, автоматизированных систем вычислительных комплексов и сервисов. Работа с CRM системой Task Manager и с панелью управления сайтов JOOMLA.

    отчет по практике [727,4 K], добавлен 13.07.2017

  • Понятие и специфика автоматизированных систем. Описание методики разработки программы для автоматизации. Ее тестирование и отладка. Внедрение АС в работу предприятия. Расчет экономического эффекта от разработки и реализации программного продукта.

    дипломная работа [1,4 M], добавлен 23.06.2015

  • Анализ современного состояния проблем тестирования высоконагруженных информационных систем. Построение математической модели определения высоконагруженных операций. Разработка программного обеспечения системы генерации сценариев нагрузочного тестирования.

    дипломная работа [4,4 M], добавлен 24.08.2017

  • Оснащенность предприятия системным программным обеспечением, используемым для организации производственного процесса. Проектирование, внедрение и эксплуатация системного и прикладного программного обеспечения. Тестирование и отладка программного продукта.

    отчет по практике [272,2 K], добавлен 29.12.2014

  • Разработка программного обеспечения для микропроцессорных систем МК51, интерфейсы в системах связи, основы асинхронной связи. Этапы решения задачи на ЭВМ, принципы тестирования программ и их отладка. Расчет затрат на разработку программного продукта.

    дипломная работа [270,6 K], добавлен 19.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.