Суэта рассказывает у доски. /facepalm
Правила формирования структуры
1. Структура программного изделия и правила оформления описания каждого модуля должны быть унифицированы.
2. Каждый модуль должен характеризоваться функциональной законченностью и независимостью в оформлении от модулей, которые его используют и которые его вызывают.
3. Структура программного изделия должна быть представлена в виде совокупности небольших программных модулей, связанных иерархическим образов, что дает возможность полностью и относительно просто уяснить функцию правила работы отдельных частей программного изделия.
4. Созданные на этапе внутреннего проектирования проект проверяется автором внешних спецификаций и разработчиком модулей с целью обеспечения работоспособности, понятности, соответствие инструменту разработки, совместимости с принципами организации модулей, полноты декомпозиции и минимизации доступа к данным.
ISO/IEC 9126-1:2001
6 основных характеристик:
Функциональность, надежность, практичность, эффективность, сопровождаемость, мобильность.
Эффективность – способность программных средств обеспечивать необходимую производительность в зависимости от количества используемых ресурсов. Эффективность включает 3 подхарактеристики:
1) Поведение во времени.
Открытая система – это система, состоящая из компонентов, взаимодействующих друг с другом через стандартные интерфейсы.
Комплексное тестирование – это процесс поиска несоответствия системы ее исходным целям. Элементами, участвующими в комплексном тестировании, являются: сама система, описание цели продукта и вся документация, которая будет поставляться вместе с системой.
Если не сформулированы цели продукта или если эти цели не измеримы, тогда комплексное тестирование выполнять невозможно. Комплексное тестирование может быть процессом, как контроля, так и испытания. Процессом испытания оно является тогда, когда выполняется в реальной среде пользователя или в обстановке, которая реально создана, чтобы максимально эмулировать среду пользователя. Когда невозможно рассмотреть выполнение системы в реальной среде пользователя, то комплексное тестирование является процессом контроля.
Виды тестов при выполнении комплексного тестирования.
1. Тестирование стрессов или тестирование с нагрузкой.
При тестировании стрессов делается попытка подвергнуть систему …
2. Тестирование объема.
Представляет собой попытку предъявить система большие объемы данных в течение длительного времени. Цель этого тестирования – показать, что программа не может обрабатывать данные в количестве, указанном в спецификации.
3. Тестирование конфигурации.
Следует тестировать, по крайней мере, минимальную или максимальную конфигурацию. Система должна быть проверена со всяким аппаратным устройством, которое она должна обслуживать или со всякой программой, с которой она должна взаимодействовать. Желательно тестировать каждую конфигурацию, которую допускает программная система.
4. Тестирование совместимости.
Прежде всего, касается версии программных продуктов. Если система представляется собой улучшение прежних версий, то на систему накладывается дополнительное требование, в соответствии с которым взаимодействие пользователей с прежней версией должно полностью сохраниться… Цель тестирования совместимости – показать наличие несовместимостей.
5. Тестирование защиты.
Цель тестирования защиты – нарушить секретность в системе. Для тестирования защиты важно построить такие тесты, которые нарушают программные способы защиты.
6. Тестирование требований к памяти.
С помощью специальных тестов нужно попытаться показать, что система не достигает тех целей в памяти, которые прописаны в сопровождающей документации.
7. Тестирование производительности.
При разработке многих программ ставится задача обеспечения производительности или эффективности. Определяются такие характеристика как: время отклика, уровень пропускной способности при определенной нагрузке. Проверка системы в этом случаи сводится к демонстрации того, что данная программа не соответствует заявленным характеристикам.
8. Тестирование процессов настройки системы очень важно, поскольку одна из наиболее частых ситуаций, с которой сталкивается покупатель, заключается в том, что он оказывает в не состоянии разобраться в системе.
9. Тестирование надежности/готовности.
Надежность – базовая характеристика качества. Ключевой момент заключается в попытке доказать, что система не удовлетворяет к исходным требованиям надежности (среднее время между отказами, количество ошибок, способность к обнаружению, исправлению ошибок и устойчивость к ошибкам).
10. Тестирования средств восстановления.
Важная составная часть к операционным системам, к СУБД, к системам передачи данных – это обеспечение способности к восстановлению. И следует попытаться показать, что эти средства работают неправильно.
11. Тестирование удобства обслуживания.
Требования к продукту, либо в требованиях к проекту должны быть перечислены задачи, определяющие удобства обслуживания (сопровождение системы).
Все документы, описывающие внутреннюю логику, следует проанализировать глазами обслуживающего персонала, чтобы понять как быстро и точно указать причину ошибки, если известны только некоторые ее симптомы. Все средства, обеспечивающие сопровождение и поставляемые вместе с системой должны быть проверенны.
12. Тестирование публикаций.
Проверка точности все документации для пользователя является важной частью комплексного тестирования. Все комплексные тесты стоить строить на основе документации. Пользовательская документация должны быть проверена на точность. Любые примеры, приведенные в документации, следует оформить как тест и проверить при выполнении программ.
13. Тестирование психологических факторов.
На этапе комплексного тестирования могут быть устранены мелкие недостатки, неудобство использования.
14. Тестирования удобства установки.
Процедуры установки некоторых типов систем являются сложными и их следует тестировать на этапе комплексного тестирования.
15. Тестирование удобства эксплуатации.
В этом случаи следует попытаться выявить психологические пользовательские проблемы при эксплуатации программ.
Большинство систем обработки данных являются компонентами более крупных систем, предполагающих деятельность человека, либо сами регламентируют такую деятельность во время своей работы. На этапе комплексного тестирования нужно проверить, что вся эта деятельность удовлетворяет комплексным…
При написании тестов следует проверять все функциональные границы системы, так же следует писать тесты представляющего ошибки пользователя, разрушительные тесты. Тестирования следует осуществлять с точки зрения пользователя или покупателя, что предполагает доскональное понимание того, для чего система будет применяться. Группа тестирования системы должна быть независимая организация и должна включать:
· Профессиональных специалистов по комплексному тестированию систем;
· Пользователей, для которых система разрабатывалась;
· Основных аналитиков и проектировщиков системы;
· И желательно одного или двух психологов.
Все комплексные тесты должны быть подготовлены на основе документации для пользователя. К внешним спецификациям следует обращаться только тогда, когда следует разобраться в противоречиях между системой и публикацией о ней. По своей природе комплексные тесты никогда не сводятся к проверке отдельных функций системы. Как правило, они пишутся в форме сценариев, представляющих ряд последовательных действий пользователям. Вследствие особых сложностей комплексных тестов, они состоят из трех компонентов: сценария, входных данных и ожидаемых выходных данных. При этом в сценарии точно указываются действия, которые должны быть совершенны во время выполнения теста. Один из методов, позволяющий привлечь к тестированию пользователей – это опытная эксплуатация. При ее проведении заключаются контракты на установку у них созданной системы. Причем, это выгодно обеим сторонам. Организация разработчик оповещается об ошибках в программном обеспечении, которые она не заметила. А организация-пользователь позволяет использовать возможность изучить систему до того, как она пойдет в эксплуатацию. Второй метод привлечения пользователей – использовать систему в организации изготовителя для внутренних нужд.