Результати пошуку
ITVDN: курси програмування
Відеокурси з
програмування
Підписка

300+ курсів за популярними IT-напрямками

Вибери свою IT спеціальність

Підписка
Підписка

300+ курсів за популярними IT-напрямками

Результати пошуку за запитом: начальный курс c
WebForms чи MVC?

Автор: Редакція ITVDN

Введение Когда в 2008 году компания Microsoft придумала ASP.NET MVC, у многих возник вопрос: «Зачем нужна ещё одна технология ASP.NET?». Многие считают, что ASP.NET MVC не обязательно использовать, заменив на Web Forms ASP.NET. Однако, это неправда. Оба имеют свои плюсы и минусы. В статье мы рассмотрим преимущества этих двух технологий – и каждый сможет определиться, какая из них ему ближе. Мы также объясним понятия ASP.NET, ASP.NET Web Forms, MVC, ASP.NET MVC. Опытным разработчикам в ASP.NET MVC данная статья поможет переосмыслить свои концепции. Web-технологии Когда речь идёт о web-технологиях, на ум приходит классический ASP, PHP, JSP, ROR, ASP.NET Web Forms, ASP.NET MVC и другое. Классический ASP - web-технология, созданная корпорацией Microsoft. У классического ASP было два недостатка: слишком большой, неудобный исходный код и ненадёжность. К примеру, у Вас есть текстовые поля и кнопка. Нажав на кнопку, можно проверить данные, хранящиеся на сервере. Успешная проверка означает, что данные хранятся в базе, а в обратном случае выведется определённое сообщение об ошибке. В чём проблема такого сценария? Вам нужно совершить много действий. Приложение ASP.NET ASP.NET – приложение Microsoft, его структура построена на всеязыковой среде выполнения для построения динамических веб-сайтов – для создания можно использовать такие языки: C#, VB.NET и другие. ASP.NET поддерживает две модели: Web Forms и ASP.NET MVC. ASP.NET Web Forms Корпорация Microsoft первой вывела ASP.NET Web Forms из ASP, таким образом они решили множество проблем путём создания высокого уровня абстрагирования. Web Forms включает в себя postback (постит данные на заданную страницу) и ViewState. И самое интересное в том, что для ASP.NET Web Forms не требуется написания вручную ни единой строчки кода. ASP.NET 4.0 В ASP.NET 4.0 придумали, как преодолеть некоторые трудности: появилась возможность отключать и контролировать размер ViewState; с URL routing можно предоставить собственный URL вместо физического пути; в ASP.NET 4.0 мы имеем лучший контроль над ID элементов и, таким образом, интеграция с платформой JavaScript стала проще. Шаблон MVC MVC – архитектурный шаблон. Многие используют его с Java-технологией. MVC – не новое понятие, созданное Microsoft. Однако, в MVC ASP.NET нужно разобраться. До этого стоит уточнить для себя некоторые определения – в том числе, что такое MVC. Архитектурный шаблон – то, что решает наш вопрос на суб-системном уровне или на коротком уровне модуля. Речь идет о проблеме, связанной с архитектурой проекта. Это говорит о том, как можно разделить системы, а в частности - почему. Создаются библиотеки классов, компоненты, веб-сервисы, чтобы решить данный вопрос. MVC – архитектурный шаблон, позволяющий уловить тонкую связь между input-логикой, бизнес-логикой и UI-логикой. Платформа ASP.NET MVC ASP.NET MVC – еще одна платформа web-приложений от Microsoft. В ней устранены недостатки, имеющие место в предыдущих, подобного типа платформах. Эта платформа построена на всеязыковой среде выполнения (CLR) и полностью основана на MVC-архитектуре. Источник: http://www.codeproject.com/Articles/528117/WebForms-vs-MVC#Visual_in_Web
Нові можливості CSS3

Автор: Редакція ITVDN

Введение  CSS3 произвел революцию в мире веб разработки, поскольку он принес много новых функциональных возможностей. Эта технология продолжает развиваться и внедрять новые возможности. В Новом, 2015 году будут добавляться новые свойства, про некоторые из них мы расскажем в этой статье. CSS - маски В Webkit браузерах CSS-маски функционируют уже давно. В ноябре 2014 года была опубликована новая спецификация CSS масок, теперь мы ждем, когда поддержку данного свойства получат все браузеры. Что такое маска? Проще говоря, маской можно назвать изображение с белой или черной фигурой и прозрачным фоном. Применяя маску на изображение или элемент, мы получим маскированное изображение. Пример:  Маски можно использовать сейчас, но, к сожалению, только в браузерах Webkit отображение будет корректным. Использование масок в Webkit На движке Webkit маски выполняются очень легко, просто используйте тег mask. .element {      -webkit-mask: url('mask.png'); } Давайте попробуем создать пример. Вот наше изображение маски:  Накладывать маску будем на эту фотографию: Теперь добавим немного кода:  class="element">     src="image.jpeg" alt="" /> type="text/css"> .element {    width: 500px;    overflow: hidden; } .element img {     -webkit-mask: url(mask-image.png); } В результате мы получим вот такое изображение:  Кроме того, можно использовать свойства. Например, Вы можете установить позицию: .element img {     -webkit-mask: url(mask-image.png) 30% 30% repeat-x border-box;         /* .. тоже самое что и.. */     -webkit-mask-image: url(mask-image.png);     -webkit-mask-position: 30% 30%;     -webkit-mask-repeat: repeat-x;     -webkit-mask-box-clip: border-box;         /* Так же можно указать и размер! */     -webkit-mask-size: 30% 30%; }   CSS-исключения CSS-исключения (CSS Exclusions) - очень мощная функция, позволяющая изменить отображение контента на странице. Используя только одно свойство, можно поменять весь стиль страницы, это очень похоже на редактирование страницы в редакторе WYSIWYG. Давайте посмотрим на самое интересное свойство - “wrap-flow”. Wrap-flow Wrap-flow позволяет определить, какое количество элементов влияет на другие, когда они поверх остальных. Зачастую блоки перекрываются. С помощью wrap-flow все элементы адаптируются под верхний элемент на странице.  Wrap-flow имеет несколько настроек: auto: обычное состояние, ни один из элементов не регулируется start: все, что после элемента - удаляется end: удаляется все, что до элемента  both: удаляется контент под объектом minimum: удаляется сторона с наибольшим количеством контента maximum: удаляется сторона с наименьшим количеством контента clear: c двух сторон от объекта всё содержимое удаляется Диаграмма для помощи: Композиции и модели смешивания (Composition and Blending) Режимы смешивания в CSS стали частью официальной спецификации W3C. Это значит, что Вы можете выполнять затемнения основы (color burn) через CSS. Данная спецификация новая, так что возможны изменения прежде, чем она попадет в другие браузеры. У нее такой принцип работы: есть 2 изображения, они накладываются одно на другое с помощью абсолютного позиционирования. Это будет выглядеть так: <div class="blend">    <img src="duck.gif" alt="Duck" class="duck" width="500" height="500" style="position: absolute; top: 0; left: 0" />    <img src="penguin.gif" alt="Penguin" class="penguin" width="500" height="500" style="position: absolute; top: 0; left: 0" /> div> Пример CSS кода:  .blend {      position: relative; } .blend .duck {         mix-blend-mode: overlay; } В целом вся конструкция выглядит так:  Если Вам интересно, то можете попробовать режимы наложения прямо сейчас. Для этого Вам необходимо скачать Adobe’s experimental webkit browser Источник: http://www.inserthtml.com/2013/01/future-css3/ 
Lviv IT Outsourcing Forum

Автор: Редакція ITVDN

20 апреля компания Lemberg Tech Business School будет проводить уже одиннадцатый Lviv IT Outsourcing Forum! Наряду с Kyiv IT Outsourcing Forum это уже традиционная конференция для владельцев и C-Level менеджмента украинских IT аутсорсинговых компаний. Планируется, что в этом году в конференции примут участие около 400 CEO, CTO, COO, CFO директоров из Украины, Германии, Израиля и других стран Европы. Зарегистрироваться - http://bit.ly/2SbvFxT Промокод на скидку 15 % - LIOF15ITVDN Темой следующего LIOF будет "Трансформация IT компании. Quo Vadis?». Вопросы, которые будут обсуждаться:   Куда развивать собственную IT компанию? Каковы перспективы развития в ближайшие 3-5 лет? Как перейти в новые технологические ниши? Какие ресурсы и инвестиции это потребует? За какое время они могут окупиться? Что происходит на мировом рынке IT-сервисов? Возможна жесткая специализация компании по технологии, домейн, рынка и продукта? Примеры сервисно - продуктовых компаний которые "взлетели" в 2018 году. Как построить sales процесс в технологической нише в средней компании? Возможен ли переход в продукты? Что делать, чтобы перейти в консалтинговую модель IT бизнеса в выбранной вертикали?   Цели конференции: изучить опыт передовых компаний к изменению себя в высокопроизводительных игроков глобального рынка проговорить возможные угрозы внутреннего рынка талантов и существующим легально-налоговым принципам работы открыть новые возможности наиболее продуктивным владельцам компаний способствовать обмену опытом среди владельцев ИТ сервисных и полупродуктовых компаний Ключевые докладчики конференции: эксперты-практики, владельцы и директора IT-аутсорсинговых компаний, представители компаний-заказчиков аутсорсинговых услуг, консалтинговые и продуктовые компании.   Если Вы считаете себя одним из них и хотите подать доклад - https://docs.google.com/forms/d/1b_H_NDS1zz7f2gjulE97XqslbyoGg6mOBSOPLRFW88Q/viewform?edit_requested=true   Конференция традиционно проводится 2 дня. Программа первого дня - это 4 классических потока:   Outsourcing Business. О стратегических вопросах развития компании, стабильность, возможности рынка в Украине, выход на новые рынки, PDS 2.0. BDMS (Business development, marketing, sales). Об эффективном маркетинге, организации и реализации процессов продаж, управления финансами и поддержания отношений с клиентами. Evolution. О новейших рынках и путях развития компании. Организационная зрелость. Для опытных проектных менеджеров и СЕО аутсорсинговых ИТ компаний об управлении проектами, новинки в области и гибкие методологии. Образование, корпоративная культура, рекрутинг, HR.   "Фишка" Lemberg Tech Business School - частные встречи и консалтинг от опытных и прорывных владельцев IT компаний. Получите консультацию, которая стоит тысячи долларов, почти бесплатно! Также на события будет постоянно действующая биржа контактов. Частные встречи будут доступны участникам с билетом типа "GOLD". Второй день конференции только для "GOLD" участников, которые хотят практики и реальных примеров! Именно для них организовывают: Тур львовскими офисами крупнейших ИТ аутсорсинговх компаний! Серию воркшопов от докладчиков-практиков, которые поделятся своими наработками! Организатор: Lemberg Tech Business School: организация с 10-летней историей проведения успешных конференций: Lviv Mobile Development Day, GameDev Conference, Lviv PM Day, Lviv Freelance Forum и BDMSummit. Также в рамках LemBS действуют следующие школы: jCEO School, PMSchool, IMarketing School, SMM School, Startup School. Как было на предыдущих конференциях: Фото с осеннего KIOF 2018 -  https://www.facebook.com/media/set/?set=a.1889194937836183&type=1&l=800e5408f9 Фото с весеннего KIOF 2018 - https://www.facebook.com/media/set/?set=a.1658085234280489&type=1&l=2e2fda2139 Фото осеннего LIOF 2017 - https://www.facebook.com/media/set/?set=a.1511898538899160&type=1&l=13e27fa0cb   Презентации докладчиков из прошлых конференций можно найти тут - https://www.slideshare.net/lvivstartup. Видео - на youtube-канале - https://www.youtube.com/user/StartupLviv/videos Получите новые знания и нетворк для успешного развития вашей компании на Lviv IT Outsourcing Forum 2019.
Як стати Python розробником у 2021 році.

Автор: Артем Мураховський

<p bis_size="{&quot;x&quot;:20,&quot;y&quot;:20,&quot;w&quot;:1019,&quot;h&quot;:80,&quot;abs_x&quot;:434,&quot;abs_y&quot;:734}">Python &mdash; один из самых простых и лаконичных языков программирования. Плюс ко всему, он очень универсален &mdash; его используют в создании широкого спектра программных продуктов: игры, настольные, мобильные и веб-приложения, встроенное ПО, Data Science (машинное обучение, анализ данных, визуализация). Также, Python пользуется популярностью при написании тестов для приложений и в разработке скриптов, позволяющих автоматизировать определенные рутинные процессы в работе системных администраторов, DevOps инженеров и прочих специалистов.</p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:113,&quot;w&quot;:1019,&quot;h&quot;:40,&quot;abs_x&quot;:434,&quot;abs_y&quot;:827}">CyberBionic Systematics совместно с ITVDN предлагает формат &laquo;живого&raquo; онлайн обучения, позволяющий использовать преимущества общения с наставником, работы в группе и доступ к огромной базе дополнительных знаний по выбранному направлению.</p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:166,&quot;w&quot;:1019,&quot;h&quot;:60,&quot;abs_x&quot;:434,&quot;abs_y&quot;:880}">На встрече, которая состоится 23 июня, мы расскажем о том, как проходит онлайн обучение в CyberBionic Systematics по специальности Python Developer. Вы узнаете, какие технологии изучаются на курсе, какие программы и сервисы используются для проведения занятий, общения, проверки знаний, совместной работы над курсовыми проектами и многое другое.</p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:239,&quot;w&quot;:1019,&quot;h&quot;:20,&quot;abs_x&quot;:434,&quot;abs_y&quot;:953}">Вы сможете задать вопросы тренеру, который ведет обучение в группах по Python и получите ответы в прямом эфире.</p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:272,&quot;w&quot;:1019,&quot;h&quot;:20,&quot;abs_x&quot;:434,&quot;abs_y&quot;:986}"><strong bis_size="{&quot;x&quot;:20,&quot;y&quot;:274,&quot;w&quot;:76,&quot;h&quot;:15,&quot;abs_x&quot;:434,&quot;abs_y&quot;:988}">Программа:</strong></p> <ol bis_size="{&quot;x&quot;:20,&quot;y&quot;:305,&quot;w&quot;:1019,&quot;h&quot;:280,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1019}"> <li bis_size="{&quot;x&quot;:60,&quot;y&quot;:305,&quot;w&quot;:939,&quot;h&quot;:20,&quot;abs_x&quot;:474,&quot;abs_y&quot;:1019}">Коротко об учебном центре CyberBionic Systematics. Авторские программы обучения, видео курсы, тестирование, центр международной сертификации.</li> <li bis_size="{&quot;x&quot;:60,&quot;y&quot;:325,&quot;w&quot;:939,&quot;h&quot;:120,&quot;abs_x&quot;:474,&quot;abs_y&quot;:1039}">Как проходит онлайн обучение <ol bis_size="{&quot;x&quot;:60,&quot;y&quot;:345,&quot;w&quot;:939,&quot;h&quot;:100,&quot;abs_x&quot;:474,&quot;abs_y&quot;:1059}" style="list-style-type: lower-alpha;"> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:345,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1059}">План специальности</li> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:365,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1079}">График занятий, структура занятия</li> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:385,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1099}">Помощник тренера, проверка ДЗ, общение между занятиями</li> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:405,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1119}">Курсовые проекты</li> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:425,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1139}">Поддержка HR специалиста, помощь в трудоустройстве</li> </ol> </li> <li bis_size="{&quot;x&quot;:60,&quot;y&quot;:445,&quot;w&quot;:939,&quot;h&quot;:100,&quot;abs_x&quot;:474,&quot;abs_y&quot;:1159}">Специальность Python Developer <ol bis_size="{&quot;x&quot;:60,&quot;y&quot;:465,&quot;w&quot;:939,&quot;h&quot;:80,&quot;abs_x&quot;:474,&quot;abs_y&quot;:1179}" style="list-style-type: lower-alpha;"> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:465,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1179}">Кто такой Python разработчик</li> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:485,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1199}">Что нужно знать и уметь</li> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:505,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1219}">Что будете разрабатывать</li> <li bis_size="{&quot;x&quot;:100,&quot;y&quot;:525,&quot;w&quot;:859,&quot;h&quot;:20,&quot;abs_x&quot;:514,&quot;abs_y&quot;:1239}">Какие перспективы</li> </ol> </li> <li bis_size="{&quot;x&quot;:60,&quot;y&quot;:545,&quot;w&quot;:939,&quot;h&quot;:20,&quot;abs_x&quot;:474,&quot;abs_y&quot;:1259}">С чего начать? Бесплатный пробный урок, консультация по выбору курса и специализации.</li> <li bis_size="{&quot;x&quot;:60,&quot;y&quot;:565,&quot;w&quot;:939,&quot;h&quot;:20,&quot;abs_x&quot;:474,&quot;abs_y&quot;:1279}">Вопросы и ответы. Розыгрыш скидок на обучение.</li> </ol> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:598,&quot;w&quot;:1019,&quot;h&quot;:20,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1312}"><strong bis_size="{&quot;x&quot;:20,&quot;y&quot;:600,&quot;w&quot;:130,&quot;h&quot;:15,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1314}">Целевая аудитория:</strong></p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:631,&quot;w&quot;:1019,&quot;h&quot;:40,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1345}">Начинающие IT специалисты, желающие пройти комплексное обучение по специальности Python разработчик, а также те, кто хочет научиться программировать на языке Python&nbsp; и создавать современные веб-приложения с нуля.</p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:684,&quot;w&quot;:1019,&quot;h&quot;:20,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1398}">Условия участия &ndash;&nbsp;<strong bis_size="{&quot;x&quot;:135,&quot;y&quot;:686,&quot;w&quot;:67,&quot;h&quot;:15,&quot;abs_x&quot;:549,&quot;abs_y&quot;:1400}">бесплатно</strong>. Для получения ссылки-приглашения на вебинар зарегистрируйтесь.</p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:717,&quot;w&quot;:1019,&quot;h&quot;:20,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1431}"><strong bis_size="{&quot;x&quot;:20,&quot;y&quot;:719,&quot;w&quot;:97,&quot;h&quot;:15,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1433}">Организаторы:</strong></p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:750,&quot;w&quot;:1019,&quot;h&quot;:100,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1464}"><a bis_size="{&quot;x&quot;:20,&quot;y&quot;:752,&quot;w&quot;:143,&quot;h&quot;:15,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1466}" href="https://edu.cbsystematics.com/ru">CyberBionic Systematics</a>&nbsp;&ndash; сертифицированный учебный центр, партнер Microsoft, авторизованный центр международной IT сертификации VUE Pearson. С 2007 года CyberBionic Systematics предоставляет услуги по профессиональной подготовке и повышению квалификации IT специалистов в форме&nbsp;<strong bis_size="{&quot;x&quot;:847,&quot;y&quot;:772,&quot;w&quot;:109,&quot;h&quot;:15,&quot;abs_x&quot;:1261,&quot;abs_y&quot;:1486}">очного обучения</strong>&nbsp;в современных учебных центрах в Киеве или на территории компании-заказчика,&nbsp;<strong bis_size="{&quot;x&quot;:507,&quot;y&quot;:792,&quot;w&quot;:46,&quot;h&quot;:15,&quot;abs_x&quot;:921,&quot;abs_y&quot;:1506}">on-line&nbsp;</strong>и&nbsp;<strong bis_size="{&quot;x&quot;:564,&quot;y&quot;:792,&quot;w&quot;:39,&quot;h&quot;:15,&quot;abs_x&quot;:978,&quot;abs_y&quot;:1506}">видео</strong>&nbsp;обучения. На конкурсе IT Education Awards 2015 был признан лучшим в номинации&nbsp;<strong bis_size="{&quot;x&quot;:101,&quot;y&quot;:812,&quot;w&quot;:545,&quot;h&quot;:15,&quot;abs_x&quot;:515,&quot;abs_y&quot;:1526}">Complex IT Education, получил награду За инновации в IT образовании на конкурсе&nbsp;</strong>IT Biz Awards 2015. По данным рейтингов&nbsp;<a bis_size="{&quot;x&quot;:900,&quot;y&quot;:812,&quot;w&quot;:49,&quot;h&quot;:15,&quot;abs_x&quot;:1314,&quot;abs_y&quot;:1526}" href="https://dou.ua/lenta/articles/it-schools-rankings-2016/">DOU.UA</a>&nbsp;CyberBionic Systematics входит в тройку лидеров IT обучения в Украине.</p> <p bis_size="{&quot;x&quot;:20,&quot;y&quot;:863,&quot;w&quot;:1019,&quot;h&quot;:60,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1577}"><a bis_size="{&quot;x&quot;:20,&quot;y&quot;:865,&quot;w&quot;:39,&quot;h&quot;:15,&quot;abs_x&quot;:434,&quot;abs_y&quot;:1579}" href="https://itvdn.com/ru">ITVDN</a>&nbsp;&ndash; это онлайн платформа для изучения программирования по видео курсам. В каталоге ITVDN более 200 видео курсов по 20 IT специальностям, наиболее популярные среди них: FrontEnd, Java, Python, .NET, мобильная разработка и создание игр на Unity. Авторы курсов &ndash; практикующие разработчики, сертифицированные специалисты из IT компаний.</p>
Співбесіда з QA. 250+ питань для Junior, Middle, Senior

Автор: Влад Сверчков

Junior 1.1 Теория тестирования. 1.2 AQA      1.2.1 Программирование и Selenium      1.2.2 TestNG/JUnit, Git, CI              1.3 Web              1.4 Mobile              1.5 Практические задания   Middle 2.1 Теория 2.2 AQA      2.2.1 Selenium      2.2.2 Тестовая инфраструктура 2.3 Web 2.4 Mobile 2.5 Практические задания   Senior 3.1 Теория 3.2 Практические задания     Дорогие друзья! Предлагаем вашему вниманию перевод статьи, опубликованной на DOU.ua 12 января 2022 года. Оригинальная версия на украинском языке доступна по ссылке. Эту подборку вопросов, которые ставят кандидатам разных уровней на технических собеседованиях на позицию QA, составили совместными усилиями практики. Список – лишь ориентир. Кандидатам советуем пробежаться по вопросам и отметить неизвестные слова, погуглить и заодно повысить шансы пройти собеседование. Интервьюерам – пополнить свой запас интересных вопросов. Но не переборщите :) Если вы не претендуете на позицию QA, просмотрите переводы подборок вопросов по другим популярным IT-специальностям.   Junior   Теория тестирования 1. Что такое тестирование? 2. Зачем тестировать ПО? 3. Какие существуют этапы тестирования? 4. Какие типы тестирования можете назвать? 5. Какие уровни тестирования знаете? 6. Какие техники тест-дизайна знаете? 7. Что такое техника анализа классов эквивалентности? 8. Что такое техника анализа предельных значений? В чем ценность этой техники? 9. Что такое Regression и Confirmation тестирование, какая между ними разница? 10. Как часто следует проводить регрессионное тестирование продукта? 11. Какие бывают виды интеграционного тестирования? 12. Что такое Configuration Testing? 13. Что такое Exploratory Testing? 14. Какие существуют UI-стандарты? 15. Что такое Black/Grey/White Box Testing? 16. Что такое Performance Testing? 17. Что такое Smoke и Sanity тестирование и какая между ними разница? 18. Что такое Traceability Matrix? 19. Что такое Sanity Testing? 20. Что такое End-to-End тест? 21. Что такое тестирование безопасности? 22. Что такое испытание на основе рисков? 23. Что такое динамическое тестирование? 24. Что такое «парадокс пестицида»? 25. Опишите основные фазы STLC? Дайте определение Entry и Exit Criteria. 26. Что такое Bug, Error, Failure, Fault? 27. Какие есть атрибуты баг-репорта? Какие основные поля для заполнения? 28. Какова разница между приоритетом и серьезностью? 29. Приведите примеры серьезного, но не приоритетного бага. 30. В чем разница между валидацией и верификацией? 31. Зачем нужна тестовая документация? Какие её виды? 32. Что такое тест-план? Какие элементы у него есть? 33. Какую обязательную информацию должен содержать тест-план? Как правильно его использовать, поддерживать и нужен ли он вообще для большинства проектов? 34. Какая разница между чеклистом и тест-кейсами? 35. Приведите пример хорошего тест-кейса.   Ответы на некоторые из этих вопросов вы можете найти в видео курсе QA Стартовый (урок 1, урок 3, урок 4, урок 5), Основы тестирования (урок 6), Основы тестирования ПО (урок 1-5), а также в вебинаре “QA практикум. Техники тест дизайна” (часть 1 и часть 2).   AQA (Automation QA)   Программирование 36. Что такое ООП? Назовите его принципы с примерами? 37. Что такое интерфейс? Что такое абстрактный класс? Чем они отличаются? 38. Что такое SOLID? Приведите примеры. 39. Что такое DRY, KISS, YAGNI? 40. Какие паттерны GOF вам известны? Приведите примеры их использования. 41. Что такое PageObject и PageFactory? 42. Какая иерархия Collections? 43. Какая разница между Thread class и Runnable interface? 44. Какая разница между String, Stringbuffer и Stringbuilder? 45. Разница между final, finally и finalize?   Selenium 46. ​​Что такое Selenium и зачем его используют? 47. Что такое драйвер браузера? 48. Какие виды локаторов страницы существуют? Каковы их преимущества и недостатки? 49. Что такое Selenium Waits? Какие есть и чем отличаются? 50. Какие exceptions может бросить Selenium? Что они означают и как их обрабатывать? 51. Для чего используют JavaScriptExecutor? Приведите примеры. 52. Что такое Selenium Grid? 53. Какие способы click и send keys Selenium? 54. Как вы запускаете параллельное выполнение тестов? Что такое ThreadLocal? 55. Какая разница между Action и Actions? 56. Как написать метод isElementPresent? 57. Как вычитать данные из динамической веб-таблицы? 58. Можете ли вы назвать 10 интерфейсов в Selenium? 59. Назовите два способа, позволяющих автоматизировать капчу. 60. Вспомните типы навигационных команд Selenium. 61. Как найти поврежденные ссылки в Selenium WebDriver? 62. Какую технику следует рассмотреть, используя весь сценарий, если «нет ни frame id, ни frame name»?   Ответы на некоторые из этих вопросов вы можете найти в видео курсах Web Testing Automation on Java (урок 1), Автоматизация тестирования мобильных приложений (урок 5), а также в вебинаре “Selenoid или Selenium Grid — что лучше?”.   TestNG/JUnit 63. Для чего нужны TestNG/JUnit? 64. Какие инструкции используются в TestNG/JUnit? 65. Какие assertions есть в TestNG/JUnit? 66. Как выполнять тесты параллельно TestNG/JUnit?   Ответы на некоторые из этих вопросов вы можете найти в видео курсе Web Testing Automation on Java (урок 4).   Git 67. Для чего используют системы контроля версий? 68. Что такое Git? Каков принцип его работы? 69. Что такое commits, branches в Git? 70. Для чего нужны GitHub, GitLab и другие, базирующиеся на Git, вебхостинги проектов?   Ответы на некоторые из этих вопросов вы можете найти в видео курсе Основы работы с Git.   CI 71. Что такое CI? 72. Как автоматическое тестирование интегрируется в CI? 73. Как настроить Job или Pipeline на знакомом вам CI-инструменте? 74. Какие инструменты для генерации репорта после выполнения автоматических тестов вы знаете? 75. Какую информацию должен содержать отчет о выполнении автоматических тестов?   Ответы на некоторые из этих вопросов вы можете найти в видео курсе Web Testing (урок 4).   Web 76. Что такое клиент-серверная архитектура? 77. Что может выступать в роли клиента? 78. Что такое REST API, SOAP? В чем разница? 79. Какие протоколы передачи данных знаете? 80. Какие способы взаимодействия с API существуют? В чем разница между ними? 81. Как можно протестировать API, что там нужно проверять? 82. Как расшифровывается CRUD? 83. Чем отличается GET от POST? 84. Какие отличия между XML и JSON? 85. Какие знаете форматы передачи данных? 86. Как происходит шифрование? 87. Какие бывают виды баз данных? 88. Охарактеризуйте каждый класс status code (1хх; 2xx; 3xx; 4xx; 5xx). 89. Какие есть HTTP-методы? 90. Какие знаете Web elements? 91. Какие браузеры знаете? В чем их отличие? 92. Для чего необходимы инструменты разработчика в браузере (Chrome DevTools) и как они помогают в тестировании. 93. Что такое кэш? 94. Что такое сессия? 95. Зачем нужны cookies? 96. Что такое фрейм? 97. Что такое HTML/CSS/JavaScript? 98. Какую структуру имеет веб-страница? 99. Зачем чистить кэш? 100. Какие виды тестирования можно применить только к Web? 101. Для чего в веб-страницах используют JavaScript? 102. Что такое REST? 103. Что такое AJAX?   Ответы на некоторые из этих вопросов вы можете найти в видео курсах QA Стартовый (урок 6), Web Testing, SQL Базовый.   Mobile 104. Какие мобильные платформы существуют? 105. Какие версии Android и iOS используются на рынке (минимальные и максимальные)? 106. Какие версии Android нужно тестировать, если заказчик сказал поддерживать с версии 5.0? 107. Назовите типы мобильных приложений. 108. Каков формат файлов сборок приложений для Android и iOS? 109. Что такое ADB? 110. Как снять логи с AOS/IOS? 111. Что нужно проверять при использовании сканера отпечатка/Face ID? 112. Как я могу запускать тесты Android без Appium? 113. Объясните концепцию дизайна Appium.   Ответы на некоторые из этих вопросов вы можете найти в видео курсе Автоматизация тестирования мобильных приложений.   Практические задания 114. Написать чеклист для функционала корзины в интернет-магазине. 115. Написать тестовые наборы данных для поля ввода даты, которое отсеивает пользователей в возрасте до 18 лет. 116. Написать чеклист тестирования формы ввода данных платежной карты. 117. Протестовать «предмет» относительно различных видов тестирования. (Предмет - лифт, карандаш, калькулятор и т. д.) 118. Есть Input поле, принимающее целые значения от 18 до 99 включительно. Надо протестировать с помощью техники тест-дизайна Boundary Values ​​Analysis и Equivalence Partitioning. 119. Есть веб-страница с полями: e-mail, password и кнопкой submit. Необходимо привести примеры отрицательных тест-кейсов, которыми можно проверить эту страницу. 120. Привести примеры тест-кейсов для функционала, находящегося на нескольких страницах проекта (например, поле поиска). 121. Как протестировать процесс оплаты в интернет-магазине? 122. Как протестировать сломанный тостер? 123. Объясните для 7-летнего ребенка, что такое база данных. 124. Определите необходимое количество функциональных тест-кейсов, чтобы проверить Log in форму. 125. Есть форма регистрации в веб-приложении с полями (first name, last name, username, password, repeat password) и кнопкой Register. Какие проверки нужно провести? 126. Поле username должно быть обязательным, но оно не является обязательным. Приведите пример баг-репорта, созданного для этой ошибки. 127. Как бы вы провели smoke-testing для приложения типа Telegram? 133. Как будет выглядеть баг-репорт, если, к примеру, не работает электрический чайник? 128. Есть таблица books с полями: name, price, page_count. Следует выбрать все имена книг, в которых price более 10 единиц и количество страниц от 20 до 100. 129. У вас есть функционал калькулятора, который доступен через веб-браузер по ссылке. Он имеет только функцию делить, так сказать, MVP-версию. Диапазоны для вписывания в числитель и делитель от 0,1 до 99,9. Вывод значения происходит автоматически, потому что front-end реализован на React JS. Как вы будете тестировать этот функционал? Какие виды тестирования примените? Какие техники тест-дизайна используете?     130. Задание на работу с SQL.   извлечь номер телефона и адрес пользователя Muzik. Извлечь данные о пользователях, имеющих сумму заказа более 2000 грн. Подсчитать количество заказов в таблице и общую сумму сделанных заказов.     131. Ваша компания разрабатывает программное обеспечение для медицинских систем, и вы тестируете компонент, управляющий дефибриллятором сердца. Вы заметили, что одно решение в тестовом модуле состоит из 34 независимых атомарных условий. Какой метод тестирования белого ящика следует выбрать для этого и почему? 132. Оздоровительная программа для сотрудников совмещена с оплатой медицинского страхования и имеет следующие правила:   сотрудники, потребляющие 17 единиц или менее алкоголя в неделю, получают $28 скидки на оплату. Для сотрудников, которые заполнят «Оценку риска для здоровья», оплата уменьшается на $23. Сотрудники, участвующие в ежегодном контроле за состоянием здоровья в компании: получат скидку на $50 за то, что имеют индекс массы тела (ИМТ) 25,5 или менее, и $19 скидки при ИМТ ниже 30. Некурящие получают дополнительную скидку на $46. Курильщики, присоединившиеся к курсу отказа от курения, получают скидку в $24. Курильщики, не присоединившиеся к курсу отказа от курения, оплачивают дополнительно $75.   133. Используя технику классов эквивалентности, сколько тестов нужно написать, чтобы покрыть вышеупомянутые условия на 100%? 134. Какое минимальное количество тестов необходимо для покрытия следующих условий автогражданки:   лица до 18 лет не застраховываются. Для мужчин на красном авто прибавляется +15% к стоимости полиса. Для женщин от 18 до 64 лет страховая премия 1000 грн. Для мужчин от 18 до 64 лет страховая премия 1200 грн. Для лиц старше 64 лет страховая премия 1800 грн.   135. Напишите сценарии автоматического тестирования для сортировки по цене и добавлению товара в корзину на сайте. К вашим тестам добавьте документацию с настройками и разместите ваше решение на GitHub.   Middle   Теория 1. Назовите обязанности QA? 2. Что знаете о тестировании нагрузки? В каком случае следует проводить такое тестирование? На каком этапе готовности продукта? 3. Что такое таблица решений/decision table и как её можно использовать? 4. Что может быть критериями запуска и завершения тестирования? 5. Расскажите о вариантах интегрирования тестовой документации в проект, инструментах для работы с ней. 6. Как организовать сквозное тестирование (e2e)? 7. Какие тест-кейсы можно сдать для тестирования баз данных? 8. Приведите примеры подходов для тестирования локализации. 9. Что такое A/B тестирование? 10. Что такое mock/stub? Какие знаете инструменты для работы с ними? 11. Когда нужно использовать технику Pairwise? 12. Что такое fuzz-тестирование и где его используют? 13. Что такое REgexp? 14. Как меняется стоимость дефекта при тестировании программного обеспечения? 15. Каковы пути анализа бизнеса клиента? Как определить целесообразность того или иного функционала? 16. Назовите последовательность выполнения CI/CD процесса на проекте. 17. Какое должно быть процентное соотношение между положительным и отрицательным тестированием на проекте? 18. Какой вид тестирования целесообразнее проводить до релиза? 19. Есть ли разница между bug leakage и bug release? 20. Может ли быть ситуация, когда критерии завершения (exit criteria) не выполнены? Что должно происходить в этом случае? 21. Что мы действительно должны покрывать тест-кейсами, а что считается избыточным расходом времени и денег? Когда нецелесообразно писать тест-кейсы? 22. Для какого функционала труднее всего написать тест-кейсы? 23. Как посчитать Cyclomatic complexity? 24. В чем основная разница между defect detection percentage и defect removal efficiency? 25. Какие модели risk-based testing вы знаете? 26. Что такое тестирование API? Какими инструментами пользуются для его выполнения? 27. Что такое performance testing? Какими инструментами пользуются для его выполнения? 28. Что такое load и stress testing? Какими инструментами пользуются для их выполнения? 29. Что такое contract testing? 30. Какая разница между Scrum и Kanban? 31. Расскажите о ритуалах, ценностях и ролях в Scrum. 32. Как выбор методологии может повлиять на качество разработки? 33. Нулевой спринт в Scrum. Для тестирования есть задание под названием «Настройка среды». Что здесь нужно выполнять?   Ответы на некоторые из этих вопросов вы можете найти в видео курсах Web Testing, QA Стартовый, “Методология управления проектами. Вступление в SCRUM”.   AQA   Selenium 34. Расскажите, как вы будете строить и внедрять стратегию по автоматизации тестирования. 35. Как взаимодействуют клиентская библиотека Selenium, драйвер браузера и сам браузер? 36. Для чего используют browser capabilities, arguments и options? 37. Что такое iframe и как с ним работать в Selenium? 38. Как обрабатывать браузерные сообщения (alerts)? 39. Что такое Appium? 40. Что такое Electron-based applications? Как использовать Selenium и Appium для их тестирования? 41. Как взаимодействовать с запросами, отправляемыми из браузера? 42. Как взаимодействовать с cookies, LocalStorage и SessionStorage?   Ответы на некоторые из этих вопросов вы можете найти в видео курсе Web Testing Automation on Java (урок 1) и Автоматизация тестирования мобильных приложений.   Тестовая инфраструктура 43. Что такое и чем отличаются виртуальная машина, симулятор и эмулятор? 44. Что такое контейнер и чем он отличается от виртуальной машины? 45. Как используют виртуальные машины и контейнеры в автоматизации? 46. ​​Что такое IaaS и PaaS? Приведите примеры. 47. Что такое Configuration Management? 48. Что такое Provisioning? 49. Какие команды Linux Shell вам известны? Как с помощью команд Linux Shell найти лог-файл и строчку с ошибкой в ​​файле? 50. Какие команды Windows CMD вам известны? Как с помощью команд Windows CMD найти IP-адрес машины? 51. Что такое SSH и как им пользоваться? 52. Что такое bash и batch скрипты? Зачем их используют?   Web 53. Какая разница между авторизацией и аутентификацией? 54. Как происходит авторизация на сервере? 55. Какие статус-коды ошибок бывают? Может ли сервер отправить код 400, если проблема на его стороне? 56. Как выполнить Debug страницы в браузере? 57. Как протестировать адаптивную верстку? 58. Что такое WebSocket и как проверить обрыв соединения? 59. Каковы есть основные виды уязвимости веб-приложений? 60. Какие инструменты для тестирования Web performance client-side знаете? 61. Какова разница между методами GET и POST? 62. Какая разница между методами PUT и PATCH? 63. Какие знаете сниферы? 64. Какова разница между DROP и TRUNCATE? 65. Что такое case function? 66. Что такое collation? 67. Что такое схема GraphQL? 68. Объясните разницу между OLTP и OLAP. 69. Вспомните разные типы репликации в SQL Server? 70. Что вы понимаете под Self Join? Приведите примеры. 71. Что такое cursor и как им пользоваться?   Ответы на некоторые из этих вопросов вы можете найти в видео курсах Web Testing Automation on Java, SQL Базовый.   Mobile 72. Что основное нужно проверить при тестировании мобильного приложения? 73. Что такое Manifest.xml в .apk файле и какие данные там указывают? 74. Что такое режим разработчика Do not keep activities? 75. Как происходит перехват трафика http/https для мобильных устройств? 76. В каком виде хранятся данные в мобильных приложениях локально? 77. Как тестировать миграцию локальных данных? 78. Каковы основные компоненты Android-приложений (активити / фрагмент / сервис / интент-фильтр)? 79. Опишите жизненный цикл активити. 80. Что такое утечки памяти? Как найти? 81. Как протестировать билд на Android? 82. Что такое Testflight? Как тестировать с его помощью? 83. Как работает Android? Какая у него архитектура? 84. Как происходит деплой программ IOS/AOS?   Ответы на некоторые из этих вопросов вы можете найти в видео курсе Автоматизация тестирования мобильных приложений.   Практические задания 85. Что делать, если разработчик не соглашается, что указанный баг действительно является багом? А если в требованиях использована неоднозначная формулировка? Если бизнес-аналитик, PM и представитель клиента сейчас недоступны, чтобы подсказать? Как можно предотвратить такую ​​ситуацию? 86. Сложилась ситуация, когда команда тестирования не успевает закончить свою работу в дедлайн. Как правильно действовать в этом случае? А если релиз передвинуть нельзя? А если никакие фичи из релиза забрать нельзя? 87. Что делать, если проект уже начался, а QA-инженер там начал работать только когда начали разрабатываться бизнес-фичи? Какие этапы тестирования теперь нужно наверстать и нужно ли это? Как это сделать максимально грамотно без ущерба для загрузки по тестированию новых фич? Какие риски имеет позднее вовлечение QA-инженера в разработку? 88. Веб-страница с полями e-mail, password и кнопкой submit. Назовите отрицательные тест-кейсы, по которым можно проверить эту страницу. 89. Предположим, что после нажатия кнопки submit страница перезагружается и ранее введенные данные исчезают. Как проверить, что информация отправлена ​​в базу данных? 90. Как проверить, что данные отправились на сервер, если у нас нет доступа к бэкенду? 91. Приведите примеры улучшений для приведенной веб-страницы (любая на выбор). 92. Составить Smoke Test Suite для DOU.ua. 93. Протестовать функционал банкомата с помощью техники State Transition Diagram. 95. Написать предельные значения для ввода в форму оплаты товара на сайте. 96. Есть метод POST, который регистрирует нового пользователя на сайте, есть тело запроса, содержащее данные о почте, телефоне, имени пользователя и адресе проживания. Какие кейсы для проверки можете привести? 97. На что следует акцентировать внимание при автоматизации методов API? Что следует проверять? 98. Вы тестируете логин-форму, вводите логин и пароль, нажимаете кнопку логин и ничего не происходит. Ваши действия? 99. В течение 5 минут найдите и опишите дефекты, которые вы видите:     100. Вам нужно сделать Regression Testing за два дня. Как вы это сделаете, если Regression Run охватывает 1000 тест-кейсов? 101. Вы тестируете интернет-магазин, который продаёт карандаши. В заказе нужно указать количество карандашей (максимум для заказа – 1000 штук). В зависимости от заказанного количества карандашей отличается цена:   1–100 – 10 грн за шт. 101-200 – 9 грн за шт. 201-300 – 8 грн за шт.   С каждой новой сотней цена уменьшается на 1 гривну. Задание: используя тест-дизайн, опишите все необходимые тест-кейсы, которые будут максимально покрывать описанную функциональность.   102. Есть приложение типа мессенджера, пользователь заходит в чат и отсылает файл (видит сообщение Failed to send...) Когда это может быть баг, а когда нет? 103. Есть веб-приложение интернет-магазина (регистрация, логин, поиск товаров, корзина и покупки). Программу поддерживают следующие браузеры: Chrome, Safari, Edge. У нас есть ограниченное время на тестирование. Расскажите, как вы будете проверять приложение? 104. Напишите автоматические тестовые сценарии для проверки API операций создания и просмотра GitHub Gists. Интегрируйте ваш проект с известной вам CI-системой.   Senior   Теория 1. Как вы преодолеете трудности из-за отсутствия надлежащей документации для тестирования? 2. Какой подход является наилучшим для старта QA в проекте? 3. Какие препятствия могут возникнуть в обеспечении качества для Agile Tester? 4. Что такое Definition of Done? 5. Когда можно считать, что тестирование окончено? 6. Что такое RCA в тестировании? Нужно ли его проводить? 7. Какой подход вы используете для Test Cases Review? 8. Какие виды рисков существуют? Что такое Mitigation Plan? 9. На основе чего нужно составлять стратегию для проведения тестирования нагрузки? 10. Как часто следует ревьюировать тестовую документацию? 11. Как можно быстро сделать выборку необходимых проверок для смоук-тестирования? 12. Как запланировать загруженность команды тестировщиков? 13. Какую ценность несет анализ результатов тестирования команде и проекту в целом? 14. Как можно подкорректировать флоу разработки, чтобы получать более чистые результаты на выходе и уменьшить количество багов на проде? 15. Расскажите о метриках качества, которые вы применяли. Зачем они нужны? 16. Как провести эстимейт задачи? Каковы техники оценки объема тестирования существуют? 17. Как можно посчитать покрытие тестами функционала? 18. Какое оптимальное количество шагов в тестовом сценарии? 19. Как избежать появления регрессивных дефектов? 20. Что такое тестирование со смещением влево (Shift left testing)? 21. Как будете тестировать программу, если для продукта нет документации? 22. В чем смысл юнит-тестов? 23. Какие минусы полной автоматизации тестирования? 24. Что такое ROI и как его считать? 25. Что такое CI/CD? Какие плюсы и минусы этого подхода? 26. TOP OWASP: какие знаете уязвимости и методы защиты? 27. Что вы думаете по поводу BDD? Когда следует использовать, а когда будет только хуже? Если все же следует использовать, то для UI или API автоматизированного тестирования? 28. Что такое сокеты и как их тестировать, вручную и автоматизировано? Зачем их используют? 29. Когда следует делать стресс-тестирование на проектах? От чего отталкиваться, когда строите сценарий для такого тестирования? Что учесть при выборе инструмента? 30. Расскажите об алгоритмах шифрования трафика. 31. Что такое NIC? 32. Для чего нужен протокол RTP? 33. Что, по вашему мнению, лучше – SIP или PRI? 34. Что такое NAT?     Практические задания 35. Сформулируйте негативные сценарии для POST-запроса, который создаёт нового пользователя. 36. Как вы регулируете конфликтные ситуации между QA и разработчиками? 37. Есть проект, на котором нет тестовой документации, но проекту уже год. Мануальным QA не хватает времени на тестирование, они очень устали, есть желание уволиться. Какое решение по команде можно принять? 38. Продайте мне тестирование как клиенту, не желающему его покупать. Кратко и структурированно опишите вашу работу на каждом из этапов разработки ПО, используя профессиональные термины (не лить воду). 39. У вас есть онлайн-калькулятор. Вы вводите 1+1 и получаете 3. Расскажите, как вы будете искать причину проблемы. 40. Могут ли быть такие виды архитектур? Чего может быть недостаточно для правильной работы архитектур, приведенных ниже?   Пример 1     Пример 2     Пример 3     Пример 4   Вопросы при выполнении этого задания:   какие запросы выполняются по форме авторизации? Какой запрос выполняется, когда мы сохраняем данные в базе данных? Можно ли авторизоваться с помощью GET-запроса и нормально ли так делать? Какой код ответа мы получаем при падении ошибки на сервере, код при ошибочных credentials на форме авторизации? Можно ли заменить SSL-сертификат шифрованием данных в пакете от клиента к серверу для протокола HTTP или это будет равноценной заменой?   41. Есть веб-страница с полями e-mail, password и кнопкой submit. Предположим, что после нажатия кнопки submit страница перезагружается и ранее введенные данные исчезают. Как проверить, что данные отправлены в базу данных? 42. Какое минимальное количество тест-кейсов необходимо, чтобы убедиться в корректной работе этой веб-страницы? 43. Как проверить безопасность на веб-странице (на выбор)?   Редакция DOU.ua выражает благодарность за вопросы и рецензию: Роману Поботину, Андрею Заблоцкому, Виктору Максименко, Марьяне Батюк, Ирине Литвин, Сергею Могилевскому, Святославу Логину, Роману Маринскому, Олегу Заревичу, Олесе Паславской, Тарасу Лирке, Максиму Богуну, Вадиму Гуличу, Виталию Кашубе, Юрию Суравскому, Светлане Франковой, Владимиру Арутину, Станиславу Жупинасу, Людмиле Федчук, Иванне Черухе, Юлии Левченко, Владиславу Куличенко, Юрию Бояру.
Введення в розробку програм під iOS. Частина 0.

Автор: Volodymyr Bozhek

Здравствуйте, дорогие читатели. Меня зовут Владимир. Любая технология рано или поздно приедается и рост себя как специалиста затрудняется. Было принято решение что то кардинально поменять в своей жизни. А так как писать различные интересные проекты я просто обожаю, было принято решение начать изучение в корне другой платформы, среды разработки и языка программирования. Поиск этой платформы оказался достаточно прост для меня. Я решил, что это будет мобильная платформа. У меня было много разных телефонов с разными операционными системами. Но свой выбор я сделал в пользу iOS, так как при железе слабее, чем у других телефонов, софт работает намного быстрее, чем на других платформах. Это не все преимущества этой платформы, но о других я рассказывать я не буду, дабы не раздувать дискуссию на эту тему. Скажу лишь одно, что телефон c iOS меня ни разу не подвел, даже в самые нужные моменты. Разумеется, что для разработки под iOS необходим mac, и я его купил. Перед покупкой, разумеется, пробовал разработку под мобильные платформы в гибридных платформах типа Xamarin, Ionic, но на то время функционал в них был не так совершенен, как сейчас, да и пользуясь ими, я бы остался на платформе Windows, это нарушало цель, которую я перед собой поставил по поводу другой платформы. В течение отпуска, где то за месяц я разобрался, как писать под iOS приложения и сразу начал искать проект, на котором смогу потренироваться. Друг предложил такой проект и я взялся. За 9 месяцев написал серьезное приложение, купил учетную запись разработчика, выкладывал сборки на Test Flight, их тестировали тестировщики, прошел валидацию в App Store и выложил приложение в App Store. А теперь по сути. Я постараюсь написать серию статей, в которых распишу простым языком, что надо делать, чтобы у вас тоже это получилось и вы таки выложили свое приложение в App Store. Касаемо разработки под iOS, то это просто мое хобби во вне рабочее время (надо же как то развлекаться), основной хлеб приносит разработка под Windows/Web платформу с технологиями Microsoft. Итак, приступим. Включите свой мак, найдите на панели задач иконку App Store и нажмите на нее. Выглядит эта иконка вот так: Затем введите в поле поиска, текст “xcode”, вы должны увидеть следующее:  У меня Xcode уже установлен, поэтому на скриншоте отображается кнопка “Open”, у вас будет отображаться кнопка “Install”. Установите Xcode себе на компьютер, версия Xcode с которой мы будет работать с вами в этом примере, будет 8, на текущий момент это последняя версия этой среды разработки. Язык программирования, который мы будем использовать, называется Swift, по синтаксису он больше похож на JavaScript и где-то даже на C# местами. Синтаксис языка Swift в этих статьях мы разбирать не будем, в сети интернет есть полно руководств на эту тему. Сам синтаксис языка не сложно изучить, это делается за день, сложность как раз возникнет при попытке разработки приложения под iOS. Вот именно эту сложность, мы с вами и постараемся одолеть. Чтобы серия статей была как-то взаимосвязана, мы с вами напишем проект под названием “Warehouse” (склад), в котором можно будет добавлять товары, заполнять их атрибуты, редактировать и удалять товары. Данные будут сохраняться в настройки телефона. Вы уже установили Xcode 8? Если да, тогда запускайте его, вы увидите следующее: Нажмите кнопку “Create a new Xcode project”. Вы увидите такой экран:  Выделите проект “Single View Application” и нажмите кнопку “Next”. Вы попадете на экран задания названия проекта: На данном скриншоте виден пример того, как заполнить название приложения. В поле “Product Name“, введите “Warehouse”, так будет называться наше приложение. В поле “Organization Name”, введите свои имя и фамилию, или название вашей компании. В поле “Organization Identifier”, вводится уникальный идентификатор приложения, который будет использоваться как ключ при регистрации данного приложения в iTunes, чтобы была возможность подписывать сборки и отправлять на бета сервер Test Flight для тестирования, но об этом позже. Вкратце “com” - это сокращенно “company”, “bozhek” это название компании, у вас это будет другое название. В поле Bundle identifier видно полное название вашего приложения в iTunes. В поле Language, оставьте Swift. В поле Devices, выберите iPhone. Нажмите кнопку “Next”. Откроется проект, который мы создали: Обратите внимание на красный кружок в поле Status: “Signing for Warehouse reguires a development team”. Это сообщение говорит нам о том, что приложение надо подписать сертификатом, без сертификата мы не соберем и не запустим это приложение. Давайте это исправим. В поле Team, откройте выпадающий список и выберите в нем пункт “Add an Account...”, откроются свойства среды разработки Xcode, с предложением ввести логин и пароль от  вашей учетной записи в App Store, под которой вы устанавливаете приложения себе на телефон: Если же у вас по каким то причинам нет этой учетной записи, создайте ее, нажав на кнопку “Create Apple ID”. Создание этой учетной записи я не буду рассматривать в данной статье, поскольку она создается очень легко и в сети интернет есть полно информации на эту тему. Итак, вы ввели в поля Apple ID и Password свои данные, нажмите кнопку “Sign In”. После этого красный круг с ошибкой пропадет и вы увидите следующее: Теперь вы сможете собрать и запустить свой проект. Заметьте, я рассказываю чисто практически как и что делается, особо не вникая в детали. Если вам нужна более подробная информация, вбейте в гугл WWDC, и посмотрите официальные видео сессии от компании Apple, в их двухчасовом видео много воды, но зато есть теория, которая будет вам нужна. Я даю только суть. Нажмите на иконку приложения в проекте: Выберите симулятор “iPhone 7”. Затем нажмите на кнопку Собрать и запустить приложение: Будет запущена сборка проекта и запущен симулятор “iPhone 7”, в котором откроется наше приложение: Сейчас мы видим только белый экран и больше ничего, так как мы еще ничего не делали. Чтобы выйти на рабочий стол в симуляторе, выполните сочетание клавиш Shift + Command + H, это сочетание означает нажатие кнопки Home: Вы увидите на рабочем столе наше приложение "Warehouse". Теперь давайте остановим выполнение приложения, для этого в Xcode нажмите кнопку: Теперь давайте посмотрим, что у нас есть внутри проекта. Выделите в левой панели среды разработки файл “Main.storyboard”, в этом файле содержится представление приложения. В панели справа отображаются свойства представления. Разработка под iOS строится через паттерн MVC (Model View Controller), файл Main.storyboard, содержит View, которые вы будете использовать в своем приложении для создания визуального  интерфейса. Теперь давайте выделим в панели свойств вкладку Class: В поле Class , мы видим класс контроллера, привязанный к данному представлению. Теперь выделите вкладку Size: На данной вкладке задаются размеры представления. Выделите вкладку Events: На данной вкладке задаются обработчики событий в представлении с привязкой к методам в контроллере. Теперь выберите в левой панели файл ViewController.swift : На 9 строке подключено пространство имен UIKit. На 11 строке объявляется класс с именем ViewController, который наследуется от базового класса контроллера UIViewController. На 13 строке мы переопределяем метод, загрузки представления, этот метод вызывается когда представление начинает свою загрузку. В этом методе необходимо предварительно проинициализировать данные элементов управления, используемых на вашем представлении. На строке 14, вызывается метод базового класса ViewController. Код на строке 18 нам пока не интересен, мы его рассматривать не будем, чтобы не путаться. На этом урок завершается. На следующем уроке, в первой части, мы рассмотрим с вами, как пользоваться элементами управления, как привязывать к ним обработчики событий и как взаимодействовать с ними.
Як не здатися і все ж таки стати програмістом?

Автор: Дмитро Хорошилов

Вы день и ночь в поте лица изучаете синтаксис, фреймворки, решаете задачи, посещаете курсы, смотрите видеоуроки, читаете книги, но все никак не можете сдвинуться с мертвой точки — наконец-то начать программировать самостоятельно или найти первую работу. Вы раз за разом открывает IDE, чтобы начать писать код, но потом откладываете это занятие. Потому что в данный момент вам меньше всего хочется писать код. И вы по пятому кругу читаете посты на фейсбуке, смотрите видео с котиками и глупые гифки. Вам начинает казаться, что изучать программирование - это не ваше. Вы в очередной раз открываете важную и сложную книгу по программированию, но, как бы вы не пытались сосредоточиться, информация не откладывается в памяти. Более того, постоянно приходится по несколько раз перечитывать предложение за предложением, чтобы хоть немного понять, о чем речь. Знакомо? Иногда, особенно в процессе изучения чего-то нового и сложного, ваш мозг начинает играть с вами в каверзные игры. Он всеми силами пытается сопротивляться обучению, вгоняя вас в состояние прокрастинации и ступора. Самым неверным в сложившейся ситуации будет сдаться и отдаться во власть отчаяния. В этом материале мы поговорим с вами, как справиться с прокрастинацией, как заставить мозг учиться и как в конечном итоге получить желаемую работу, влиться в среду профессиональных разработчиков. Что такое прокрастинация? На самом деле, прокрастинация — это привычка. Вы шаблонно реагируете на какой-то раздражитель, когда вам следует заниматься тем, чем вы не хотите. Как следствие, вы пытаетесь отложить «нелюбимое» дело в долгий ящик и придумываете какие угодно дела взамен, лишь бы не делать что-то важное. Но то, что приносит удовольствие на короткое время, не всегда полезно в долгосрочной перспективе. Благо, с прокрастинацией можно бороться, как и с любой другой плохой привычкой. Как бороться с прокрастинацией? Вот несколько советов, что стоит делать и на что необходимо обращаться внимание: - Не тратьте силу воли на борьбу с прокрастинацией. Потому что это настолько же безрезультатно, как и бороться с пятиголовым драконом без специального оружия. Вы будете отрезать голову и усилием воли заставлять себя учиться, то есть тратить много сил, а голова будет опять вырастать. В итоге, вы в какой-то момент просто бросите эту затею и уйдете с поля битвы. - Не оставляйте все на последнюю минуту. Представьте спортстмена, который начинает тренироваться за два дня до забега. Как думаете, как он будет себя чувствовать и  в каком состоянии будут его мышцы, если он будет заниматься два дня по 10 часов каждый, вместо 2-х месяцев по часу? Как думаете, после такого у него будут шансы пробежать марафон? Очевидно, что нет. Как и с мышцами, мозг необходимо тренировать постепенно, понемногу, но постоянно. Лучше учитесь по 20 минут, но на протяжении 10 дней, чем по 10 часов, но на протяжении двух дней. - Делайте перерывы во время учебы. Да, позволяйте себе отдыхать и хорошо высыпаться. Не зубрите дни и ночи на пролет. Подолгу сидя над учебой, вы не усвоите больше. Благодаря небольшим передышкам, наш мозг получает возможность «переварить» полученную информацию. - Не откладывайте на потом. Чем на дольше откладываем, тем больше всего нам надо изучить. А значит, тем страшнее и больнее нам этим заняться. Парадоксально, но факт, чем лучше вы овладеваете каким-то навыком, тем больше вам нравится им заниматься. - «Коллективная мудрость». Не бойтесь обращаться за советом к коллегам, другим студентам. Если вы занимаетесь в одиночку, найдите обязательно себе ментора, к которому сможете обращаться за советом в моменты ступора. Если у вас нет возможности найти наставника, сходите на курсы. Старайтесь больше задавать вопросов, даже если они вам кажутся чрезвычайно глупыми. - Ориентируйтесь на процесс, а не на результат. Очень часто мы зацикливаемся на результате. И если он не достигнут, нас посещают мысли, отзывающиеся болью в мозгу, провоцируя нас прокрастинировать. Например, мы думаем: чтобы найти свою первую работу, так много еще надо всего выучить. Отпустите эти мысли, лучше сосредоточьтесь на процессе: я учу, я пишу, я делаю. И вы не заметите, как в скором времени скажете: я работаю. В этой части мы поговорили с вами о том, как лучше учиться, как бороться с ужасной и неукротимой прокрастинацией. Когда прокрастинация побеждена Теперь я бы хотел дать несколько рекомендаций о том, что делать, когда вы победите своего змея. Как только вы научитесь держать себя под контролем, ваши дела заметно пойдут вверх. Вы будете все больше получать удовольствия от процесса получения и практического применения новых знаний. В какой-то момент вам покажется, что вы готовы начать работать. Чтобы опять не попасться в капкан прокрастинации, поставьте себе цель и придумайте мотивацию. Например, цель: я найду первую работу за 3 месяца. Обязательно спланируйте, какие шаги вы будете предпринимать для того, чтобы найти работу: - напишу хорошее резюме на двух языках, - буду отслеживать вакансии и реагировать на них, - составлю список компаний, которые подходят мне по профилю — разошлю им резюме с мотивационным письмом, - начну готовиться к собеседованиям: подтягивать теоретические знания, подготовлю свое первое программистское «портфолио». А вот мотивация — это очень индивидуально, но обязательно важно. Найдите что-то свое: деньги, отдых, друзья, любимые, покупки и т.д. Надеюсь, теперь, когда вы знаете, что такое прокрастинация и как с ней бороться, вам станет намного проще двигаться по намеченному вами пути и не сбиваться с него. Главное, помните, что отдых тоже полезен. Борясь со своими чертиками, не забывайте хорошо высыпаться (это самое главное условие для хорошего усваивания знаний), отвлекаться, например, заниматься спортом, хорошо и вкусно питаться. Я уверен, что следуя этим полезным советам, вы очень скоро добьетесь успеха!
Як стати Java розробником у 2021

Автор: Максим Федосов

<p>В вебинаре мы будем говорить о том, как начать&nbsp; свой путь в качестве Java разработчика - от новичка без опыта в программировании до уровня специалиста, востребованного на рынке.</p> <p>В вебинаре будут рассмотрены две стороны:</p> <ul> <li><strong>Что учить</strong> &ndash; автор поделится своим виденьем того, что нужно учить в первую очередь как базу, что нужно осваивать на этапе поиска первой работы, и что нужно доучивать, когда специалист уже работает ( на примере Java Enterprise стэка).</li> <li><strong>Как искать работу</strong> - со стороны построения карьеры речь пойдет о том, какие пути можно выбрать для построения карьеры, о рынке с точки зрения работодателя, курсов, соискателей. Какой проект лучше выбрать, как часто менять работу, как развивать свою карьеру.</li> </ul> <p>Весь вебинар будет разделен на 2 части - до первой работы и во время работы. В результате у начинающих специалистов появится конкретный план действий для того, чтобы начать карьеру, а у работающих специалистов появится понимание того, как расти дальше.</p> <p><strong>План вебинара:</strong></p> <p>1) Знакомство, немного о себе и своем пути в IT сфере.</p> <p><strong>2) Что нужно учить начинающему Java</strong><strong> разработчику</strong></p> <ul> <li>Подготовка к смене или обретению профессии. Настройка рабочего окружения, английский язык, выбор стратегии, университет, курсы, самостоятельное обучение, ментор, книги, практика.</li> <li>От общего к частному. Стандартная схема работы приложений в энтерпрайз.</li> <li>Hello World application. Один из ключевых шагов для изучения новых технологий.</li> <li>Базовый синтаксис. Примитивные переменные, операторы, циклы, условия и все с чем мы работаем примерно с 1950 года.</li> <li>Объектно-ориентированное программирование (ООП). Основные принципы ООП (наследование, полиморфизм, инкапсуляция, абстракция) их проявления в коде, класс Object и его методы, понятия &ldquo;класс&rdquo;, &ldquo;конструктор&rdquo;, &ldquo;метод&rdquo;, &ldquo;объект&rdquo;, сигнатура метода.&nbsp;</li> <li>Объекты, хранящие значение. Класс String. Его методы, неизменяемость, String pool. Другие обертки над примитивами.</li> <li>Множества в Java. Arrays (Массивы) Collections (Коллекции) и Maps (Карты). Иерархия Collection, иерархия Map. Множества, которые используются постоянно и о которых спрашивают на собеседованиях и те, о существовании которых просто достаточно знать . Отличия ArrayList от LinkedList. HashMap от HashSet. Array от ArrayList. Алгоритмы, Дженерики, деревья.</li> <li>Обработка исключений. Иерархия исключений, проверяемые и непроверяемые исключения. Error и Exception.</li> <li>Продвинутые темы, знакомство. Функциональное программирование, лямбда выражения, функциональные интерфейсы, стримы, IO (Input Output(ввод и вывод данных)), Serialization, Multithreading, Concurrency.</li> <li>Базы данных. Реляционные и NoSQL базы данных, язык запросов SQL, Joinы и их типы, Postgres и другие базы данных, связи между таблицами.</li> <li>Repository уровень. Взаимодействие Объектно-ориентированной модели с реляционной. JDBC, JPA + Hiberante, JPQL/HQL, Spring Data.</li> <li>Spring framework. Inversion of Control и Dependency injection. Reflection. Аннотации: Bean, Controller, Service, Component, Repository, Configuration и другие. Spring Security.</li> </ul> <p><strong>3) Наработка практики программирования. Портфолио</strong></p> <ul> <li>Pet project с примером. Spring, JPA + HIbernate, Controller + Thymeleaf/RestController, Postgres. MVC архитектура.</li> <li>Портфолио. Spring Boot, Spring Data, Jira, Git branches и команда, code review, обсуждения архитектуры, отдельная идея.</li> </ul> <p><strong>4) Подготовка к поиску работы и дальнейшая карьера</strong></p> <ul> <li>CV, LinkedIn аккаунт, djinny.</li> <li>Подготовка к интервью с HR. Английский, вопросы, ответы, тестовые задания, софт скиллы.</li> <li>Подготовка к техническому интервью. Mock собеседования, материалы. SOLID, KISS, DRY и прочие важные для собеседования вопросы.</li> <li>Поиск работы и прохождение собеседований. Активность в LinkedIn, Djinny, Dou и через знакомых в компаниях.</li> <li>Первые 3 месяца на проекте. Чего обычно ждут от Trainee или Junior. Как продолжать расти.</li> <li>Первый год. Книги, которые нужно прочитать, продвинутые темы, в которые нужно вникнуть, GOF паттерны, сертификации.</li> <li>Второй год. Микро-сервисы, Облачные технологии, другие технологии.</li> </ul> <p><strong>Целевая аудитория:</strong></p> <p>Данный вебинар будет интересен людям, думающим о том, чтобы стать Java разработчиком, начинающим специалистам, которые уже сделали свой выбор и двигаются к поиску первой работы, а также trainee и junior разработчикам, которые уже работают на своих первых проектах и думают о том, куда двигаться дальше.</p>
Основні етапи тестування мобільних додатків

Автор: Lauren Gilmore

Етап 1: Планування Етап 2. Визначення необхідних типів тестування мобільних додатків Етап 3: Тестові випадки та розробка сценаріїв тестування додатку Етап 4: Ручне та автоматичне тестування Етап 5: Тестування юзабіліті та бета-тестування Етап 6: Тестування продуктивності Етап 7: Атестаційне тестування та тестування безпеки програми Етап 8: Тестування пристрою Етап 9: Контрольний етап та резюме Висновок Ваш покроковий алгоритм тестування мобільних додатків Забезпечення якості (QA, від англійської – Quality Assurance) є невід'ємною частиною життєвого циклу розробки будь-яких додатків, включаючи мобільні. На жаль, багато хто випускає з уваги критичні особливості тестування мобільних додатків, які часто призводять до збоїв, помилок у роботі додатку та поганої якості обслуговування клієнтів. Щоб забезпечити успішну розробку будь-якого додатку, фахівець-тестувальник повинен брати участь у всіх етапах розробки: від створення концепції та аналізу вимог до створення специфікацій тестування та випуску готового продукту. Забезпечення якості також є ключовим елементом у наступних оглядах програмного продукту, які йдуть після проходження етапів розробки. Однак часто буває складно визначити, з чого розпочати організацію процесу тестування мобільного додатку. Для безпроблемного тестування ми рекомендуємо просто виконати дев'ять наведених нижче кроків. Давайте розглянемо особливості тестування мобільних додатків. Цикл життя спринтів Етап 1: Планування Коли етап розробки додатку майже завершений, ви повинні знову поставити перед собою питання – чого ви намагаєтеся досягти розробкою цього додатку та які у вас є обмеження. Ви повинні визначити наступне: Чи взаємодіє ваш додаток з іншими додатками? Наскільки функціональні всі можливості додатку? Чи є тестований мобільний додаток нативним, Mobile-web або гібридним? Чи обмежена задача тестування додатку тестуванням лише зовнішнього інтерфейсу? Чи стоїть завдання на тестування бекенду? Яка має бути сумісність із різними бездротовими мережами? Як сильно дані додатку та вільний простір, який він займає, залежать від особливостей використання додатку? Наскільки швидко завантажується ваш додаток, наскільки швидко відбувається серфінг по меню додатку та його функціям? Як оброблятиметься можливе збільшення навантаження на додаток? Чи впливають різні зміни у статусі та стані телефону на роботу мобільного додатку? Переконайтеся, що ви домовилися з командою тестувальників про роль кожного з них та про ваші очікування від процесу тестування. Зрештою, спілкування є ключем до підтримки правильного робочого середовища в команді. Правильне розуміння ролей і завдань також стосується і моменту прописування списку тест-кейсів. Уся команда QA повинна підтримувати та оновлювати цей документ зі звітами з тестування всіх функцій, реалізованих протягом усього процесу розробки.   Етап 2. Визначення необхідних типів тестування мобільних додатків Перед тестуванням будь-яких мобільних додатків визначте, що саме в даному мобільному додатку ви хочете протестувати: набір функціональності, зручність використання, сумісність, продуктивність, безпека тощо. На цьому етапі має сенс обрати методи тестування мобільного додатку. Визначте, на які цільові пристрої спрямовано цей додаток, та які вимоги до функціоналу слід перевірити. Ви також маєте визначити, які цільові пристрої потрібно включити до списку тестування. Ви можете зробити це наступним чином: З'ясувати, які пристрої підтримуватиме додаток; Визначити, яка версія операційної системи буде найбільш ранньою з тих, що підтримуються додатком; Виявити найпопулярніші моделі мобільних пристроїв у цільової аудиторії; Визначити набір неосновних (додаткових) пристроїв з екранами різних розмірів, які потенційно підтримуються додатком; Вирішити, чи використовуватимете для тестування фізичні пристрої або їх емулятори. Джерело: https://gs.statcounter.com/screen-resolution-stats/mobile/worldwide/#monthly-201804-201904-bar   Етап 3: Тестові випадки і розробка сценаріїв тестування додатку Підготуйте документ, який описує тестові випадки (test cases) для кожної функції та функціональності, що тестується. Крім функціональних тестових випадків, також повинні бути охоплені деякі окремі моменти (кейси): Особливість використання батареї. Швидкість роботи додатку. Вимоги до даних. Об'єм пам'яті, що використовується. Також перед початком тестування важливо визначитися, яке поєднання ручного та автоматичного тестування ви будете застосовувати. При необхідності підготуйте окремі набори ручних тестових випадків та сценаріїв для автоматичного тестування і адаптуйте їх відповідно до вимог проєкту.   Етап 4: Ручне та автоматичне тестування Тепер настав час для виконання ручних та автоматизованих тестів. Раніше, на попередніх етапах, ви вже визначили, які тести та скрипти використовувати та підготували їх. Тепер на поточному етапі ви виконуєте запуск тестів для перевірки механізмів основної функціональності, щоб переконатися у відсутності поломок. Автоматизоване тестування мобільних додатків добре економить час та інші ресурси тестувальників.   Етап 5: Тестування юзабіліті та бета-тестування Після того, як базовий функціонал протестований, настав час переконатися, що мобільний додаток є досить простим у використанні і забезпечує задовільний користувацький досвід. На цьому етапі необхідно підтримувати відповідність матриці кросплатформності, щоб забезпечити охоплення користувачів різних платформ, досягнуте бета-тестерами. Приклад матриці підтримки різних версій платформи iOs Після того, як додаток буде протестований всередині компанії, ви зможете випустити бета-версію додатку на ринок. Тестування сумісності Мобільні пристрої різняться залежно від платформи, моделі та версії їхньої операційної системи. Важливо обрати таку підмножину пристроїв, яка відповідатиме вашому додатку. Тестування інтерфейсу користувача Користувацький досвід є ключовим елементом при тестуванні додатку. Адже наша програма розробляється саме для кінцевих користувачів. Вам слід якісно перевірити зручність використання програми, навігацію її елементами та контент. Тестуйте меню, опції, кнопки, закладки, історію, налаштування та навігацію додатку. Тестування інтерфейсу Тестування пунктів меню, кнопок, закладок, історії, налаштувань та навігації додатком. Тестування зовнішніх факторів Додатки для мобільних пристроїв не будуть єдиними додатками на пристрої користувача. Разом із вашим додатком будуть встановлені програми від сторонніх розробників. Можливо, десятки таких програм. Отже вашому додатку доведеться взаємодіяти з цими сторонніми додатками і переривати роботу різних функцій пристрою, таких, як різні типи мережевих підключень, звернення до SD-картки, телефонні дзвінки та інші функції пристрою. Тестування доступності Мобільними пристроями можуть користуватися різні люди з обмеженими можливостями. З цієї причини важливо протестувати можливість роботи з додатком людей із дальтонізмом, порушеннями слуху, проблемами похилого віку та іншими можливими проблемами. Таке тестування є важливим складником загального тестування юзабіліті.   Етап 6: Тестування продуктивності Мобільні пристрої надають для додатків менший об'єм пам'яті та меншу доступну потужність процесора, ніж стаціонарні комп'ютери та ноутбуки. З цієї причини в роботі мобільних додатків дуже важлива ефективність використання ресурсів, що надаються. Вам слід перевірити працездатність додатку, що тестується, змінивши з'єднання з 2G, 3G на WiFi, перевірити швидкість відгуку, споживання заряду батареї, стабільність роботи і т. д. Рекомендується перевіряти додаток на предмет масштабованості застосування та наявності можливих проблем із продуктивністю. В рамках цього етапу важливо пройти і тестування навантаження мобільного додатку. Функціональне тестування Функціональність додатку має бути повністю протестоване. Особливу увагу слід приділити встановленню, оновленням, реєстрації та входу в систему, забезпеченню, роботі зі специфічними функціями пристрою та повідомленням про помилки. Функціональне тестування мобільного додатку, здебільшого, може бути виконане так само, як ви виконали його для будь-якого іншого типу додатку. З цієї причини ми не будемо вдаватися в подробиці цього типу тестування. Однак слід вказати області, які мають особливе значення для мобільних додатків. Майте на увазі, що функціональне тестування повинно включати тестування всіх функцій додатку і не повинно бути надмірно зосереджено на якійсь одній функції. В рамках функціонального тестування вам слід виконати наступні тести: Тестування процесу встановлення. Тестування можливості оновлень. Експлуатаційне тестування. Тестування процесу реєстрації та авторизації. Тестування функцій, специфічних для пристрою. Тестування надсилання та отримання повідомлень про помилки. Низькорівневе тестування ресурсів: використання пам'яті, автоматичне звільнення ресурсів тощо. Тестування сервісів: функціонування як в режимі онлайн, так і в автономному режимі.   Етап 7: Атестаційне тестування і тестування безпеки додатку Безпека та конфіденційність даних мають величезне значення у наш час. Користувачі вимагають, щоб вся їхня інформація зберігалася безпечно та конфіденційно. Переконайтеся, щоб програма, яка тестується, була надійно захищена. Виконайте перевірку на можливість впровадження SQL ін'єкцій, на можливість перехоплення сеансів, аналізу дампів даних, аналізу пакетів і SSL трафіку. Дуже важливо перевірити безпеку сховища конфіденційних даних вашого мобільного додатку та його поведінку відповідно до різних схем дозволів для пристроїв. Окрім перевірки безумовного шифрування імен користувачів та паролів, задайте собі наступні питання: Чи має додаток сертифікати безпеки? Чи використовує додаток безпечні мережеві протоколи? Чи існують які-небудь обмеження, наприклад кількість спроб входу до системи блокування користувачів?   Этап 8: Тестування пристрою Виконайте тести за тими алгоритмами, які ви раніше прописали у тестових випадках та сценаріях тестування, на всіх визначених для тестування пристроях, у хмарі та/або на фізичних пристроях.   Этап 9: Контрольний етап та резюме Цей етап включає в себе детальне і повне тестування – від ранніх ітеративних етапів тестування до регресійних тестів, які все ще можуть знадобитися для стабілізації роботи додатку та виявлення незначних дефектів. На цьому етапі тестування ви можете додати для перевірки нові функції та змінити налаштування на ті, яких не буде у фінальній версії. Після завершення тестування додатку додаткові параметри та функції, додані для перевірки на цьому етапі, видаляються, і остаточна версія стає готовою до представлення громадськості. Підсумковий звіт про тестування Весь процес тестування мобільних додатків має бути ретельно задокументований. Перевірте двічі, чи зроблені необхідні записи, і після цього сформуйте свій остаточний звіт про тестування (test summary report). Цей звіт повинен включати: Важливу інформацію, виявлену в результаті проведених випробувань. Інформацію про якість тестування, яке проводиться. Зведену інформацію про якість тестованого мобільного додатку. Статистику, отриману зі звітів про різні інциденти. Інформацію про види тестування та час, витрачений на кожен із них. Слід також зазначити у звіті, що: цей мобільний додаток придатний для використання в тій якості, в якій заявлено; відповідає всім критеріям прийнятності функціоналу та якості роботи. Озброївшись зведенням, керівництво проєкту тепер може вирішити, чи готовий мобільний додаток до випуску на ринок. Тестування мобільних додатків – складне завдання. Пристосовуючи ці етапи тестування до кожного розроблюваного додатку і ретельно виконуючи кожен крок, ви гарантовано отримаєте повнофункціональний якісний продукт. Висновок У цій статті ми розглянули особливості тестування мобільних додатків. Розглянуті етапи тестування важливі і для тестування андроїд додатків, і як відповідь на питання “як тестувати додатки для iPhone?”. Важливо пам'ятати, що тестування додатків перед представленням на ринку – важливий етап розробки будь-яких додатків. І, звичайно ж, тестування мобільних додатків має свої особливості та важливі моменти. Відповідально підходьте до питання розробки та тестування мобільних додатків, своєчасно вивчаючи та застосовуючи актуальні методики та технології. З нашого боку ми рекомендуємо для вивчення курс на ITVDN – Unit тестування для Android розробників. За матеріалами статті. Також Вам можуть бути цікаві: Відео курси за спеціальністю Quality Assurance Відео курси за спеціальністю Android Developer Відео курси за спеціальністю iOS Developer
Роль сертифікації для компанії та співробітника

Автор: Олександр Марченко

Введение  Продолжаем с Вами знакомиться с понятием профессиональной сертификации, и в этой части поговорим о роли сертификации для компании и для сотрудника. Большинство наших знакомых ИТ-специалистов предлагают следующие варианты обоснования целесообразности сертификации: Требуется для компании в рамках программы развития сотрудников. (Нечто подобное в Британии сделали обязательным, ознакомьтесь с понятием Chartered IT Professional); Рассчитываю на бонусы или повод для повышение заработной платы; Рассчитываю на способствование карьерному росту; Хочу подтвердить свои знания и навыки. Каждый из нас когда-то приходил к подобным умозаключениям, но кто из нас хоть однажды задумывался о том, чего ожидает компания от сертификации? Попробуем себе представить… Партнерские программы с вендором. Каждый вендор имеет программы Gold/Silver partner и подобные им. Так, когда заказчик видит подобное свидетельство качества, у него повышается уровень доверия и лояльности. Зачастую такие программы партнерства подразумевают не только финансовые взносы и соответствие многим параметрам оценки, но и присутствие в штате компании нужного числа сертифицированных специалистов. «Необходимое и достаточное условие» для участия в конкурсах и тендерах, торгах и т.д. Зачастую для того, чтобы заполучить желаемого заказчика, нужно «помочь» ему составить требования к «ожидаемому» подрядчику. А что может быть еще более непредвзятым, как мнение третьей стороны, как сертификация, выданная независимым провайдером или вендором? К тому же, если у конкурента нет такого преимуществе – победа, считайте, у Вас в кармане. Честолюбие или тщеславие. Если Вы часто бываете в крупных компаниях, особенно ИТ интеграторах, Вы видели у них стену или целый зал славы, стены в котором сплошь увешаны табличками с разными золотыми партнерскими статусами за последние N лет, наградами и почетными грамотами. А в коридорах Вы можете изучать историю сертификации доброй половины ведущих специалистов. Отбор кандидатов. Точно также, как Вы выбираете врача для своего ребенка, сервисный центр для обслуживания автомобиля, юриста с его дипломами и наградами – также и компания в лице рекрутера выбирает себе сотрудника. Вспомните, как часто у Вас просили ссылку на Ваш профиль на GitHub, кто-то спрашивал у Вас, как часто Вы даете советы или ответы на вопросы на StackOverflow или кто-то похвалил Вашу статью на популярной блоговой платформе для ИТ-шников? А как часто Вы заявляли об этом в своем резюме? И как часто Вы включаете номера своих сертификатов и обновляете их на своем профиле в LinkedIn? Думаю, Вам понятно, что сертификация — это какая-никакая гарантия качества знаний сотрудника.  В то же время, могу Вас заверить, что при активной «социальной» деятельности, которая подтверждает Ваши знания и опыт, такой как выступления на тематических конференциях, модерирование хакатонов, ведение интересных блогов, разработка курсов для начинающих разработчиков и т.д., Вам не понадобится сертификация для уверения рекрутера в Вашей надежности и соответствии требованиям проекта. Но, если Вы начинающий специалист, которому нужно оказаться лучше, чем толпы конкурентов, задумайтесь над тем, что заставит рекрутера смотреть именно в Вашу сторону, задумайтесь сможете ли Вы дать компании то, что дорого для нее.
Notification success