Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
Презентация на комплексную тему Continious integration-Automated Testing-Agile, показывается связи между этими темам, обоснование автоматического тестирования , и вложения ресурсов для развертывания автоматического тестирования и непрерываной интеграциия. Все темы тесно связаны между собой , хотя бы появились независимос друг от друга.
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
В своём докладе я расскажу вам о том, кто такие тест-аналитики, тест-дизайнеры и должны ли их роль выполнять обычные тестировщики. Также сделаю обзор основных и проверенных методик тест-дизайна. Расскажу про их плюсы и минусы.
Будем учиться тестировать не 12 часов, а головой!
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
http://techtalks.nsu.ru
5 апреля 2012. Организация тестирования в IT-компаниях Академгородка. Карьерный путь тестировщика (Мария Колчинская, AcademSoft)
«Мария Колчинская (AcademSoft) рассказывает о процессах тестирования и карьере тестировщика»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
В рамках доклада рассмотрим вопросы формирования команды с помощью модели МакКинси 7с (McKinsey 7s), поговорим о процессах разработки программного продукта, системе релизов, системном инжиниринге и рекомендациях по системе управления процессами.
Выступление будет интересно руководителям команд разработчиков, особенно тем, кто фокусируется на предсказуемости сроков и качестве создаваемого решения.
Андрей Сильчук: "Автоматическое тестирование".Hub-IT-School
Выступление Андрея Сильчука об автоматическом тестировании ПО на Hub QA meetup #1.
Больше мероприятий:
https://vk.com/hub.itschool
https://facebook.com/Hub.IT.School
В статье рассмотрен ряд вопросов связанных с тестированием 64-битного программного обеспечения. Обозначены сложности, с которыми может столкнуться разработчик ресурсоемких 64-битных приложений, и пути их преодоления.
Презентация на комплексную тему Continious integration-Automated Testing-Agile, показывается связи между этими темам, обоснование автоматического тестирования , и вложения ресурсов для развертывания автоматического тестирования и непрерываной интеграциия. Все темы тесно связаны между собой , хотя бы появились независимос друг от друга.
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
В своём докладе я расскажу вам о том, кто такие тест-аналитики, тест-дизайнеры и должны ли их роль выполнять обычные тестировщики. Также сделаю обзор основных и проверенных методик тест-дизайна. Расскажу про их плюсы и минусы.
Будем учиться тестировать не 12 часов, а головой!
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
http://techtalks.nsu.ru
5 апреля 2012. Организация тестирования в IT-компаниях Академгородка. Карьерный путь тестировщика (Мария Колчинская, AcademSoft)
«Мария Колчинская (AcademSoft) рассказывает о процессах тестирования и карьере тестировщика»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
В рамках доклада рассмотрим вопросы формирования команды с помощью модели МакКинси 7с (McKinsey 7s), поговорим о процессах разработки программного продукта, системе релизов, системном инжиниринге и рекомендациях по системе управления процессами.
Выступление будет интересно руководителям команд разработчиков, особенно тем, кто фокусируется на предсказуемости сроков и качестве создаваемого решения.
Андрей Сильчук: "Автоматическое тестирование".Hub-IT-School
Выступление Андрея Сильчука об автоматическом тестировании ПО на Hub QA meetup #1.
Больше мероприятий:
https://vk.com/hub.itschool
https://facebook.com/Hub.IT.School
В статье рассмотрен ряд вопросов связанных с тестированием 64-битного программного обеспечения. Обозначены сложности, с которыми может столкнуться разработчик ресурсоемких 64-битных приложений, и пути их преодоления.
There are lots of libraries and frameworks you can use when building browser based JavaScript applications. Probably the most popular library is jQuery. But while jQuery makes it easy to write cross browser user interface code that manipulates the DOM it’s UI focus makes it less then perfect for large business applications. One of the JavaScript based MVC frameworks that has been gaining a lot of popularity for creating business applications is AngularJS. Wen using AngularJS you get the benefit of a powerful data-binding framework that guides you towards a proper application model with a proper separation between the UI layer and the business layer. It also contains a powerful dependency injection framework making code much more testable than before.
In this session Maurice de Beijer will show you how to get started with AngularJS and how productive you can be when creating line of business applications.
Out-of-the-box WebDriver API provides two main classes: WebDriver and WebElement. Webium library helps you to extend it to whatever deep UI object structure you need. You can describe basic elements (e.g. Button, Input), construct complex elements (e.g. Calendar) from small pieces and at the end put it all together into your Page Objects. Webium is free and open-source. In my speech I’ll present your how to use it effectively if you want to write Selenium tests in Python.
Team Foundation Server Process Templates For Effective Project ManagementAaron Bjork
An introduction to process templates, an overview of the Microsoft Process Template, and new process template features shipping in Team Foundation Server 2010.
An overview of the reporting capabilities in Team Foundation Server 2012. Includes explanation of Data warehouse architecture, included reports (SSRS and Excel), and customization.
Team Foundation Server - Tracking & ReportingSteve Lange
Comprehensive presentation detailing reporting and tracking capabilities of Team Foundation Server. Focuses on Excel workbooks and Reporting Services, but touches on other technologies as well.
Модуль 8. Лекция 37-38. Управление качеством проектаYana Brodetski
Управление качеством проекта
● Планирование управление качеством
● Определение и характеристики дефекта;
● Задачи управления дефектами;
● Классификация важности дефектов;
● Виды тестирования;
● Правильное описание дефекта;
● Жизненный цикл дефекта;
● Работа с базами дефектов;
● Метрики на основе дефектов.
● Составление тест плана
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...Tatyanazaxarova
В результате появления на рынке персональных компьютеров 64-битных процессоров перед разработчиками программ возникает задача переноса старых 32-битных приложений на новую платформу. После переноса кода приложения высока вероятность его некорректной работы. В статье рассмотрены вопросы, связанные с верификацией и тестированием программного обеспечения. Обозначены сложности, с которыми может столкнуться разработчик 64-битных Windows приложений и пути их преодоления.
В статье описаны технологии тестирования, используемые при разработке статического анализатора кода PVS-Studio. Разработчики инструмента для программистов делятся принциами тестирования собственного программного продукта, которые могут быть интересны разработчикам аналогичных пакетов обработки текстовых данных или исходных кодов.
Слады для выступления на GDG DevFest Бишкек, 2014.
https://plus.google.com/events/cgschph5k60ua1ldq0b06i3o3r8
Выступление сделано по книжке "Как тестируют в Google"
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...ITMO University
При создании систем со сложным поведением важную роль играет контроль качества разрабатываемых программ. Цена ошибки в таких системах может быть слишком велика, поэтому важно не просто проверить соответствие создаваемой программы всем предъявленным к ней требованиям, но и сделать этот процесс эффективным, максимально автоматизировав его. На практике этого можно добиться, формализовав все требования к программе и храня полученную исполнимую спецификацию непосредственно вместе с кодом программы. Рассмотрены существующие методы контроля качества современных программных систем и автоматных программ, а также описан процесс создания среды, позволяющей поддержать сразу три подхода к проверке качества программ с явным выделением состояний: проверку на модели, модульное тестирование и контракты. Предложенный подход позволяет сохранить корректность записи сформулированных требований при изменении самой программы, а также интерактивно контролировать ее качество.
2. Тестирование ПО
01 | Основы тестирования ПО
1.1 Тестирование ПО
1.2 Программные и железные компоненты
1.3 Основы программирования
1.4 Управление жизненным циклом
04 | Управление проектами тестирования
4.1 Основные этапы тестирования
4.2 Agile подход
4.3 Работа в распределенной команде
02 | Методологии тестирования ПО
2.1 Техники тестирования
2.2 Уровни тестирования
2.3 Типы тестов
05 | Работа с багами
5.1 Выявление программных дефектов
5.2 Журналирование багов
5.3 Управление багами
03 | Разработка тестов ПО
3.1 Пользовательское централизованное
тестирование
3.2 Тестируемость ПО
3.3 Разработка плана тестирования
компонентов
3.4 Особенности тестирования
3.5 Appropriately Scoped Test Cases
06 | Автоматизация тестирования ПО
6.1 Автоматизация тестирования
6.2 Стратегия автоматизация тестирования
6.3 Написание автоматизированных тестов
6.4 Управление тестовыми скриптами
Содержание курса
6. Обзор раздела
В этом разделе будут рассмотрены следующие вопросы:
– Техники тестирования. Темы: ручное тестирование,
автоматизированное тестирование, тестирование черный и белый
ящики.
7. Основные вопросы
Что такое ручное тестирование?
Какие преимущества автоматизированного тестирования?
Чем отличается тестирование черного ящика от тестирования
белого ящика?
8. Ручное тестирование
Первый опыт тестирования мы получаем во время изучения
программирования: попробуй и посмотри как это работает.
Это самый простой подход называют ручным тестированием.
При ручном тестировании тестер играет роль пользователя и
проверяет есть ли какое-либо неожиданное или
нежелательное поведение приложения.
Часто, используют план тестов со специфическими тестовыми
случаями для обеспечения тщательного исследования
проекта.
Тестер может быть или не быть частью команды
разработчиков.
9. Автоматизированное тестирование
Автоматизованное тестирование проводится с применением
тестового программного обеспечения (такого, как Microsoft®
Test Manager в Microsoft Visual Studio®) для контроля и
отслеживания одного или более автоматически исполняемых
тестов.
Автоматизованные тесты могут быть созданы и
сконфигурированы каждый раз для новой версии проекта (или
части исходного кода).
Microsoft Test Manager предоставляет детальный отчет о
результатах каждого автоматического теста.
10. Ручное или автоматизированное тестирование
Ручные и автоматизированные тесты дополняют друг друга;
оба типа тестов важны для обеспечения высокого качества
программного обеспечения.
Автоматизация является быстрой и позволяет проверить
поведение ПО на различных исходных данных; оно также
позволяет повторять тесты во время развития проекта. В связи
с тем, что выполнение тестов производиться на компьютере,
усталость и ошибки, которые иногда сопровождаются при
выполнении повторяющихся задач исключаются.
Не смотря на то, что ручные тесты обычно более длительны
(т.к. они выполняются человеком), они часто требуют намного
11. Тестирование черного ящика (Black box)
Тестирование черного ящика связано с отсутствием
информации/знаний о том как работает тестируемая система.
Этот тип тестирования имитирует работу конечного пользователя.
В общем случае, тестер не знает как работает код – он выполняет ввод
и изучает результат. Этот человек не обязательно должен знать
программирование.
Примерный сценарий тестирования черного ящика включает:
Тестирование, что пользовательский интерфейс содержит все требования и
функционал.
Тестирование различных входных параметров (включаю ввод выходящих за
ожидаемый диапазон данных, таких, как ввод отрицательного числа для
веса).
Нагрузочное или стрессовое тестирование системы.
Тестирование безопасности проекта или системы.
12. Тестирование белого ящика (White Box)
Также известный как стеклянный ящик, чистый ящик или
открытый ящик.
Это тестирования связано с исследованием кода на
потенциальные сценарии отказа или сбоя.
Тестовые случаи создаются тем, кто анализирует код
приложения и подготавливает тесты для обеспечения что
поведение класса соответствует спецификации.
Сценарий тестирования белого ящика предусматривает:
Тестирование подпрограмм которые используются “за сценой.”
Тестирование циклов и условий на точность.
Тестирование производительности кода или алгоритма
13. Видео
Простое воспроизведение ошибок с помощью
ручного тестирования
http://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-
Ultimate-Overview-RUS/Visual-Studio-Ultimate-2012-Easily-
reproducing-issues-through-manual-testing-RUS
14.
15. Вопросы раздела
Что такое ручное тестирование?
В чем преимущество автоматизированного тестирования?
Чем отличается тестирование черного ящика от тестирования
белого ящика?
17. Обзор раздела
В этом разделе будут рассмотрено:
– Модульное тестирование
– Компонентное и интеграционное тестирование
18. Главные вопросы
Как называется уровень тестирования, когда разработчик тестирует
отдельный метод?
Что такое интеграционное тестирование?
Какое другое название для интеграционных тестов?
19. Модульное тестирование (Unit Testing)
Модульные тесты это автоматизированные тесы, которые
проверяют функциональность на уровне компонентов, классов,
методов или уровне собственности.
Основная цель модульного тестирования является в том, чтобы
взять небольшую часть тестируемого приложения, изолировать
ее от остального кода и выяснить является ли ее поведение
таким как ожидается.
Каждый модуль тестируется отдельно перед интегрированием
его в компоненты для тестирования интерфейса между
модулями.
Модульные тесты должны быть написаны перед тем (или в
20. Пример модульного теста
Рассмотрим пример мобильного приложения которое принимает рост
и вес человека, затем рассчитывает индекс массы тела (ИМТ) и затем
дает рекомендации для улучшения здоровья и спортивной формы.
Индекс массы рассчитывается используя высоту в дюймах, но
пользователь ввел футы и дюймы (например, 5’6”).
Модульный тес будет включать тестовый метод или функцию которая
конвертирует футы и дюймы в общие дюймы.
Метод, которые рассчитывает индекс массы с весом и общие дюймы
может быть другим модульным тестом.
Отметим, что модульные тесты покрывают код который не обязательно
видимый для пользователя, он, возможно, не осознают, что высота будет
конвертирована.
21. Компонентное и интеграционное тестирование
С точки зрения тестирования, индивидуальные модули
интегрируются вместе для формированию больших
компонент. В простейшем случае, два модуля, которые уже
протестированы объединяют в интегрированный компонент и
тестируют интерфейс между ними.
Это тестирование называют интеграционное (или
“компонентное тестирования”).
Интеграционное тестирование выявляет проблемы которые
проявляются при объединении модулей. Новые ошибки,
которые появляются скорее всего связаны с интерфейсами
между модулями чем с самими модулями – это упрощает
22. Пример интеграционного теста
В нашем примере вычисления индекса массы тела,
предположим, что мы написали метод конвертирования роста
человека в дюймы и что мы написали отдельный метод
который использует соответствующую формулу для
вычисления ИМТ.
Когда мы пишем третий метод который получает
пользовательский ввод, вызывает метод конвертации и
использует результат для вызова метода расчета , нам
необходимо выполнить интеграционный тест между этими
частями кода.
23. Вопросы раздела
Как называется когда разработчик тестирует отдельный метод?
Что такое интегрированные тесты?
Какое другое название интегрирующих тестов?
25. Обзор раздела
В этом разделе будет рассмотрено следующее:
– Типы тестов
– Тема включает:
Функциональный
Производительности
Регрессионный
Безопасности
Стрессовый
Доступности
Удобства использования
Тестирование локализации
26. Основные вопросы
Что такое регрессия в разработке программного обеспечения?
Какой пример ситуации которая может нагрузить программную
систему?
Какой из типов тестов помогает обеспечить поддержку
пользователей с ограниченными возможностями?
27. Регрессионное тестирование
При изменениях в проекте возможно что существующий код
не будет работать или ранее не выявленные баги начнут
проявлять себя. Этот тип багов называют регрессионными.
Для перехвата этих ошибок, целый проект должен пройти
регрессионные тесты: полностью повторное тестирование
измененной программы предпочтительнее чем тестирование
только измененных модулей, что гарантирует отсутствие
ошибок с изменениями.
28. Стрессовое тестирование
Тестирование в небольших масштабах, например один
пользователь работающий с веб-приложением или базой данных,
только ручной ввод, не может выявить проблемы, которые могут
появиться при использовании приложения в условиях реальной
нагрузки, в «реальном мире».
Нагрузочное тестирование выявляет функциональные ограничения
системы. Это реализуется путем создания экстремального
воздействия, таких как большой объем данных или одновременно
большое количество пользователей.
Эти тесты также называют нагрузочными так как тестируют систему
при тяжелых нагрузках.
Автоматизация теста позволяет выполнить тяжелы стрессовые
тесты с минимальными трудозатратами.
29. Тесты производительности
Тестирование производительности определяет отзывчивость,
производительность, надежность, и/или масштабируемости
системы, в рамках данной рабочей нагрузки.
Для веб приложений, тестирование производительности часто
тесно связано с стресс тестированием, измеряющим задержку
(lag) и отзывчивость под нагрузкой.
Для других приложений (десктопных и мобильных, например),
тест производительности измеряет скорость и использование
ресурсов таких, как память и жесткий диск.
30. Видео
Нагрузочное тестирование приложений в Visual Studio
http://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-
Ultimate-Overview-RUS/Visual-Studio-Ultimate-2012-Load-testing-
applications-in-Visual-Studio-RUS
31.
32. Тестирование безопасности
Тест безопасности проверяет службы безопасности
приложения и выявляет потенциальные проблемы с
безопасностью.
Большинство проектов в использует подход черного ящика
для тестирования безопасности, позволяющий экспертам по
безопасности, которым не известен код приложения
исследовать его на дыры и недостатки.
33. Тестирование удобства использования
Тестирование удобства использования исследует то, как
реальные пользователи на самом деле используют ПО.
Например:
Измеряется как долго для пользователя может занять выполнение
задания.
Отслеживание как много “кликов” или пользовательских действий
занимает для выполнения задания или доступ к функции.
34. Тестирование локализации
Локализация переводит ГПИ продукта и иногда изменяет
некоторые начальные настройки для того, что бы приложение
было подходящим для другого региона.
Например, локализованный проект для Великобритании может
изменить язык на английский и единицы измерения, например,
длинны на дюймы или футы.
Тестирование локализации позволяет проверить качество
локализации продукта для определенной целевой
культуры/локали.
Это тестирование сфокусировано на ГПИ и других областях
связанных с локализацией (установка и обновление в
локализованной среде, совместимость железа основанного на
целевом регионе и т.д.).
35. Тестирование доступности
Проверяет поддержку для пользователей с ограниченными
возможностями. Тестирование доступности может включать:
Соответствие: Соответствует ли оно требованиям
законодательства?
Эффективность: Могут ли пользователи с ограниченными
возможностями использовать приложение?
Полезность: Предоставляет ли приложение адекватную
функциональность для пользователей с ограниченными
возможностями?
Удовлетворенность: Как приложение воспринимается
пользователями с ограниченными возможностями?
Тестирование доступности может включать в себя тесты на удобство
использования для инвалидов с применением вспомогательных
технологических устройств.
36. Видео
Простое тестирование пользовательских интерфейсов с
помощью закодированных тестов
пользовательского интерфейса
http://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-
Ultimate-Overview-RUS/Visual-Studio-Ultimate-2012-Easily-testing-
user-interfaces-with-Coded-UI-tests-RUS
37.
38. Вопросы раздела
Что такое регрессия при разработке программного обеспечения?
Какой пример ситуации которая может привести программную
систему в стрессовое состояние?
Какой тип тестирования помогает убедится в поддержке
пользователей с ограниченными вомзожностями?
39. Дополнительные ресурсы к этой лекции
MSDN Software Testing Resources
Testing Process for Application Blocks http://msdn.microsoft.com/en- us/library/ff649517.aspx
Black Box & White Box Testing for Application Blocks http://msdn.microsoft.com/en- us/library/ff649503.aspx
Patterns and Practices: Manual System Tests http://msdn.microsoft.com/en- us/library/jj159334.aspx
Test Early and Often http://msdn.microsoft.com/en- us/library/vstudio/ee330950.aspx
Unit Testing http://msdn.microsoft.com/en- us/library/aa292197.aspx
Unit Testing: Testing the Inside http://msdn.microsoft.com/en- us/library/jj159340.aspx
Integration Testing http://msdn.microsoft.com/en- us/library/aa292128.aspx
Unit testing, component level testing and UI testing,
what to use and when
http://blogs.msdn.com/b/raulperez/archive /2010/04/29/unit-testing-
component- level-testing-and-ui-testing-what-to-use- and-when.aspx
Regression Testing http://blogs.msdn.com/b/narendra_parihar
s_blog/archive/2012/04/20/regression- testing.aspx
Performance and Stress Testing http://msdn.microsoft.com/library/dd2935 40.aspx
Security Testing http://msdn.microsoft.com/en- us/library/aa292190.aspx
Localization Testing http://msdn.microsoft.com/en- us/library/aa292138.aspx
Testing a User Interface (UI) http://msdn.microsoft.com/en-
us/library/windows/desktop/ff728827.aspx
Editor's Notes
1
3
Unit tests are automated tests that verify functionality at the component, class, method, or property level.
The primary goal of unit testing is to take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as you expect.
Each unit is tested separately before integrating them into components to test the interfaces between units.
Unit tests should be written before (or very soon after) a method is written. Often, developers building the class or method designs the unit test themselves.