Настоящее пособие предназначено для будущих программистов, которым необходимо знать основы тестирования программных продуктов, принципы работы в команде с тестировщиками, необходимость и основы верификации и моделирования программного обеспечения. Цель пособия – пересмотреть отношение разработчиков к качеству современного программного обеспечения. В первой части пособия рассматриваются способы тестирования, спецификации программного обеспечения, документирование, модульное тестирование в средах IntelliJ IDEA, MS Visual Studio, изучаются методы разработки программного обеспечения, исходя от тестирования (TDD) и поведения (BDD) в среде IDEA на языке Java, рассматривается функциональное автоматизированное тестирование в среде IBM Rational Tester, тестирование Web-приложений с помощью Selenium. Вторую часть пособия занимают перспективные методы, связанные с верификацией и моделированием ПО. Рассматривается технология разработки и проектирования – контрактное программирование и язык Eiffel, .NET Code Contracts, технология Model Based Testing и средство MS Spec Explorer, Model Based Checking и средство Spin в среде iSpin, платформа Frama-C. Пособие может быть использовано на специальности «Программная инженерия» и родственных специальностях, для работы с пособием необходимы навыки разработки взаимодействующих с пользователем приложений на одном из объектно-ориентированных языков, знания математической логики и теории автоматов.