The document discusses MockServer-driven testing (MSDT), a methodology for developing automated UI tests using a mock server. The main ideas are to create a mock server that replaces the real backend and cover features supported by the mock server with UI tests. Key benefits include faster, independent tests and the ability to test more scenarios. Potential downsides include costs of maintaining the mock server and possibility of bugs. Examples of use cases and implementing a proof of concept mock server for chat messaging are provided.
Automation for Anyone at Nutanix NEXT 2017 USChris Wahl
Are you wondering how to solve repetitive tasks with software automation, but you struggle every time you see the word “developer” or “code?” Do you know what APIs are and how they make these tasks easy to solve? In this session, we’ll explore the framework that can apply to mundane tasks (i.e. PowerShell, Pester), and we’ll discuss what open source tools are available to help solve these problems. Walk away with the advice you need to get started!
The Magic of Headless Browser + Puppeteer: Using DevTools Without opening DevTools & GitKraken as a legendary Git GUI Client
1. The power of "Headless Browser". Your invincible genie.
2. Extending the power of headless even more - amazing things we can do with "Puppeteer".
3. "GitKraken" - an intuitive Git GUI client that 1.7 Million+ Devs Rely on.
This talk covers the process of using Coverity to carry out a static analysis of open source projects in order to find bugs. and improve the code base.
Antifragility and testing for distributed systems failureDiUS
Failure is inevitable. In our modern world filled with continuously delivered and increasingly complex distributed architectures (looking at you micro-services), it is important to be able to test and improve our systems under a range of failure conditions.
In this talk, Matt discusses these complexities and the forces they exert on development teams, presenting some simple strategies and practical advice to deal with them.
Automation for Anyone at Nutanix NEXT 2017 USChris Wahl
Are you wondering how to solve repetitive tasks with software automation, but you struggle every time you see the word “developer” or “code?” Do you know what APIs are and how they make these tasks easy to solve? In this session, we’ll explore the framework that can apply to mundane tasks (i.e. PowerShell, Pester), and we’ll discuss what open source tools are available to help solve these problems. Walk away with the advice you need to get started!
The Magic of Headless Browser + Puppeteer: Using DevTools Without opening DevTools & GitKraken as a legendary Git GUI Client
1. The power of "Headless Browser". Your invincible genie.
2. Extending the power of headless even more - amazing things we can do with "Puppeteer".
3. "GitKraken" - an intuitive Git GUI client that 1.7 Million+ Devs Rely on.
This talk covers the process of using Coverity to carry out a static analysis of open source projects in order to find bugs. and improve the code base.
Antifragility and testing for distributed systems failureDiUS
Failure is inevitable. In our modern world filled with continuously delivered and increasingly complex distributed architectures (looking at you micro-services), it is important to be able to test and improve our systems under a range of failure conditions.
In this talk, Matt discusses these complexities and the forces they exert on development teams, presenting some simple strategies and practical advice to deal with them.
Cocktail of Environments. How to Mix Test and Development Environments and St...Aleksandr Tarasov
Usually, companies have a clear separation between testing environments and development environments. But what if we take a different approach and combine everything into one environment and still survive? The speaker will discuss ways to organize cloud environments for testing and development, compare them, and discuss the pros and cons of the combined approach.
Learn about the benefits of writing unit tests. You will spend less time fixing bugs and you will get a better design for your software. Some of the questions answered are:
Why should I, as a developer, write tests?
How can I improve the software design by writing tests?
How can I save time, by spending time writing tests?
When should I write unit tests and when should I write system tests?
Hacking Vulnerable Websites to Bypass FirewallsNetsparker
These slides were used by our security researcher Sven Morgenroth during the live demo of how to hack web applications and bypass firewalls. You can watch the live demo here: https://www.netsparker.com/blog/web-security/vulnerable-web-applications-developers-target/#livedemo
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalAnna Royzman
Thomas Haver teaches how to automate both strategically and tactically to maximize the benefits of automation - at Test Leadership Congress 2018.
http://testleadershipcongress-ny.com
Great Android apps only include what's needed to achieve the goals of the product, not enhance the resume of the developer. What’s more, the more maintainable an application is, the more likely it will have increased user satisfaction and decreased time to market.
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
Gain insights into the practical applications of ChatGPT, Bard, and other AI-based technological advancements, including GitHub CoPilot and Applitools Self-Healing Cloud, in this session with Anand Bagmar. Through specific use cases, Anand demonstrates how to enhance test automation processes—making them faster, more stable, and easier to implement.
Session recording and more info at applitools.com
Uncover how these tools can revolutionize your testing strategies and stay ahead of the curve in the ever-evolving world of test automation.
Встреча "QA: в каких направлениях может найти себя тестировщик?"GoIT
19.12.2014 в креативном пространстве "Часопыс" состоялась очередная встреча от проекта GoIT, посвященная "вечному". Наши любимые преподаватели и менторы доносили следующее:
• Виды QA и специфика работы в каждом из этих направлений;
• Необходимые вспомогательные навыки, которыми должен обладать тестировщик;
• Новинки мира QA.
Наши спикеры:
Николай Ковш - QA Engineer в Ciklum, которому успешно удалось перейти в сферу IT из маркетинга. Расскажет о необходимости тестировщикам уметь программировать.
Алла Пенальба - QA Lead в компании invisibleCRM, работала в компании ПИКСУС, 4 года проживала в Бельгии, где работала Mobile QA Engineer.
Марина Шевченко - Mobile QA Engineer в Ciklum. QA с опытом тестирования веб, десктопных и мобильных приложений. Расскажет о специфике тестирования мобильных приложений.
Александр Майданюк - Head of Quality Assurance Solution в компании Ciklum. Занимал должности QA Lead, Manager, QA Consultant и Trainer. Эксперт и судья QA секции чемпионата UA Web Challenge. Соучредитель Киевского клуба тестировщиков QA Club.
Building High Quality Android ApplicationsLeif Janzik
The slides from my talk "Building High Quality Android Applications with Continuous Integration and Automated device tests" from April 9th at DroidCon 2013 in Berlin
A guide to hiring a great developer to build your first app (redacted version)Oursky
Hiring the right developer for your startup can be wearying. In this bitesized Garage Academy session, Ben Cheng, CEO of Oursky will provide you with all the tips for hiring your first developer -- from app development team structure to recruitment to management.
About the speaker:
Ben Cheng is the CEO of Oursky, a Hong Kong-based app dev studio that helps entrepreneurs and startups turn their ideas into reality. He has driven the company’s vision, strategy, and growth since its inception in 2008, and grown the technology-driven team from 3 to over 40 in Hong Kong and Taipei.
ABOUT OURSKY:
Founded in 2008, Oursky has developed web & mobile apps for startups and enterprises such as ASOS and Thomson Reuters. In 2015, 60% of Oursky's published iOS apps were featured in Apple's App Store and one was selected as a Best of 2013 App.
A deck from the first CDIsrael meetup, presenting our CD flow at Snyk, focusing on our testing framework. A day in a life of a developer - code, test, publish, deploy, monitor.
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
Cocktail of Environments. How to Mix Test and Development Environments and St...Aleksandr Tarasov
Usually, companies have a clear separation between testing environments and development environments. But what if we take a different approach and combine everything into one environment and still survive? The speaker will discuss ways to organize cloud environments for testing and development, compare them, and discuss the pros and cons of the combined approach.
Learn about the benefits of writing unit tests. You will spend less time fixing bugs and you will get a better design for your software. Some of the questions answered are:
Why should I, as a developer, write tests?
How can I improve the software design by writing tests?
How can I save time, by spending time writing tests?
When should I write unit tests and when should I write system tests?
Hacking Vulnerable Websites to Bypass FirewallsNetsparker
These slides were used by our security researcher Sven Morgenroth during the live demo of how to hack web applications and bypass firewalls. You can watch the live demo here: https://www.netsparker.com/blog/web-security/vulnerable-web-applications-developers-target/#livedemo
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalAnna Royzman
Thomas Haver teaches how to automate both strategically and tactically to maximize the benefits of automation - at Test Leadership Congress 2018.
http://testleadershipcongress-ny.com
Great Android apps only include what's needed to achieve the goals of the product, not enhance the resume of the developer. What’s more, the more maintainable an application is, the more likely it will have increased user satisfaction and decreased time to market.
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
Gain insights into the practical applications of ChatGPT, Bard, and other AI-based technological advancements, including GitHub CoPilot and Applitools Self-Healing Cloud, in this session with Anand Bagmar. Through specific use cases, Anand demonstrates how to enhance test automation processes—making them faster, more stable, and easier to implement.
Session recording and more info at applitools.com
Uncover how these tools can revolutionize your testing strategies and stay ahead of the curve in the ever-evolving world of test automation.
Встреча "QA: в каких направлениях может найти себя тестировщик?"GoIT
19.12.2014 в креативном пространстве "Часопыс" состоялась очередная встреча от проекта GoIT, посвященная "вечному". Наши любимые преподаватели и менторы доносили следующее:
• Виды QA и специфика работы в каждом из этих направлений;
• Необходимые вспомогательные навыки, которыми должен обладать тестировщик;
• Новинки мира QA.
Наши спикеры:
Николай Ковш - QA Engineer в Ciklum, которому успешно удалось перейти в сферу IT из маркетинга. Расскажет о необходимости тестировщикам уметь программировать.
Алла Пенальба - QA Lead в компании invisibleCRM, работала в компании ПИКСУС, 4 года проживала в Бельгии, где работала Mobile QA Engineer.
Марина Шевченко - Mobile QA Engineer в Ciklum. QA с опытом тестирования веб, десктопных и мобильных приложений. Расскажет о специфике тестирования мобильных приложений.
Александр Майданюк - Head of Quality Assurance Solution в компании Ciklum. Занимал должности QA Lead, Manager, QA Consultant и Trainer. Эксперт и судья QA секции чемпионата UA Web Challenge. Соучредитель Киевского клуба тестировщиков QA Club.
Building High Quality Android ApplicationsLeif Janzik
The slides from my talk "Building High Quality Android Applications with Continuous Integration and Automated device tests" from April 9th at DroidCon 2013 in Berlin
A guide to hiring a great developer to build your first app (redacted version)Oursky
Hiring the right developer for your startup can be wearying. In this bitesized Garage Academy session, Ben Cheng, CEO of Oursky will provide you with all the tips for hiring your first developer -- from app development team structure to recruitment to management.
About the speaker:
Ben Cheng is the CEO of Oursky, a Hong Kong-based app dev studio that helps entrepreneurs and startups turn their ideas into reality. He has driven the company’s vision, strategy, and growth since its inception in 2008, and grown the technology-driven team from 3 to over 40 in Hong Kong and Taipei.
ABOUT OURSKY:
Founded in 2008, Oursky has developed web & mobile apps for startups and enterprises such as ASOS and Thomson Reuters. In 2015, 60% of Oursky's published iOS apps were featured in Apple's App Store and one was selected as a Best of 2013 App.
A deck from the first CDIsrael meetup, presenting our CD flow at Snyk, focusing on our testing framework. A day in a life of a developer - code, test, publish, deploy, monitor.
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
An Approach to Detecting Writing Styles Based on Clustering Techniquesambekarshweta25
An Approach to Detecting Writing Styles Based on Clustering Techniques
Authors:
-Devkinandan Jagtap
-Shweta Ambekar
-Harshit Singh
-Nakul Sharma (Assistant Professor)
Institution:
VIIT Pune, India
Abstract:
This paper proposes a system to differentiate between human-generated and AI-generated texts using stylometric analysis. The system analyzes text files and classifies writing styles by employing various clustering algorithms, such as k-means, k-means++, hierarchical, and DBSCAN. The effectiveness of these algorithms is measured using silhouette scores. The system successfully identifies distinct writing styles within documents, demonstrating its potential for plagiarism detection.
Introduction:
Stylometry, the study of linguistic and structural features in texts, is used for tasks like plagiarism detection, genre separation, and author verification. This paper leverages stylometric analysis to identify different writing styles and improve plagiarism detection methods.
Methodology:
The system includes data collection, preprocessing, feature extraction, dimensional reduction, machine learning models for clustering, and performance comparison using silhouette scores. Feature extraction focuses on lexical features, vocabulary richness, and readability scores. The study uses a small dataset of texts from various authors and employs algorithms like k-means, k-means++, hierarchical clustering, and DBSCAN for clustering.
Results:
Experiments show that the system effectively identifies writing styles, with silhouette scores indicating reasonable to strong clustering when k=2. As the number of clusters increases, the silhouette scores decrease, indicating a drop in accuracy. K-means and k-means++ perform similarly, while hierarchical clustering is less optimized.
Conclusion and Future Work:
The system works well for distinguishing writing styles with two clusters but becomes less accurate as the number of clusters increases. Future research could focus on adding more parameters and optimizing the methodology to improve accuracy with higher cluster values. This system can enhance existing plagiarism detection tools, especially in academic settings.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
HEAP SORT ILLUSTRATED WITH HEAPIFY, BUILD HEAP FOR DYNAMIC ARRAYS.
Heap sort is a comparison-based sorting technique based on Binary Heap data structure. It is similar to the selection sort where we first find the minimum element and place the minimum element at the beginning. Repeat the same process for the remaining elements.
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...ssuser7dcef0
Power plants release a large amount of water vapor into the
atmosphere through the stack. The flue gas can be a potential
source for obtaining much needed cooling water for a power
plant. If a power plant could recover and reuse a portion of this
moisture, it could reduce its total cooling water intake
requirement. One of the most practical way to recover water
from flue gas is to use a condensing heat exchanger. The power
plant could also recover latent heat due to condensation as well
as sensible heat due to lowering the flue gas exit temperature.
Additionally, harmful acids released from the stack can be
reduced in a condensing heat exchanger by acid condensation. reduced in a condensing heat exchanger by acid condensation.
Condensation of vapors in flue gas is a complicated
phenomenon since heat and mass transfer of water vapor and
various acids simultaneously occur in the presence of noncondensable
gases such as nitrogen and oxygen. Design of a
condenser depends on the knowledge and understanding of the
heat and mass transfer processes. A computer program for
numerical simulations of water (H2O) and sulfuric acid (H2SO4)
condensation in a flue gas condensing heat exchanger was
developed using MATLAB. Governing equations based on
mass and energy balances for the system were derived to
predict variables such as flue gas exit temperature, cooling
water outlet temperature, mole fraction and condensation rates
of water and sulfuric acid vapors. The equations were solved
using an iterative solution technique with calculations of heat
and mass transfer coefficients and physical properties.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
6. 6
1. Introduction to «MockServer-driven testing» methodology
1. Proof of Concept
❏ Creating Native Mock Server
❏ Creating Standalone Mock Server
1. Showcasing the methodology on the real project
Contents
8. MockServer-Driven Testing (MSDT) is a methodology for developing automated UI tests,
which is a custom branch of the Test Driven Development (TDD) methodology.
8
MockServer-Driven Testing
9. MockServer-Driven Testing (MSDT) is a methodology for developing automated UI tests,
which is a custom branch of the Test Driven Development (TDD) methodology.
The main idea is:
❏ To create a mock server that completely replaces the real backend
❏ To cover the features supported by a mock server with automated UI tests
9
MockServer-Driven Testing
10. MockServer-Driven Testing (MSDT) is a methodology for developing automated UI tests,
which is a custom branch of the Test Driven Development (TDD) methodology.
The main idea is:
❏ To create a mock server that completely replaces the real backend
❏ To cover the features supported by a mock server with automated UI tests
TDD vs MSDT:
❏ TDD: developing unit tests to write application source code
❏ MSDT: developing mock server to write UI tests
10
MockServer-Driven Testing
15. 15
● Automated testing of the frontend does not depend on the backend state
● The tests’ speed is much higher because:
○ What requires a lot of hustle on the UI can be eliminated from the tests
○ What requires customizations on the backend can be driven from tests
○ What weighs a lot from the network perspective can work instantly
Pros
16. 16
● Automated testing of the frontend does not depend on the backend state
● The tests’ speed is much higher because:
○ What requires a lot of hustle on the UI can be eliminated from the tests
○ What requires customizations on the backend can be driven from tests
○ What weighs a lot from the network perspective can work instantly
● Mock server can "open up" the opportunity to write interesting test scenarios (mostly
negative ones though)
Pros
17. 17
● Automated testing of the frontend does not depend on the backend state
● The tests’ speed is much higher because:
○ What requires a lot of hustle on the UI can be eliminated from the tests
○ What requires customizations on the backend can be driven from tests
○ What weighs a lot from the network perspective can work instantly
● Mock server can "open up" the opportunity to write interesting test scenarios (mostly
negative ones though)
● Tests can check not only the UI reflection of responses from the server, but also the
requests to the server itself
Pros
18. 18
● Automated testing of the frontend does not depend on the backend state
● The tests’ speed is much higher because:
○ What requires a lot of hustle on the UI can be eliminated from the tests
○ What requires customizations on the backend can be driven from tests
○ What weighs a lot from the network perspective can work instantly
● Mock server can "open up" the opportunity to write interesting test scenarios (mostly
negative ones though)
● Tests can check not only the UI reflection of responses from the server, but also the
requests to the server itself
● Developers can participate/assist in creating both the mock server and the tests
Pros
20. 20
● 👷♂️ We need to consider the costs of creating/implementing/maintaining a mock
server
Cons
21. 21
● 👷♂️ We need to consider the costs of creating/implementing/maintaining a mock
server
● 🐛 There's a possibility of bugs in the mock server
Cons
22. 22
● 👷♂️ We need to consider the costs of creating/implementing/maintaining a mock
server
● 🐛 There's a possibility of bugs in the mock server
● 🏃♂️ There's a chance the real backend will run off ahead
Cons
24. 1. You're only interested in testing the frontend
24
Use cases
25. 1. You're only interested in testing the frontend
1. You want to manage the backend on the fly
○ e.g.: mock images, banner ads, etc.
Use cases
25
26. 1. You're only interested in testing the frontend
1. You want to manage the backend on the fly
○ e.g.: mock images, banner ads, etc.
1. In tests you’d like to see/catch requests flying off the device
○ e.g.: analytics, custom events, etc.
26
Use cases
27. 1. You're only interested in testing the frontend
1. You want to manage the backend on the fly
○ e.g.: mock images, banner ads, etc.
1. In tests you’d like to see/catch requests flying off the device
○ e.g.: analytics, custom events, etc.
1. You need to emulate the interaction of several users
○ e.g.: chat, games, etc.
27
Use cases
28. 1. You're only interested in testing the frontend
1. You want to manage the backend on the fly
○ e.g.: mock images, banner ads, etc.
1. In tests you’d like to see/catch requests flying off the device
○ e.g.: analytics, custom events, etc.
1. You need to emulate the interaction of several users
○ e.g.: chat, games, etc.
1. ...
28
Use cases
38. We need autotests covering the UI:
a. Incoming/outgoing messages, reactions, attachments, etc.
b. Online/offline
c. In background/foreground
d. On all supported iOS versions
38
Problem statement
40. 1. Use two devices/simulators at the same time
40
Proposed solutions
41. 1. Use two devices/simulators at the same time
1. Create an autoresponder on the backend
41
Proposed solutions
42. 1. Use two devices/simulators at the same time
1. Create an autoresponder on the backend
1. Develop a mock server to simulate the backend and the second participant in chat
42
Proposed solutions
43. 1. Use two devices/simulators at the same time
1. Create an autoresponder on the backend
1. Develop a mock server to simulate the backend and the second participant in chat
43
Proposed solutions
47. 47
Native Standalone
Same programming language used in
development, follows the same code style
Lives in the same project
Easier to debug
Mock Server
48. 48
Native Standalone
Same programming language used in
development, follows the same code style
Lives in the same project
Easier to debug
Doesn’t require separate network requests
(everything is controlled from tests)
Mock Server
49. 49
Native Standalone
Same programming language used in
development, follows the same code style
Lives in the same project
Easier to debug
Doesn’t require separate network requests
(everything is controlled from tests)
Parallelization out of the box
Mock Server
50. 50
Native Standalone
Same programming language used in
development, follows the same code style
Lives in the same project
Easier to debug
Doesn’t require separate network requests
(everything is controlled from tests)
Parallelization out of the box
Works like a charm on CI
Mock Server
51. 51
Native Standalone
Same programming language used in
development, follows the same code style
Cross-Platform
Lives in the same project
Easier to debug
Doesn’t require separate network requests
(everything is controlled from tests)
Parallelization out of the box
Works like a charm on CI
Mock Server
52. 52
Native Standalone
Same programming language used in
development, follows the same code style
Cross-Platform
Lives in the same project
Easier to debug
Doesn’t require separate network requests
(everything is controlled from tests)
Parallelization out of the box
Works like a charm on CI
Requires synchronization with the real backend
Mock Server
53. 53
Native Standalone
Same programming language used in
development, follows the same code style
Cross-Platform
Lives in the same project
Easier to debug
Doesn’t require separate network requests
(everything is controlled from tests)
Parallelization out of the box
Works like a charm on CI
Requires synchronization with the real backend
iOS: swifter, Android: http4k, okhttp, ktor rb: sinatra, js: express, py: flask, go: gin …
Mock Server
64. ● Mock server
○ crafted using swifter
64
Key points of implementation
65. ● Mock server
○ crafted using swifter
○ works with HTTP as well as with Websocket
65
Key points of implementation
66. ● Mock server
○ crafted using swifter
○ works with HTTP as well as with Websocket
○ runs on localhost
66
Key points of implementation
67. ● Mock server
○ crafted using swifter
○ works with HTTP as well as with Websocket
○ runs on localhost
● Tests
○ do not look at the real backend
67
Key points of implementation
68. ● Mock server
○ crafted using swifter
○ works with HTTP as well as with Websocket
○ runs on localhost
● Tests
○ do not look at the real backend
○ independent from each other because the mock server turns on before and
turns off after every test
68
Key points of implementation
69. ● Mock server
○ crafted using swifter
○ works with HTTP as well as with Websocket
○ runs on localhost
● Tests
○ do not look at the real backend
○ independent from each other because the mock server turns on before and
turns off after every test
● We
○ use Launch arguments and Environment variables to redirect the app to the
correct server (the mock or production one)
69
Key points of implementation
70. ● Mock server
○ crafted using swifter
○ works with HTTP as well as with Websocket
○ runs on localhost
● Tests
○ do not look at the real backend
○ independent from each other because the mock server turns on before and
turns off after every test
● We
○ use Launch arguments and Environment variables to redirect the app to the
correct server (the mock or production one)
○ keep golden responses from the backend in the repo and use them as
templates, to change/update on the fly during the tests
70
Key points of implementation
81. Challenge
Redirect SDK to the mock server #if … #endif
Share the codebase with SwiftUI Swift Package Manager
Sync mock server with the backend
81
Pitfalls
82. Challenge
Redirect SDK to the mock server #if … #endif
Share the codebase with SwiftUI Swift Package Manager
Sync mock server with the backend Stream Chat API
82
Pitfalls