1. The document introduces Swift Localhost, a tool for writing localhost UI tests in Swift. It allows setting up a mock localhost server to handle API requests from the app under test.
2. Common problems with traditional end-to-end tests like brittle tests and slow execution are discussed. Localhost UI tests address these by mocking API responses at a faster, isolated integration level.
3. The key aspects of setting up and asserting localhost requests are explained, including routing requests to the localhost server, configuring mock responses, and validating the expected request paths and cURL commands.
Selenium is the most popular open-source tool for acceptance testing dynamic web applications. In Selenium 2.0, the Selenium project merged with the WebDriver project. This session will explain the benefits of Selenium 2.0's technology and go into detail on what is and is not changing. If you like browser test automation, you'll enjoy what's cooking in Selenium 2.0.
Selenium was originally created by Jason Huggins and his team at ThoughtWorks in 2004 as a tool for cross-browser acceptance testing of dynamic web apps -- apps that use JavaScript heavily on the client. Over the years, the Selenium tool family has expanded to include a Firefox record and playback tool (Selenium IDE), a Remote Control server that allows API access from any major programming language, and a grid server that allows tests to run in parallel across many machines.
Despite it's widespread industry adoption, the Selenium project is far from done. Selenium's goal is to drive any browser the same way an end user would (e.g. opening pages, clicking buttons, entering text, etc.) with any programming language on any OS platform. It's an ambitious goal, and with a steady stream of new browsers (Chrome), new platforms (Android, iPhone), and new HTML5 technologies (video, canvas, offline storage) to support, just keeping up is an arduous task.
This session will also cover trends in testing and test automation, and how Selenium fits into the bigger project management picture. Specific guidance will be given on how to determine what should be tested with Selenium and how to deal with the problem of brittle, expensive-to-maintain Selenium tests.
Oh, and robots. The talk will have robots.
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Sargis Sargsyan
In this high technology times, it is really hard to catch up with everything. Especially for the mobile world when there are thousands of mobile devices with different modification of the Android OS. Most of us who work in the mobile testing industry familiar with the Appium framework for UI automation and also aware of complicate setup and hard maintenance of it. Using Docker in Android UI automation is making our life much easier. Docker-Android is a docker image built to be used for everything related to Android mobile website or application testing. All the tools needed (devices, framework, Android SDK, etc.) are packaged in the image. It is free and open-source and supports other features such as video recording. In this session, we will talk about the advantages and disadvantages of Appium and docker-android will go throw getting started with Docker-Android and run sample tests against it.
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android hybrid application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Get the session recording from SoundCloud:
http://tinyurl.com/cordova2014
Apache Cordova is a platform for building mobile apps using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile app developers to utilize mobile native functions such as (Audio, Camera, Contacts …etc) using JavaScript. This session discusses and demonstrates the advanced aspects of Apache Cordova. Advanced aspects include extending Apache Cordova framework by creating custom plugins in order to access more device hardware features. Advanced aspects also include empowering Apache Cordova apps with Push notifications and Cloud services. Finally, this session demonstrates the power of automated JavaScript unit testing for producing quality Apache Cordova apps.
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?Albert Mietus
About (a stalled hunt for) a new programming paradigma: ‘CC’; experimenting with the new syntax and semantics to create the ‘Castle’ language. I had to code syntax-highlighting tools for example-programmes, editor-plugins, etc. I started to build a compiler using model-based engineering tactics for {our domain} specific language. I wrote a lexer/parser grammar; build an AST; I studied LLVM, to use it as back-end. And …
How could I ever imagine I could do that? But it was FUN!
--------------
Presented at 040coders.nl; Thursday, April 18, 2019
Selenium is the most popular open-source tool for acceptance testing dynamic web applications. In Selenium 2.0, the Selenium project merged with the WebDriver project. This session will explain the benefits of Selenium 2.0's technology and go into detail on what is and is not changing. If you like browser test automation, you'll enjoy what's cooking in Selenium 2.0.
Selenium was originally created by Jason Huggins and his team at ThoughtWorks in 2004 as a tool for cross-browser acceptance testing of dynamic web apps -- apps that use JavaScript heavily on the client. Over the years, the Selenium tool family has expanded to include a Firefox record and playback tool (Selenium IDE), a Remote Control server that allows API access from any major programming language, and a grid server that allows tests to run in parallel across many machines.
Despite it's widespread industry adoption, the Selenium project is far from done. Selenium's goal is to drive any browser the same way an end user would (e.g. opening pages, clicking buttons, entering text, etc.) with any programming language on any OS platform. It's an ambitious goal, and with a steady stream of new browsers (Chrome), new platforms (Android, iPhone), and new HTML5 technologies (video, canvas, offline storage) to support, just keeping up is an arduous task.
This session will also cover trends in testing and test automation, and how Selenium fits into the bigger project management picture. Specific guidance will be given on how to determine what should be tested with Selenium and how to deal with the problem of brittle, expensive-to-maintain Selenium tests.
Oh, and robots. The talk will have robots.
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Sargis Sargsyan
In this high technology times, it is really hard to catch up with everything. Especially for the mobile world when there are thousands of mobile devices with different modification of the Android OS. Most of us who work in the mobile testing industry familiar with the Appium framework for UI automation and also aware of complicate setup and hard maintenance of it. Using Docker in Android UI automation is making our life much easier. Docker-Android is a docker image built to be used for everything related to Android mobile website or application testing. All the tools needed (devices, framework, Android SDK, etc.) are packaged in the image. It is free and open-source and supports other features such as video recording. In this session, we will talk about the advantages and disadvantages of Appium and docker-android will go throw getting started with Docker-Android and run sample tests against it.
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android hybrid application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Get the session recording from SoundCloud:
http://tinyurl.com/cordova2014
Apache Cordova is a platform for building mobile apps using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile app developers to utilize mobile native functions such as (Audio, Camera, Contacts …etc) using JavaScript. This session discusses and demonstrates the advanced aspects of Apache Cordova. Advanced aspects include extending Apache Cordova framework by creating custom plugins in order to access more device hardware features. Advanced aspects also include empowering Apache Cordova apps with Push notifications and Cloud services. Finally, this session demonstrates the power of automated JavaScript unit testing for producing quality Apache Cordova apps.
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?Albert Mietus
About (a stalled hunt for) a new programming paradigma: ‘CC’; experimenting with the new syntax and semantics to create the ‘Castle’ language. I had to code syntax-highlighting tools for example-programmes, editor-plugins, etc. I started to build a compiler using model-based engineering tactics for {our domain} specific language. I wrote a lexer/parser grammar; build an AST; I studied LLVM, to use it as back-end. And …
How could I ever imagine I could do that? But it was FUN!
--------------
Presented at 040coders.nl; Thursday, April 18, 2019
Speakers: Chirayu Krishnappa & Daniel Liem (Uber), Christian Legnitto (Pocketship), Jacek Suliga (LinkedIn), Robbert Van Ginkel & Gautam Korlam (Uber), Rachel Brindle (Pivotal Labs)
Tools for building and releasing mobile applications provided by Google and Apple are geared towards smaller mobile application development teams. However, once development teams start to grow, the requirement from your build and release tooling change drastically. This meetup was all about building & releasing mobile applications at scale: How does your build infrastructure need to evolve to support increasingly complex code-bases? How can you build an automated release pipeline that tracks every build and rolls out your mobile applications safely? What kind of unexpected problems can arise from adopting new technologies when you have a larger team?
Laravel is a great framework to use for web applications but what if you need to do more? What if you need to process data that would take longer than an HTTP request would allow?
Come learn how to harness the power of the console in your Laravel applications to do various tasks such as caching data from 3rd party APIs, expire old content from S3 or other data store, and batch process huge data sets without users having to wait for results. You can even automate tasks such as backing up your remote databases before you run migrations with artisan commands.
We'll cover creating basic artisan console commands, adding options and passing input, setting up cron jobs and scheduling our console commands to run at specific times, and how you can utilize 3rd party APIs to create fun automated message processing for social media networks.
[AnDevCon 2016] Mutation Testing for AndroidHazem Saleh
Unit testing coverage is a great way to show us the amount of tested lines and branches of code, but is this really enough? The answer is "no" since unit testing coverage does not really fully measure the efficiency of the unit tests.
This is why there is a need for having techniques that show unit tests efficiency. Mutation testing is one of these powerful techniques. The main idea of mutation testing is to perform byte code modifications (mutations) to original Android app source code and then run app unit tests to check if they are strong enough to fail as a result of these mutations.
This session discusses mutation testing techniques, and demonstrates PIT as a powerful mutation testing tool for Android apps with demos.
A perspective on iPhone development from a server-side developer with very little GUI background.
Given at http://www.lfpug.com in London on 26 March 2009.
Observability and Troubleshooting in ForgeAtlassian
Observability is a critical component of any Cloud development platform, and we have some exciting logging, monitoring, and debugging features planned for the Forge toolchain.
In this lightning talk, Senior Developer James Hazelwood from Forge infrastructure team will give an overview of Forge logging and tunnelling features, explain how different environment types effect observability, and share some expert tips and tricks for detecting and troubleshooting issues in your Forge apps.
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatmdevtalk
Continuous Integration je velice důležité, leč často opomíjené téma. Většina lidí má tento termín zažitý jako něco co je složité a patří to do velkých společností. Opak je pravdou, CI můžete využívat i jako freelancer nebo malá společnost velice jednoduše. Ať už ho chcete používat k testování, nasazování, doručování buildu nebo notifikacím, ušetří Vám to hodně času a peněz. Dominik se věnuje problematice CI pro mobilní vývoj již více jak 2 roky a se svými kolegy vyrobil CI pipeline pro iOS, Android i backend, která šetří stovky minut denně celému týmu. Ve svém talku se zaměří, jak na mobilní platformy, tak na backendy a frontendy, aby si na své přišel opravdu každý.
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QAFest
Main idea of this talk is to show what technologies can be used for cross-platform mobile app development and how to deal with UI tests automation for them. I will outline set of challenges every tester and developer needs to conquer and give some tips how to solve them. During this talk I will present how to apply UI tests in React Native project using Detox framework.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
Slides from the May 20th workshop at the Seattle Node.js Meetup presented by Shubhra Kar titled: "Develop, Deploy, Monitor and Hyper-scale REST APIs Built in Node.js"
Speakers: Chirayu Krishnappa & Daniel Liem (Uber), Christian Legnitto (Pocketship), Jacek Suliga (LinkedIn), Robbert Van Ginkel & Gautam Korlam (Uber), Rachel Brindle (Pivotal Labs)
Tools for building and releasing mobile applications provided by Google and Apple are geared towards smaller mobile application development teams. However, once development teams start to grow, the requirement from your build and release tooling change drastically. This meetup was all about building & releasing mobile applications at scale: How does your build infrastructure need to evolve to support increasingly complex code-bases? How can you build an automated release pipeline that tracks every build and rolls out your mobile applications safely? What kind of unexpected problems can arise from adopting new technologies when you have a larger team?
Laravel is a great framework to use for web applications but what if you need to do more? What if you need to process data that would take longer than an HTTP request would allow?
Come learn how to harness the power of the console in your Laravel applications to do various tasks such as caching data from 3rd party APIs, expire old content from S3 or other data store, and batch process huge data sets without users having to wait for results. You can even automate tasks such as backing up your remote databases before you run migrations with artisan commands.
We'll cover creating basic artisan console commands, adding options and passing input, setting up cron jobs and scheduling our console commands to run at specific times, and how you can utilize 3rd party APIs to create fun automated message processing for social media networks.
[AnDevCon 2016] Mutation Testing for AndroidHazem Saleh
Unit testing coverage is a great way to show us the amount of tested lines and branches of code, but is this really enough? The answer is "no" since unit testing coverage does not really fully measure the efficiency of the unit tests.
This is why there is a need for having techniques that show unit tests efficiency. Mutation testing is one of these powerful techniques. The main idea of mutation testing is to perform byte code modifications (mutations) to original Android app source code and then run app unit tests to check if they are strong enough to fail as a result of these mutations.
This session discusses mutation testing techniques, and demonstrates PIT as a powerful mutation testing tool for Android apps with demos.
A perspective on iPhone development from a server-side developer with very little GUI background.
Given at http://www.lfpug.com in London on 26 March 2009.
Observability and Troubleshooting in ForgeAtlassian
Observability is a critical component of any Cloud development platform, and we have some exciting logging, monitoring, and debugging features planned for the Forge toolchain.
In this lightning talk, Senior Developer James Hazelwood from Forge infrastructure team will give an overview of Forge logging and tunnelling features, explain how different environment types effect observability, and share some expert tips and tricks for detecting and troubleshooting issues in your Forge apps.
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatmdevtalk
Continuous Integration je velice důležité, leč často opomíjené téma. Většina lidí má tento termín zažitý jako něco co je složité a patří to do velkých společností. Opak je pravdou, CI můžete využívat i jako freelancer nebo malá společnost velice jednoduše. Ať už ho chcete používat k testování, nasazování, doručování buildu nebo notifikacím, ušetří Vám to hodně času a peněz. Dominik se věnuje problematice CI pro mobilní vývoj již více jak 2 roky a se svými kolegy vyrobil CI pipeline pro iOS, Android i backend, která šetří stovky minut denně celému týmu. Ve svém talku se zaměří, jak na mobilní platformy, tak na backendy a frontendy, aby si na své přišel opravdu každý.
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QAFest
Main idea of this talk is to show what technologies can be used for cross-platform mobile app development and how to deal with UI tests automation for them. I will outline set of challenges every tester and developer needs to conquer and give some tips how to solve them. During this talk I will present how to apply UI tests in React Native project using Detox framework.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
Slides from the May 20th workshop at the Seattle Node.js Meetup presented by Shubhra Kar titled: "Develop, Deploy, Monitor and Hyper-scale REST APIs Built in Node.js"
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Applitools
Full recording here: https://youtu.be/AV8p2aeqsOg
Watch Jonathan Lipps' in-depth overview of the mobile test automation landscape: past, present, and future -- including an in-depth analysis of current frameworks and what's in store for Appium.
5 years ago, mobile automation was in its infancy. None of the tools that enabled testing of mobile apps was very comprehensive, but on the other hand, there were a lot of open source options. Nowadays, the players and the playing field are different, and Appium came to dominate the open source mobile testing scene.
In this talk, expert Jonathan Lipps gives an exposition of the mobile testing landscape. He talks about what writing tests looks like with each of the current tools, and discuss when each might be a good (or bad) choice. In addition, he'll share his reflections on increasingly popular modes of testing beyond functional testing (like visual testing, for example), and what challenges might lie ahead for testers.
Key takeaways from Jonathan's session:
* History of mobile automation
* In-depth overview of the current technology and trends
* Set of factors to use when picking the technology that's right for you
* All about Appium's vision for the future
Java Test Automation for REST, Web and MobileElias Nogueira
Presentation about how to use REST, Web and Mobile open source tools to increase your test codebase.
This presentation was made by me and Edson Yanaga for JavaOne 2017 San Francisco on 04/09/2017
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaAmazon Web Services
The presentation will discuss some architectural patterns in continuous integration, deployment and optimization and I will share some of the lessons learned from Amazon.com.
The goal of the presentation is to convince you that if you invest your time where you get the maximum learning from your customers, automate everything else in the cloud (CI + CD + CO), you get fast feedback and will be able to release early, release often and recover quickly from your mistakes. Dynamism of the cloud allows you to increase the speed of your iteration and reduce the cost of mistakes so you can continuously innovate while keeping your cost down.
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
Speaker: Justin Ison
Check out the complete session slides here: http://www.srijan.net/webinar/mobile-...
This session dives into the history of Appium, and it's pros and cons. The speaker also looks at how to write a good test setup and collect meaningful data points. We look at quick demos and comparisons of how Appium significantly reduces test times.
And you definitely should hang around till the Q&A session, where participants pitch in with their issues and queries. The speaker answers all the questions, sharing additional information and tips on Appium.
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...Badoo
iOS Automation rapidly changed due to the evolution of Apple automation frameworks and Calabash community support. One year ago, we parallelised our iOS testing with multiple desktops – a large improvement in performance. Here is an account of the subsequent changes, including the removal of multiple desktops and the adoption of Apple’s new XCTest framework.
The automation community (Appium, Calabash etc.) faced a new challenge: how could we create iOS Automation Infrastructure with the new XCTest Framework?
I adopted Facebook solution (FBSimCtl and WebAgentDriver) into the multi-simulators approach. In this talk, I will discuss the full evolution path to Facebash Approach based on multi-simulators, Calabash server and Facebook Web Driver Agent.
The Present and Future of Mobile Test Automation with AppiumTechWell
Mobile testing has moved forward in leaps and bounds in the past few years. With frameworks like Appium, it has never been easier to scale automated testing and integrate it with continuous integration. While new automation technologies proliferate with device and platform upgrades, Appium provides a singular, consistent automation protocol on top of the best automation technologies,. In the past year, the Appium open source community has added support for new kinds of automation, including XCUITest for iOS, UiAutomator 2 for Android, and even Windows apps. With demos and code samples, Jonathan Lipps explores the capabilities these unlock, and explains Appium's vision for the future—in both mobile testing and the rich variety of UI testing with IoT applications and devices. More and more, the lines are being blurred between desktop, mobile, and IoT applications—and Appium has a plan for taking advantage of this remarkable confluence.
Dev ops for cross platform mobile modeveast 12Sanjeev Sharma
Mobile Apps are not stand alone applications running on a mobile device anymore. Apps today are complex systems with back-ends hosted on clouds, with application servers, databases, API calls to external systems, and of course a powerful app running on a mobile device. Mobile App development and deployment is further complicated with todays need for supporting multiple mobile devices, with multiple OSes, multiple versions of the OSes, multiple form factors and varied network, CPU, GPU and memory specs.
DevOps - the new and growing movement addresses these development and deployment challenges. The goal of DevOps is to align Dev and Ops by introducing a set of principles and practices such as continuous integration and continuous delivery. Mobile apps take the need for these practices up a level due to their inherent distributed nature. Multi-platform mobile apps need even more care in applying DevOps principles as there are multiple platforms to be targeted, each with its own requirements, quirks, and nuanced needs.
This talk will introduce attendees to the basic practices of DevOps and then take a look at the DevOps challenges specific to cross-platform Mobile apps and present Best Practices to address them.
If you’re responsible for creating diverse, scalable automated tests but don’t have the time, budget, or a skilled-enough team to create yet another custom test automation framework, then you need to know about Robot Framework!
In this webinar, Bryan Lamb (Founder, RobotFrameworkTutorial.com) and Chris Broesamle (Solutions Engineer, Sauce Labs) will reveal how you can use this powerful, free, open source, generic framework to create continuous automated regression tests for web, batch, API, or database testing. With the simplicity of Robot Framework, in conjunction with Sauce Labs, you can improve your test coverage and time to delivery of your applications.
With third party clients connecting to your service you may find that the assumptions or opinions of a typical rails application are not robust enough. We'll run through some key considerations when building an API that will be consumed by a mobile app.
All the Laravel Things – Up & Running to Making $$Joe Ferguson
Come learn about all the tools in the Laravel ecosystem designed to save you time and prevent you from writing the boring cruft needed for every application. We’ll cover getting started with local development, building basic apps, and deploying. We’ll cover how Laravel easily handles vagrant, testing, oauth login services, billing and subscription services through Laravel Spark, and deploying your application with services such as Laravel Envoyer and Forge to manage your servers.
Similar to Mobile Development integration tests (20)
With localhost, you can write XCUITest without the constraint of shared dependencies. This talk will showcase how you can setup a localhost XCUITest using 4 simple steps. In addition you can also assert outgoing requests and analytic events fired from the app
Mobile Testing Tips - Let's achieve fast feedback loopsKenneth Poon
Let's achieve fast feedback loops
API Contract tests and localhost assertion tests will help give Engineers and QAs more confidence in the mobile product
Network Interception - Write Swift codes to inspect network requests (even wi...Kenneth Poon
Using a custom URLProtocol class and code injection technique, we can now inspect all requests in an iOS Apps (even when SSL certificate pinning is active). In the hand on demo, I used this technique to inspect all requests in Tinder and Twitter iOS apps
This keynote was presented in https://engineers.sg/video/intercepting-network-requests-ios-dev-scout--2639
PropertyGuru is Hiring. iOS / Android Engineer (Bangkok, Thailand)Kenneth Poon
PropertyGuru is Hiring. Join the band of mobile engineering rockstars at South East Asia's Leading Property Portal, PropertyGuru. We are looking for iOS / Android Engineers to join us and be part of the awesome team responsible for serving 16 million users every month.
28th July 2016 iOS Dev Scout Meetup @ Propertyguru
Presentation on
- XCUITest: how to easily setup and run XCUITests
- Gherkin: how to setup Gherkin for your XCUITests
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
5. Agenda
Contract Tests (Ruby) - Cucumber API
Background and motivation for this sharing this talk
Localhost UI Test (iOS) - Swift Localhost
6. Background and Motivation
J2EE -> iOS Development
Not much iOS Test + CI Practices out there (2010)
Sinatra (Ruby)Calabash (Ruby) Cucumber (Ruby)
SwiftLocalhost (Swift)Cucumberish (Swift)
7. Life of a Mobile Developer
Mobile Developer Backend EngineerQA
I’m a mobile developer.
In terms of testing, I
write Unit tests to
ensure that my
modules are working
as expected.
I will also ensure that I
achieve high code
coverage for my native
app codes
I’m a QA engineer. I take
ownership of mobile
E2E tests.
When the mobile app
build is ready , I will
verify it in our test/QA
environment
I’m a backend engineer.
I write tests that cover
the behaviour of the
services I build.
8. Life of a Mobile Developer
Mobile Developer Backend Engineer
API Contract
Feature
1
Not Readyv1
v1
9. Life of a Mobile Developer
Mobile Developer Backend EngineerAPI Contract
Feature
1
v1
v1
10. Life of a Mobile Developer
Mobile Developer Backend EngineerAPI Contract
Feature
1
v1
v1
V2
v1
App Breaks - API Contract
• Contract definition has changed
• Backend Engineer may not be
aware of what services app is
consuming
• QA may only find out after running
test suite
APPLICATION
BREAKS
QA: WHAT’S HAPPENING!!
11. Life of a Mobile Developer
Mobile Developer
Feature
1
12. Life of a Mobile Developer
Mobile Developer
Feature
1
Database 3rd Party Services
App Breaks - Dependencies
• Services down
• Test Data Fixtures are not
synced up
• Engineers may only discover
broken dependencies by
running E2E tests
APPLICATION
BREAKS
QA: My E2E Tests
failed again!
What is happening
this time?
13. Life of a Mobile Developer
Mobile Developer QA
14. Life of a Mobile Developer
Mobile Developer QA
Dev, the app is breaking
very often in Test/
Staging environment
Sorry about it, QA.
My native code is
fine. It seems like
the backend
services are down
at the moment
Grrr.. it took me an hour
of tests execution just
to discover that that.
This is driving me crazy.
Other times, the backend engineer
unknowingly changed the API schema I understand but I will always find
you first whenever I discover any of
these issues.
Hmmm… let me come up with a
solution for this
15. About End-to-End Tests
QA
As QA, we own and take responsibility in the development
and maintenance of the mobile E2E tests
But E2E tests are very brittle
Mobile Apps typically have multiple dependencies
Difficult to write tests that are dependent on shared
resources
E2E Tests are generally slow and expensive
Even if we can write E2E tests, we may not be
able to achieve comprehensive UI Automation
test coverage
16. Test Pyramid
Unit Tests
E2E Tests
Integration
Tests
XCUITest / Appium
XCTest / JUnit
API Contract Tests
Mock Response Tests
19. L
A
I
M
[Localhost] Setup in-memory localhost server
[API] Redirect API calls to localhost server
[Info.plist] Patch Info.plist
[Mock] Setup mock responses
Setup Localhost
20. Setup Localhost - [Localhost]
Localhost
Server
Use a unique port number
Setup an in-memory server in the test runner
Setup and tear down localhost server when
executing each test
29. Asserting Localhost Requests
Use case
1. Listing View
2. Detail View Item List Request
Localhost Requests
Detail
Item Detail Request
30. Asserting Localhost Requests
Use case
1. Listing View
2. Detail View Item List Request
Localhost Requests
Detail
Item Detail Request
3. Bookmark Item
Bookmark Item Request
Expected Requests Order
31. Asserting Localhost Requests
public class LocalhostServer {
public var recordedRequests: [URLRequest]
}
LocalhostServer records all received URLRequest(s)
32. Asserting Localhost Requests
//#### By URL Paths---------
let expectedRequestPaths: [String] = [
"/3/movie/popular",
"/identitytoolkit/v3/relyingparty/verifyPassword",
"/identitytoolkit/v3/relyingparty/getAccountInfo"
]
let actualRequestPaths = self.localhostServer.recordedRequests.map {
return $0.url!.path
}
XCTAssertEqual(expectedRequestPaths, actualRequestPaths)
33.
let expectedCURLs: [String] = [
"curl -X GET ’http://localhost:9001/3/movie/popular?api_key=71b'",
"curl -X POST ’http://localhost:9001/relyingparty/verifyPassword?
key=AIzaSy' -d '{n "email" : "apple@gmail.com",n "password" :
"password"}'",
"curl -X POST ’http://localhost:9001/relyingparty/getAccountInfo?
key=AIzaSy' -d '{n "idToken" : "eyJhbj"n}'"
]
let expectedCURLs: [String] = [
"curl -X GET ’http://localhost:9001/3/movie/popular?api_key=71b'",
"curl -X POST ’http://localhost:9001/relyingparty/verifyPassword?
key=AIzaSy' -d '{n "email" : "apple@gmail.com",n "password" :
"password"}'",
"curl -X POST ’http://localhost:9001/relyingparty/getAccountInfo?
key=AIzaSy' -d '{n "idToken" : "eyJhbj"n}'"
]
let actualCURLs = self.localhostServer.recordedRequests.map {
return $0.cURL(withHeaders: false)
}
Asserting Localhost Requests
//#### By describing cURL commands ---------
XCTAssertEqual(expectedCURLs, actualCURLs)
let expectedCURLs: [String] = [
"curl -X GET ’http://localhost:9001/3/movie/popular?api_key=71b'",
"curl -X POST ’http://localhost:9001/relyingparty/verifyPassword?
key=AIzaSy' -d '{n "email" : "apple@gmail.com",n "password" :
"password"}'",
"curl -X POST ’http://localhost:9001/relyingparty/getAccountInfo?
key=AIzaSy' -d '{n "idToken" : "eyJhbj"n}'"
]
35. FAQ on Localhost UITests
Why can’t we add stub responses in the code?
Localhost
Server
Mock
HTTP
TCP
HTTP
TCP
Mock
Response
36. FAQ on Localhost UITests
Swift Localhost Vapor (Swift)
WireMock (Java)
Typicode (JS)
Sinatra (Ruby)
What are the advantages of using Swift Localhost over other localhost
web server solutions?
37. FAQ
Swift Localhost
Vapor (Swift)
WireMock (Java)
Typicode (JS)
Sinatra (Ruby)
What are the advantages of using Swift Localhost over other localhost
web server solutions?
38. FAQ on Localhost UITests
Swift Localhost
Vapor (Swift)
WireMock (Java)
Typicode (JS)
Sinatra (Ruby)
What are the advantages of using Swift Localhost over other localhost
web server solutions?
Advantages
✓ Easy Installation and Setup via Cocoapods
✓ Use Swift to setup mock server
✓ In line mock responses in the same test scope
✓ Use same runtime XCode debugger
✓ Ctrl + U
39. FAQ
How does the Localhost UITest technique fit in my development
process?
List
2. Fetch list of items using server/list api
1. Navigate to List view
3. Tap on 1st Item. App navigates to Detail view
4. Fetch item detail using server/detail api
5. Bookmark item
6. Bookmark item detail using
server/bookmark api
Bookmarking Use Case
DetailDetail
server/list
server/detail
server/bookmark
7. Assert Bookmark Icon is correctly reflected
40. FAQ
How does the Localhost XCUITest technique fit in my development
process?
Detail
server/list
server/detail
server/bookmark
Localhost Mock Responses
Test Case
1. Navigate to List view
2. Tap on 1st Item. App navigates to Detail view
3. Bookmark item
4. Assert Bookmark Icon is correctly reflected
Never Ever Fails
✓ Early Development
✓ Use Case Wont Fail
42. API Contract Tests
Mobile Developer QA
Dev, I know it’s great
that you have Mock
Response Tests that
never fails.
But the APIs do change
and they might break
the app.
Yes, QA. You are
absolutely right
API Contract
v1
But our app
releases are
bounded by the
pre-agreed
APIContracts
We can write a script to ensure the
APIs are working as agreed upon
We can use this script to discover
which services are affecting the app.
44. API Contract Tests
API Contract
v1 /v1/login -> schema1_v1
/v1/shoppingList -> schema2_v1
/v1/productDetails -> schema3_v1
/v1/productDetails -> schema4_v1
API Contract Script
v1 v1.1 V2
/v1/productDetails -> schema3_v2
Mobile Developer
Gotcha! Latest
API deployment
broke our app
45. API Contract Tests
Backend Engineer
Hey Mobile Dev,
Why are you writing
tests against my
API? Shouldn’t I be
the one responsible
for that?
Mobile Developer
Our app will
perform correctly
only when
dependent services
are working as
expected.
Our API Contract tests will give you quick feedback
whenever deployed services break the contracts
Mobile developers will be responsible to maintain
tests that describe the services the app consume.
46. API Contract Tests
Backend Engineer
That sounds
awesome to me.
You know what? I
think we should
automatically
trigger the API
Contract tests
every time we
deploy any changes
Mobile Developer
Nice! This encourages backend developers to
deploy changes without worrying whether it
will affect the mobile app clients.
… BECAUSE WE WILL CATCH ANY BREAKING CHANGES
47. API Contract Tests
Mobile Developer QA
Dev, I feel annoyed that
after running my tests, I
discover my test
fixtures are not ready
(or incorrect).
eg. Login credentials,
Product Details on
Staging environment
are incorrect
Your test cases
actually describe
the request/
response exchange
that will be
expected.
We can write API Contract tests that chain the order
of API requests that simulates a use case on the app
You can simply run the API Contract tests before any
automated/manual execution of tests. This will give
you a headsup whether your tests will fail
Since API Contract tests are generally fast, you will
get your feedback in no time.
Wow, this sounds
awesome. I am
eager to have a go
at it
49. What is your take on API Contract Tests (ACT)
Mobile Developer Backend EngineerQA
ACT checks whether
our app dependencies
are working as
expected.
The contract definition
aids us in designing
our localhost tests
ACT is a cheap and fast
way for QA to ensure
that all dependencies,
including data fixtures
are ready before we
start testing.
The fast feedback saves
us time especially when
we can get feedback
within seconds
With ACT, I have more
confidence to refactor
my code base.
We are now
encouraged to run ACT
tied to released app
versions and check if
older versions will be
broken by new API code
deployments
50. Closing
Consider having both Mock Response and API Contract Tests
Integration tests are meant to compliment but not replace E2E
API Contract Tests is the low hanging fruit
Confidently run localhost tests to verify that native app codes is
working under normal, valid conditions
It may be difficult (but not impossible) to mock services used by 3rd party
services.
Do visit your existing tools and see how you can bring integration tests
into your development