Презентация подготовлена по материалам выступления Александра Бармина на витебском Miniq #26, который был проведен 25 июня 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
Spring Framework - невероятно мощный и удобный инструмент для разработки приложений на Java. Немало решений уже создано на его основе, да и многие новые также создаются на этой платформе.Spring Framework предоставляет удобный инструментарий не только для разработки, но и для тестирования ПО. В докладе мы рассмотрим инструменты, которые предлагает Spring для тестирования отдельных компонентов, написания интеграционных и контрактных тестов, а также рассмотрим возможность совместного использования Spring и TestContainers.
Self healing test automation with Healenium and Minimization of regression su...Dmitriy Gumeniuk
Joint talk. To cover 2 topics.
Dmitriy will cover 2 topics, 20 minutes each:
self-healing algorithm for selenium based UI tests (Healenium)
Test Gap Analysis and minimization of regression suite with Test-to-code mapping in Drill4J
Self-healing
Selectors in Automated UI is a pain point: tests sooner or later “breaks” due to changes in layout. Which makes UI tests unreliable as a part of testing pipeline and Continuous Testing itself. Layout mutate and as a result test crashes, builds turn “red”.
In this talk Anna will give a word regarding easiest way how to hack this problem in the bud. You will learn about the newly open-sourced tool for self-healing automation called Healenium.
Healenium allows to overcome problem of instability of automation tests automatically and spend less time supporting tests. Now it works for Mobile Automation as well !
Drill4J
Test Gap Analysis is the process of identifying these gaps where new code has been deployed but hasn’t been tested yet. However, often your testing department does not know which parts of code have been changed by the developers. As a result, testers run some unnecessary tests while other crucial tests are overlooked.
With Test Gap Analysis we can find gaps in tests and help you avoid errors made due to recent, untested changes. In doing so, you can optimize the interface between developers and testers and avoid hotfixes after the system’s release.
With this talk Dmitriy will share and unveil new Open Sourced tool Drill4J, describe capabilities of Test-to-Code mapping and how you can minimize your regression time by identifying subset of tests, which should be run, which code have been changed and which changes are not tested after full testing cycle.
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQAFest
Мы уже разговаривали о self-healing автоматизации, как она работает, какие есть подходы, чем они хороши, плохи и о новом инструменте, который мы разрабатываем в EPAM. Наш продукт завершает стадию POC и настало время поделиться результатами и понять, насколько self-healing автоматизация поможет вашим тестам стать стабильнее? Или наоборот, навредит?... Приходи и узнаешь!
Heavy duty oracle primavera usage in enterprise environmentInSync Conference
Enterprise users make heavy demands on the information systems infrastructure. When using Oracle Primavera on top Windows 32-bit Operation Systems users may reach the limits of 32-bit computing. By observing the application’s memory consumption, End Users can develop simple “rules of thumbs” and operational techniques to maximise their ROI in computing resources.
Turbocharge SQL Performance in PL/SQL with Bulk ProcessingSteven Feuerstein
Is your Oracle Database application running slower than you'd like? One of the first things to check is row-by-row processing: non-query DML (insert, update, delete) within a loop. And the fix? Bulk processing, either with smarter SQL or with FORALL and BULK COLLECT in PL/SQL.
Self healing test automation with Healenium and Minimization of regression su...Dmitriy Gumeniuk
Joint talk. To cover 2 topics.
Dmitriy will cover 2 topics, 20 minutes each:
self-healing algorithm for selenium based UI tests (Healenium)
Test Gap Analysis and minimization of regression suite with Test-to-code mapping in Drill4J
Self-healing
Selectors in Automated UI is a pain point: tests sooner or later “breaks” due to changes in layout. Which makes UI tests unreliable as a part of testing pipeline and Continuous Testing itself. Layout mutate and as a result test crashes, builds turn “red”.
In this talk Anna will give a word regarding easiest way how to hack this problem in the bud. You will learn about the newly open-sourced tool for self-healing automation called Healenium.
Healenium allows to overcome problem of instability of automation tests automatically and spend less time supporting tests. Now it works for Mobile Automation as well !
Drill4J
Test Gap Analysis is the process of identifying these gaps where new code has been deployed but hasn’t been tested yet. However, often your testing department does not know which parts of code have been changed by the developers. As a result, testers run some unnecessary tests while other crucial tests are overlooked.
With Test Gap Analysis we can find gaps in tests and help you avoid errors made due to recent, untested changes. In doing so, you can optimize the interface between developers and testers and avoid hotfixes after the system’s release.
With this talk Dmitriy will share and unveil new Open Sourced tool Drill4J, describe capabilities of Test-to-Code mapping and how you can minimize your regression time by identifying subset of tests, which should be run, which code have been changed and which changes are not tested after full testing cycle.
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQAFest
Мы уже разговаривали о self-healing автоматизации, как она работает, какие есть подходы, чем они хороши, плохи и о новом инструменте, который мы разрабатываем в EPAM. Наш продукт завершает стадию POC и настало время поделиться результатами и понять, насколько self-healing автоматизация поможет вашим тестам стать стабильнее? Или наоборот, навредит?... Приходи и узнаешь!
Heavy duty oracle primavera usage in enterprise environmentInSync Conference
Enterprise users make heavy demands on the information systems infrastructure. When using Oracle Primavera on top Windows 32-bit Operation Systems users may reach the limits of 32-bit computing. By observing the application’s memory consumption, End Users can develop simple “rules of thumbs” and operational techniques to maximise their ROI in computing resources.
Turbocharge SQL Performance in PL/SQL with Bulk ProcessingSteven Feuerstein
Is your Oracle Database application running slower than you'd like? One of the first things to check is row-by-row processing: non-query DML (insert, update, delete) within a loop. And the fix? Bulk processing, either with smarter SQL or with FORALL and BULK COLLECT in PL/SQL.
Abstract: kaChing powers the largest social investment site on the web with nearly 500,000 registered users. Our mission is to make the investment world open by offering transparent investment vehicles that directly compete with mutual funds.
Over the past year and a half, we have built a large feature set and evolved our software continuously with very short iterations and (almost) no regression. In this talk, I will present our experience building a large test-driven code base from the ground up. Using concrete examples, we will have a look at component based APIs, declarative programming, minimizing the concepts of an API, specific cases of separation of concern and interactions with third-party software. We will look at multiple programming paradigms from languages such as Scala, shell script and Prolog and see how these ideas can be embedded as syntactic sugar in your Java.
Added in Oracle Database 18c, Polymorphic Table Functions (PTFs) allow you to change the shape of a result set at runtime. So you can add or remove columns from your results based on input parameters.
This presentation gives an overview of the why & how of PTFs.
Google App Engine has become a powerful PaaS provider in last couple of years. With Java support enabled, its scope has further increased. This session presents the options we have in terms of testing on Google App Engine. Following is an overview of the proposed agenda:
Running Test suites of Applications not built for Google App Engine
An over-view of Google Cloud Cover
Advantages & Limitations of Cloud Cover
Integration of Existing Test Suites in Google Cloud Cover
Local Testing of Applications built for Google App Engine
DataStore Testing
Memcache Testing
Task-Queue Testing
Authentication API Testing
This webinar by Oleksandr Navka (Lead Software Engineer, Consultant, GlobalLogic) was delivered at Java Community Webinar #2 on September 17, 2020.
Webinar agenda:
- tools for testing,
- features of creating a context for testing Spring-applications,
- context caching to speed up integration testing
More details and presentation: https://www.globallogic.com/ua/about/events/java-community-webinar-2/
How to make a Load Testing with Visual Studio 2012Chen-Tien Tsai
About Load Testing
Performance testing
Stress testing
Load testing
Create Visual Studio Load Testing Solution
Add Web Perfomance Testing
Create by Wizard(record action)
Create by Code
Add Load Testing
Configure Scenario setting
Configuration Run setting
Open Load Testing Report
Tips for setting
One more thing about Load Testing
Have you ever finished writing unit tests and deploying to production, only to get errors or problems later down the line? If you want to learn how to minimize these kinds of data problems or failures before they occur, you need to program defensively. Join us to learn about Apex design patterns for resilient code, how to build applications that monitor themselves, and how to avoid common mistakes that even experienced developers make.
Abstract: kaChing powers the largest social investment site on the web with nearly 500,000 registered users. Our mission is to make the investment world open by offering transparent investment vehicles that directly compete with mutual funds.
Over the past year and a half, we have built a large feature set and evolved our software continuously with very short iterations and (almost) no regression. In this talk, I will present our experience building a large test-driven code base from the ground up. Using concrete examples, we will have a look at component based APIs, declarative programming, minimizing the concepts of an API, specific cases of separation of concern and interactions with third-party software. We will look at multiple programming paradigms from languages such as Scala, shell script and Prolog and see how these ideas can be embedded as syntactic sugar in your Java.
Added in Oracle Database 18c, Polymorphic Table Functions (PTFs) allow you to change the shape of a result set at runtime. So you can add or remove columns from your results based on input parameters.
This presentation gives an overview of the why & how of PTFs.
Google App Engine has become a powerful PaaS provider in last couple of years. With Java support enabled, its scope has further increased. This session presents the options we have in terms of testing on Google App Engine. Following is an overview of the proposed agenda:
Running Test suites of Applications not built for Google App Engine
An over-view of Google Cloud Cover
Advantages & Limitations of Cloud Cover
Integration of Existing Test Suites in Google Cloud Cover
Local Testing of Applications built for Google App Engine
DataStore Testing
Memcache Testing
Task-Queue Testing
Authentication API Testing
This webinar by Oleksandr Navka (Lead Software Engineer, Consultant, GlobalLogic) was delivered at Java Community Webinar #2 on September 17, 2020.
Webinar agenda:
- tools for testing,
- features of creating a context for testing Spring-applications,
- context caching to speed up integration testing
More details and presentation: https://www.globallogic.com/ua/about/events/java-community-webinar-2/
How to make a Load Testing with Visual Studio 2012Chen-Tien Tsai
About Load Testing
Performance testing
Stress testing
Load testing
Create Visual Studio Load Testing Solution
Add Web Perfomance Testing
Create by Wizard(record action)
Create by Code
Add Load Testing
Configure Scenario setting
Configuration Run setting
Open Load Testing Report
Tips for setting
One more thing about Load Testing
Have you ever finished writing unit tests and deploying to production, only to get errors or problems later down the line? If you want to learn how to minimize these kinds of data problems or failures before they occur, you need to program defensively. Join us to learn about Apex design patterns for resilient code, how to build applications that monitor themselves, and how to avoid common mistakes that even experienced developers make.
Making your managed package extensible with Apex PluginsStephen Willcock
Apex-driven processing in packaged solutions is becoming more and more complex on the Force.com platform these days. As an ISV, it is not always enough for your customers to create triggers or add their own logic around your custom objects to meet their unique requirements. Sometimes they simply want to effect or steer the existing calculations or data manipulation going on within the managed package. Join us to learn a pattern and approach that can be used to expose a plugin interface to your managed packages by using Apex Interfaces and the new Type.forName / Type.newInstance features.
Sample code available from https://github.com/financialforcedev/df12-apex-plugins
Data Seeding via Parameterized API RequestsRapidValue
A quick guide on how to data seed via parameterized API requests. Parameterization is very important for automation testing. It helps you to iterate on input data with multiple data sets that make your scripts reusable and maintainable. In few scenarios, you can still manage with hard coded request but the same approach will not work out where sheer count of combinations is to be validated. By implementing the right solution, you can keep your code base and test data size at ideal range and still savor the benefits of optimal coverage.
In his report, Orkhan Gasimov (Digital Transformation Architect, Consultant, GlobalLogic, Kyiv) talked to the participants about the willingness of developers to go to Serverless, talked about the new Spring Cloud Function project, and the ability to reuse the code as an http endpoint, a stream handler, or as a cloud serverless function. The report also addressed the features of the Spring Cloud Function and how to use it to improve development performance.
This presentation was delivered at GlobalLogic Kharkiv Java TechTalk #1 on February 5, 2019.
Video: https://youtu.be/WLojSXqCvSE
Kotlin is a modern programming language that focuses on clarity, code safety and conciseness. Google officially adopted Kotlin by adding support into Android Studio in 2017 and since then has announced it as the preferred language for Android developers. Android app teams have incrementally added Kotlin code to their projects or have elected to start new Android projects in Kotlin moving forward. Having the app code and UI automation code in the same language helps engineering and QA teams level set on the critical user journeys being tested. Here we share the basics of getting started with automating an Appium test in Kotlin.
Enterprise Ready Test Execution Platform for Mobile AppsVijayan Srinivasan
When it comes to Mobile test execution, appium framework is the default choice of engineers for writing test cases. Running the appium testcases against multiple Android versions in parallel can be achieved via another open source tool called selenium grid.
Unfortunately selenium grid is not enterprise ready. Meaning the selenium grid cannot be used as a single test execution platform across enterprise level companies due to following issues
• Not available as a Web Application to run from Intuit Standard Containers (Tomcat, WHP)
• Device registry is maintained in-memory
• No support for High Availability / Disaster Recovery
• No support for External Device Cloud
• Not much debugging support (Screenshot, Exception or Log messages)
This talk will be covering the limitations of selenium grid and how Intuit modified the selenium grid to suit for enterprise needs.
Similar to Тестирование Spring-based приложений (20)
Runtime compilation and code execution in groovyVitebsk Miniq
Презентация подготовлена по материалам выступления Романа Москаленко на витебском Miniq #27, который был проведен 30 июля 2020:
https://community-z.com/events/miniq-vitebsk-27
Про доклад:
Данное выступление будет посвящено тому, какие инструменты язык Groovy предоставляет для компиляции и выполнения кода в runtime, как можно их использовать, а также какие плюсы и минусы есть у такого подхода.
Презентация подготовлена по материалам выступления Анатолия Таразевича на витебском Miniq #27, который был проведен 30 июля 2020:
https://community-z.com/events/miniq-vitebsk-27
Про доклад:
Оценки, как правило, являются необходимым злом в разработке программного обеспечения. К сожалению, люди склонны считать, что написание нового программного обеспечения - это все равно что строить дом или ремонтировать автомобиль, и что подрядчик или участвующий в нем механик должны быть в состоянии обеспечить надежную и точную оценку обьема работы и сроков её выполнения. Но это не всегда так и для того чтобы этого достичь понимания в этом вопросе - важно чтобы все люди участвующие в процессе разработки, будь то разработчик или бизнесс-аналитик, понимали главные особенности и законы эстимаций об этом мы и поговорим.
Презентация подготовлена по материалам выступления Татьяны Франк на витебском Miniq #28, который был проведен 24 cентября 2020:
https://community-z.com/events/miniq-vitebsk-28
Про доклад:
Выпуск новых релизов Elastic Stack происходит ежеквартально и каждый релиз приносит новые функции и изменения в UX.К примеру, в версии 7.9 Elastic Enterprise Search представляет бесплатный продукт Workplace Search. Кроме того, мы выпускаем Elastic Agent (beta), который упростит загрузку данных, а бесплатная защита от вредоносного ПО теперь встроена в Elastic Security.Во время встречи мы пройдем по основным изменения в релизах 7.7 - 7.9.
Семантический поиск - что это, как работает и чем отличается от просто поискаVitebsk Miniq
Презентация подготовлена по материалам выступления Филиппа Ерёменко на витебском Miniq #26, который был проведен 25 июня 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
Многие сталкивались (или нет) с поисковыми движками типа Solr, Elasticsearch, AWS/Google решениями и т.д. на разных уровнях. Часто бывает так, что стандартный поиск не дотягивает до желаемого качества что бы вы ни делали. Почему не получается сделать как у Google или даже лучше? Что есть у них, чего нет у нас? Ответ – семантический поиск. Что это такое, чем отличается от стандартного подхода любого поискового движка и как это делается и как это делаем мы – об этом мой доклад.
Локализационное тестирование - это не только переводVitebsk Miniq
Презентация подготовлена по материалам выступления Павла Климченко на витебском Miniq QA Day, который был проведен 28 мая 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
В рамках выступления "Локализационное тестирование - это не только перевод" я расскажу об этом интересном виде тестирования, который нередко обделяют вниманием. Поясню разницу между глобализацией, интернационалией и локализацией.
Также я поделюсь деталями как можно быстро подготовить приложение к переводу на разные локали, на что должен обращать внимание QA-инженер в рамках тестирования помимо перевода и обязательно приведу примеры как происходит тестирование локализации у нас проекте.
ISTQB Сертификация тестировщиков: быть или не быть?Vitebsk Miniq
Презентация подготовлена по материалам выступления Евгения Семенюка на витебском Miniq QA Day, который был проведен 28 мая 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
Нужна ли сертификация тестировщику? Этот вопрос мучает многих и холивары на эту тему не останавливаются. В рамках этого доклада мы разберём все плюсы, минусы и мифы ISTQB сертификации, поговорим о том, что нужно знать на каждом уровне и так ли она полезна, как о ней говорят.
Презентация подготовлена по материалам выступления Владислава Плясова на витебском MiniQ#23, который был проведен 27 февраля 2020 года:
https://communities.by/events/miniq-vitebsk-23 .
Про доклад:
Большинство нас слышало про такую технологию как GraphQL, но кто слышал про Apollo GraphQL Federation?
В своем докладе я бы хотел освятить следующие темы:
- GraphQL. Базовые понятия.
- Apollo Gateway. Что это за зверь и как им пользоваться. Проблема, которую он решает.
- Как создать свою "федерацию" из нескольких GraphQL сервисов.
- Какие плюшки предоставляет нам Apollo Gateway со старта.
- Ваши вопросы.
Презентация подготовлена по материалам выступления Екатерины Тарасевич на витебском MiniQ#23, который был проведен 27 февраля 2020 года:
https://communities.by/events/miniq-vitebsk-23 .
Про доклад:
1. Что такое функциональное тестирование
2. Фазы процесса тестирования
3. Типы тестирования
4. Знания и навыки необходимые тестировщику
Презентация подготовлена по материалам выступления Михаила Ковалёва на витебском MiniQ#22, который был проведен 30 января 2020 года:
https://communities.by/events/miniq-vitebsk-22 .
Про доклад:
На выступлении мы обсудим здоровый кроулинг сайтов. Здоровый не потому, что большой, а потому что правильный.
О том, что такое SEO, кроулинг, и как кроулинг может помочь улучшить SEO. Области применения кроулинга, и способы его реализации.
Презентация подготовлена по материалам выступления Юрия Бондаренко на витебском MiniQ#20, который был проведен 14 ноября 2019:
https://vk.com/miniq20;
https://communities.by/events/miniq-vitebsk-20.
Про доклад:
Я расскажу о том, что такое JAMStack и генераторы статичных сайтов, зачем они нужны, в чем преимущества и недостатки по сравнению с обычными сайтами. Плюс история реального переезда контент-проекта с CMS на JAMStack.
Презентация подготовлена по материалам выступления Ксении Перепечиной на витебском MiniQ#19, который был проведен 10 октября 2019:
https://vk.com/miniq19;
https://communities.by/events/miniq-vitebsk-19.
Про доклад:
Мы побеседуем про Infrastructure As A Code на примере использования AWS Cloudformation и Serverless Application Model, про особенности этих сервисов и некоторые практические полезные советы по их использованию.
Learning Intelligence: the story of mineVitebsk Miniq
Презентация подготовлена по материалам выступления Михаила Ковалёва на витебском MiniQ#18, который был проведен 29 августа 2019:
https://vk.com/miniq18;
https://communities.by/events/miniq-vitebsk-18.
Про доклад:
Когда учеба отнимает кучу времени, а вместо вечернего отдыха приходится пялиться в скучный учебник, и в результате твой ментор говорит: “Надо почитать еще!”. Бррр! Я верю, что путь к тому, чего я так хочу, к тому, что мне очень нравится, тоже должен приносить удовольствие. А, собственно, почему нет? Попробуем ответить на вопрос: как эффективно учиться и не страдать от этого.
Презентация подготовлена по материалам выступления Александры Какойченковой на витебском MiniQ#17, который был проведен 25 июля 2019:
https://vk.com/miniq17;
https://communities.by/events/miniq-vitebsk-17.
Про доклад:
В рамках данного доклада вы узнаете о том, как связаны между собой такие жизненно важные в современном мире сферы, как медицина и программирование, и каким образом решение задач анализа больших данных может изменить подход к некоторым вопросам современной медицины.
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
Презентация подготовлена по материалам выступления Игоря Сычёва на витебском MiniQ#17, который был проведен 25 июля 2019:
https://vk.com/miniq17;
https://communities.by/events/miniq-vitebsk-17.
Про доклад:
Мы реализуем CI/CD на базе Azure DevOps для нашего приложения в МикроСервисном стиле, которое хостим на Azure Kubernetes Services на протяжении более чем 6 месяцев. Мы хотим поделиться нашими успехами и ошибками в CI/CD с разработчиками и DevOps инженерами. Мы продемонстрируем наши подходы и реализации к Build/Release, созданию сред тестирования с использованием ARM шаблонов, согласования установки приложения на рабочие среды и эволюцию этих процессов со временем.
Distributed tracing system in action. Instana Tracing.Vitebsk Miniq
Презентация подготовлена по материалам выступления Владислава Плясова на витебском MiniQ#16, который был проведен 20 июня 2019:
https://vk.com/miniq16;
https://communities.by/events/miniq-vitebsk-16.
Про доклад:
В сложных и многоуровневых микросервисных системах порой появляется задача в анализе взаимодействия сервисов между собой: время обработки, передача запросов на другие сервисы, типы запросов и т.д. Т.е. сбор данных о всех операциях, которые выполняются в системе.
Доклад посвящен распределенной трассировки в микросервисных системах.
Обзор основных элементов OpenTracing и отношения между ними. Как пользоваться Instana OpenTracing и Instana SDK в системах с использованием фреймворка Jersey.
Обзор Instana GUI и как настроить Instana Agent.
Презентация подготовлена по материалам выступления Максима Дадеркина на витебском MiniQ#15, который был проведен 30 мая 2019:
https://vk.com/miniq15;
https://communities.by/events/miniq-vitebsk-15.
Про доклад:
В своей практике я сталкивался с различными задачами, и одним из самых сложных и интересных классов задач для меня был и остаётся класс задач, связанный с проблемами с памятью. Периодически сталкиваясь с такими задачами, я постоянно задавал себе вопрос: а можно ли писать код как в таких языках, как Python, Java, JavaScript или C#, но при этом иметь автоматическую сборку мусора (а ещё лучше – не иметь её вообще)?
В качестве ответа, я хочу познакомить вас с некоторыми концепциями, которые однозначно ответили на мой вопрос, а также легли в основу относительно молодого языка Rust.
Styled-components. Что? Когда? И зачем?Vitebsk Miniq
Презентация подготовлена по материалам выступления Даниила Янковского на витебском MiniQ#15, который был проведен 30 мая 2019:
https://vk.com/miniq15;
https://communities.by/events/miniq-vitebsk-15.
Про доклад:
Введение в CSS-in-JS. На примере styled-components будет рассказано о преимуществах данного подхода в React приложениях, сравнительный анализ приложений на CSS, а также плюсы/минусы. В режиме реального времени напишем приложение с использованием styled-components.
Презентация подготовлена по материалам выступления Дмитрия Чернявского и Ярослава Савченко на витебском MiniQ#14, который был проведен 25 апреля 2019:
https://vk.com/miniq14;
https://communities.by/events/miniq-vitebsk-14.
Про доклад:
Доклад о том, как уметь распознавать и избегать конфликтов с компанией, коллегами и своими ожиданиями.
Презентация подготовлена по материалам выступления Юрия Бондаренко на витебском MiniQ#14, который был проведен 25 апреля 2019:
https://vk.com/miniq14;
https://communities.by/events/miniq-vitebsk-14.
Про доклад:
В докладе я расскажу о том, как писать стили на чистом "ванильном" CSS. Мы рассмотрим возникающие перед вертальщиком практические задачи и способы их решения.
Презентация подготовлена по материалам выступления Андрея Астащенко на витебском MiniQ#12, который был проведен 27 сентября 2018:
https://vk.com/miniq12;
https://events.epam.com/events/miniq-vitebsk-12.
Чтобы стать модным front-меном, знать HTML, CSS, JavaScript, Bootstrap, JQuery, к сожалению, недостаточно... В отличие от суровых back-end разработчиков, к которым я отношу и себя, эти ребята экспериментируют намного больше, быстрее, а структуры проектов становятся всё сложнее для быстрого понимания.
Значит, чтобы стать частью их команды, нужно изучить, как там все это устроено.
Вы будете семи пядей во лбу, если сможете сразу овладеть технологиями, на которых основаноприложение, я вам в этом завидую! Ну а остальным я бы предложил разобраться в основах вместе, разделив всё на отдельные части.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
2. 2020 EPAM Systems, Inc.
• Lead Software Engineer
• EPAM Lab Mentor
ALEKSANDR BARMIN
• Email: Aleksandr_Barmin@epam.com
• Twitter: @AlexBarmin
CONTACTS
2
3. 2020 EPAM Systems, Inc.
Agenda
1
6
2
3
4
5
W H Y T E S T I N G I S S O I M P O R T A N T
C O N F I G U R I N G C O N T E X T F O R T E S T S
U S I N G R E A L D E P E N D E N C I E S
E X A M P L E S
3
O V E R V I E W O F T E S T I N G
T E S T L A Y E R S
4. 2020 EPAM Systems, Inc.
Overview of testing
• A test case is a set of test inputs, execution
conditions, and expected results developed for
a particular objective, such as to exercise a
particular program path or to verify
compliance with a specific requirement.
• https://en.wikipedia.org/wiki/Test_case
4
5. 2020 EPAM Systems, Inc.
Test Suite
Overview of testing
5
Test
Test
Test case
System Under
Test (SUT)
Verifies behavior of
6. 2020 EPAM Systems, Inc.
Overview of testing
6
Test runner
Test class
Executes
Test method
Test method
Test method Teardown
Verify
Execute
Setup
Fixture
System Under
Test (SUT)
Configures
Restores
Interact
7. 2020 EPAM Systems, Inc.
Overview of testing
7
Order Controller Order Service
Order Data Access
Object
Orders
Database
How to test it in isolation?
8. 2020 EPAM Systems, Inc.
Overview of testing
8
Slow, complex
test
System Under
Test (SUT)
Dependency
Tests
Fast, simple
test
System Under
Test (SUT)
Test Double
Tests
Replaced with
9. 2020 EPAM Systems, Inc.
Why testing is so important – Test Pyramid
9
End-to-
end
Component
Integration
UnitTest the business logic
Verify that a service
communicates with its
dependencies
Acceptance tests for a
service
Acceptance tests for an
application
Slow, brittle, costly
Fast, reliable, cheap
10. 2020 EPAM Systems, Inc.
Why testing is so important – the Ice Cream Cone
10
End-to-end
Component
Integration
UnitTest the business logic
Verify that a service
communicates with its
dependencies
Acceptance tests for a
service
Acceptance tests for an
application
Slow, brittle, costly
Fast, reliable, cheap
11. 2020 EPAM Systems, Inc.
Deployment pipeline
Why testing is so important - The deployment pipeline
11
Pre-commit
tests
Commit test
stage
Integration
tests stage
Component
tests stage
Deploy stage
Production
environment
Not
production
ready
Production
ready
Fast
feedback
Slow
feedback
12. 2020 EPAM Systems, Inc.
Talk is cheap. Show me the code
- Linus Torvalds
12
13. 2020 EPAM Systems, Inc.
The Blog Application
13
Post Controller Post Service Post Repository Post Database
14. 2020 EPAM Systems, Inc.
Testing The Blog Application
14
Post Controller Post Service Post Repository Post Database
PostServiceSpringTest
15. 2020 EPAM Systems, Inc.
@ContextConfiguration
15
public @interface ContextConfiguration {
}
16. 2020 EPAM Systems, Inc.
@ContextConfiguration
16
public @interface ContextConfiguration {
// where to find bean definitions
String[] value() default {};
String[] locations() default {};
Class<?>[] classes() default {};
}
17. 2020 EPAM Systems, Inc.
@ContextConfiguration
17
public @interface ContextConfiguration {
// where to find bean definitions
String[] value() default {};
String[] locations() default {};
Class<?>[] classes() default {};
// how to initialize the Application Context
Class<? extends ApplicationContextInitializer<?>>[] initializers() default {};
}
18. 2020 EPAM Systems, Inc.
@ContextConfiguration
18
public @interface ContextConfiguration {
// where to find bean definitions
String[] value() default {};
String[] locations() default {};
Class<?>[] classes() default {};
// how to initialize the Application Context
Class<? extends ApplicationContextInitializer<?>>[] initializers() default {};
// should context from parent classes be loaded
boolean inheritLocations() default true;
boolean inheritInitializers() default true;
}
19. 2020 EPAM Systems, Inc.
@ContextConfiguration
19
public @interface ContextConfiguration {
// where to find bean definitions
String[] value() default {};
String[] locations() default {};
Class<?>[] classes() default {};
// how to initialize the Application Context
Class<? extends ApplicationContextInitializer<?>>[] initializers() default {};
// should context from parent classes be loaded
boolean inheritLocations() default true;
boolean inheritInitializers() default true;
// what will read bean definitions
Class<? extends ContextLoader> loader() default ContextLoader.class;
}
20. 2020 EPAM Systems, Inc.
@ContextConfiguration
20
public @interface ContextConfiguration {
// where to find bean definitions
String[] value() default {};
String[] locations() default {};
Class<?>[] classes() default {};
// how to initialize the Application Context
Class<? extends ApplicationContextInitializer<?>>[] initializers() default {};
// should context from parent classes be loaded
boolean inheritLocations() default true;
boolean inheritInitializers() default true;
// what will read bean definitions
Class<? extends ContextLoader> loader() default ContextLoader.class;
// name of the context hierarchy level
String name() default "";
}
21. 2020 EPAM Systems, Inc.
@ContextConfiguration and @SpringJUnitConfig
21
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {
PostService.class,
CommentValidator.class,
PostSanitizer.class
})
public class PostServiceSpringTest { }
@SpringJUnitConfig(classes = {
PostService.class,
CommentValidator.class,
PostSanitizer.class
})
public class PostServiceSpringTest { }
22. 2020 EPAM Systems, Inc.
@SpringBootTest
The search algorithm works up from the package that
contains the test until it finds a
@SpringBootApplication or
@SpringBootConfiguration annotated class. As long as
you’ve structured your code in a sensible way your main
configuration is usually found.
https://docs.spring.io/spring-
boot/docs/1.5.2.RELEASE/reference/html/boot-features-
testing.html#boot-features-testing-spring-boot-
applications-detecting-config
22
23. 2020 EPAM Systems, Inc.
@SpringBootTest
23
Looks for
@SpringBootApplication or
@SpringBootConfiguration
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(…)
public @interface SpringBootApplication { }
@SpringBootConfiguration
@Configuration
@TestConfiguration
PostControllerSpringBootTest
24. 2020 EPAM Systems, Inc.
@Sql, @SqlConfig and JdbcTestUtils
24
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
class PostControllerWithDbInitTest {
}
25. 2020 EPAM Systems, Inc.
@Sql, @SqlConfig and JdbcTestUtils
25
@Sql(
scripts = "/create_posts.sql",
config = @SqlConfig(separator = ";")
)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
class PostControllerWithDbInitTest {
}
38. 2020 EPAM Systems, Inc.
Testing The Blog Application
38
Post Controller Post Service Post Repository
Mock or in-
memory
database
39. 2020 EPAM Systems, Inc.
Docker Container
Testing The Blog Application
39
Post Controller Post Service Post Repository
Real DB
instance
Mock or in-
memory
database
40. 2020 EPAM Systems, Inc.
TestContainers
• Integration tests with real dependencies in Docker
containers instead of mocks:
• Databases
• Message queues
• Browsers
• Anything else that could be run in Docker
• https://www.testcontainers.org/
40
PostServiceTestContainersTest
41. 2020 EPAM Systems, Inc.
Examples weren’t shown
• @DertiesContext
• @ActiveProfiles
• @ContextHierarchy
• ReflectionTestUtils
• EnvironmentTestUtils
• Spring Cloud Contract
• Spring Cloud Stream Test
41
42. 2020 EPAM Systems, Inc.
Conclusion
• Follow the Test Pyramid approach
• Use FIRST for tests
• Use SOLID for your code
• Spring Framework has a lot of tools that simplify
testing – use them
• https://github.com/aabarmin/epam-spring-testing
• https://docs.spring.io/spring/docs/current/spring-
framework-reference/testing.html
• https://docs.spring.io/spring-
boot/docs/1.5.2.RELEASE/reference/html/boot-
features-testing.html
• https://www.testcontainers.org/
• https://spring.io/projects/spring-cloud-contract
• https://cloud.spring.io/spring-cloud-static/spring-
cloud-
stream/2.1.3.RELEASE/multi/multi__testing.html
42
Thank you!