This document discusses test-driven development (TDD) and its application to Android development. It begins with an introduction to TDD, outlining its core principles and benefits. It describes the "red, green, refactor" process and emphasizes writing tests before code. It addresses challenges with testing Android code, such as dependencies on framework classes, and recommends strategies like wrapping classes to isolate dependencies. Finally, it outlines the benefits of TDD such as reduced bugs, improved design, and increased productivity over the long run despite initial slower development.
End-to-end performance testing, profiling, and analysis at RedisFilipe Oliveira
High-performance (as measured by sub-millisecond response time for queries) is a key characteristic of the Redis database, and it is one of the main reasons why Redis is the most popular key-value database in the world.
To continue improving performance across all of the different Redis components, we've developed a framework for automatically triggering performance tests, telemetry gathering, profiling, and data visualization upon code commit.
In this short presentation, we describe how this type of automation and "zero-touch" profiling scaled our ability to pursue performance regressions and to find opportunities to improve the efficiency of our code, helping us (as a company) to start shifting from a reactive to a more proactive performance mindset.
TDD on android. Why and How? (Coding Serbia 2019)Danny Preussler
We all heard about TDD: test-driven development. The one side says: It produces better code and fewer bugs, other's see a waste of time. How much time does TDD cost? Does it even work on Android? Is it possible to develop an android app fully test driven? Should we do it? And if: should we only test Java classes? Should we use or avoid Robolectric? How do I even start?
It is always tough to test a complex API comprehensively. The additional level of complexity brings us to the question “How can we validate that our API is working as intended?”
In this talk I will explain how to use test driven development for APIs to solve this problem and even further how TDD can drive an API Design towards a more usable design. I will outline my practical approach with an implementation example based on django. And finally I will give you a brief summary of my lessons learned using this approach in customer projects.
Development is inherently collaborative. So why aren't you doing code review? This session discusses the importance of collaboration around your source code, the impact code review can have on development teams, and offers guidance on how to get started.
Atlassian Speaker: Matt Quail
Customer Speaker: Patrick Coleman of Dash
Key Takeaways:
* Peer code review explained
* Benefits and approaches to effective code review
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Aysylu Greenberg
It's hard to imagine a modern developer workflow without a sufficiently advanced build system: Make, Gradle, Maven, Rake, and many others. In this talk, we'll discuss the evolution of build systems that leads to distributed build systems. Then, we'll dive into how we can build a scalable system that is fast and resilient, with examples from Google. We'll conclude with the discussion of general challenges of migrating systems from one architecture to another.
This is the presentation for the capstone workshop for the Houston R User Group. We walk through package creation, using github to collaborate on code and build a helper package in R for HRUG members.
Continuous Integration, the minimum viable productJulian Simpson
What does it mean to 'do' Continuous Integration? It used to be enough to execute your unit tests in CI. But the bar is steadily raising for engineering practices. In the last decade we've seen tremendous improvements inacceptance testing. JavaScript is now a platform in it's own right. Cloudcomputing is now vital. There's growing interest in deployment to prod.So Continuous Integration is under more pressure than ever. As the bar slowly raises for engineering practices, we ll present 2011's minimum viable feature set for Continuous Integration
End-to-end performance testing, profiling, and analysis at RedisFilipe Oliveira
High-performance (as measured by sub-millisecond response time for queries) is a key characteristic of the Redis database, and it is one of the main reasons why Redis is the most popular key-value database in the world.
To continue improving performance across all of the different Redis components, we've developed a framework for automatically triggering performance tests, telemetry gathering, profiling, and data visualization upon code commit.
In this short presentation, we describe how this type of automation and "zero-touch" profiling scaled our ability to pursue performance regressions and to find opportunities to improve the efficiency of our code, helping us (as a company) to start shifting from a reactive to a more proactive performance mindset.
TDD on android. Why and How? (Coding Serbia 2019)Danny Preussler
We all heard about TDD: test-driven development. The one side says: It produces better code and fewer bugs, other's see a waste of time. How much time does TDD cost? Does it even work on Android? Is it possible to develop an android app fully test driven? Should we do it? And if: should we only test Java classes? Should we use or avoid Robolectric? How do I even start?
It is always tough to test a complex API comprehensively. The additional level of complexity brings us to the question “How can we validate that our API is working as intended?”
In this talk I will explain how to use test driven development for APIs to solve this problem and even further how TDD can drive an API Design towards a more usable design. I will outline my practical approach with an implementation example based on django. And finally I will give you a brief summary of my lessons learned using this approach in customer projects.
Development is inherently collaborative. So why aren't you doing code review? This session discusses the importance of collaboration around your source code, the impact code review can have on development teams, and offers guidance on how to get started.
Atlassian Speaker: Matt Quail
Customer Speaker: Patrick Coleman of Dash
Key Takeaways:
* Peer code review explained
* Benefits and approaches to effective code review
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Aysylu Greenberg
It's hard to imagine a modern developer workflow without a sufficiently advanced build system: Make, Gradle, Maven, Rake, and many others. In this talk, we'll discuss the evolution of build systems that leads to distributed build systems. Then, we'll dive into how we can build a scalable system that is fast and resilient, with examples from Google. We'll conclude with the discussion of general challenges of migrating systems from one architecture to another.
This is the presentation for the capstone workshop for the Houston R User Group. We walk through package creation, using github to collaborate on code and build a helper package in R for HRUG members.
Continuous Integration, the minimum viable productJulian Simpson
What does it mean to 'do' Continuous Integration? It used to be enough to execute your unit tests in CI. But the bar is steadily raising for engineering practices. In the last decade we've seen tremendous improvements inacceptance testing. JavaScript is now a platform in it's own right. Cloudcomputing is now vital. There's growing interest in deployment to prod.So Continuous Integration is under more pressure than ever. As the bar slowly raises for engineering practices, we ll present 2011's minimum viable feature set for Continuous Integration
London Atlassian User Group - February 2014Steve Smith
Continuous deployment is causing organisations to rethink how they build and release software. Atlassian Bamboo is rapidly adding features to help with automating deployment, but there are a lot of other practical and organisational issues that need to be addressed when adopting this development model. The Atlassian business-platforms team has been dealing with these issues over the last few months as we transition our order system to continuous deployment. This talk will cover why we adopted this model, some of challenges we encountered, and the approaches and tools we used to overcome them.
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
Writing functional tests using Geb in a Grails application is fine for a development team. But when you have QA automation engineers, giving them access to the Grails app might not be the best solution (specially when they belong to a different team).
So the same way DevOps allow developers and sysadmins collaborate together, let’s talk about DevQA, and make them happy using a framework stack powered by Groovy.
Besides above considerations, in this talk I will show a live example on how to setup an independent project for functional tests using Gradle, Groovy, Spock and Geb.
Continuous delivery of embedded systems embedded meetupMike Long
Continuous Delivery is all the rage, but many of the practices are not applied in the embedded world because the literature seems to focus on the web development community. That is a great shame, because there is a great deal we can apply on our embedded software development projects. This talk will show you how to apply some of the key techniques, such as embedded versioning and software traceability, embedded continuous delivery pipelines, acceptance testing with hardware, automatic deployment to hardware, continuous deployment. Beyond that, the talk will show some real-life examples of companies who are at the leading edge of this adoption.
Talk given at the Oslo Embedded Software meetup group.
This presentation outlines the philosophy, concepts and tools your team needs to completely test drive your products efficiently, from the front end down. It will define what unit tests and TDD are, and cover acceptance testing and ATDD with Cucumber, behavior driven development (BDD) and various test structures, mock objects, and fluent matchers.
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsAndrew McElroy
How to build better, and more stable Native (Titanium) Mobile Apps using Calabash and Mocha unit testing. Gist for the Jenkins Config: https://gist.github.com/Sophrinix/70c757e8f1e4bf4578ff
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
Paul Hammant of ThoughtWorks runs through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it, and Perforce in particular, in their enterprise. Takeaways include prerequisites, pitfalls, economics, scaling, and related practices.
Slides da palestra no Café Ágil da ThoughtWorks e Tá Safo em Belém, 10/08/2012.
Outros links interessantes:
http://www.youtube.com/watch?v=xzstASOvqNc
http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/
Intercom has had an automated deployment system since the early days of the company. In this talk Eugene, one of our engineers, discusses some of the additional benefits of continuous deployment.
How do you tame a big ball of mud? One test at a time.Matt Eland
A broad and high level overview of .NET unit test libraries that will help you write better tests. Discussions around Scientist .NET, Bogus, AutoFixture, Snapper, and others.
Blazing Fast Feedback Loops in the Java UniverseMichał Kordas
We all know that fast feedback loops make a real difference and that they are the most important part of agile development in general. This is why I want to take you on a tour of a variety of ways to increase quality and optimize feedback loops that I’ve encountered in the JVM-based projects that I’ve worked on so far.
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...Baruch Sadogursky
While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the antipatterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDays Riga
Practices of trunk based development and continuous deployment have helped our six vertical slice product delivery teams be able to work together on a single product (and codebase) while maintaining rapid iteration and experimentation. With this talk I hope to inspire more teams to try these practices.
Lightening Talk I gave at Inaka in April 2014.
I was in charge of investigating test-driven development for our iOS mobile team. Since I realized it was such a big concept, after having gathered enough information and having played with it enough, I decided to introduce my fellows on the topic by presenting it in a formal talk with slides. The aim was teaching them a different way of developing, which, for us, at that moment, was completely new and controversial.
London Atlassian User Group - February 2014Steve Smith
Continuous deployment is causing organisations to rethink how they build and release software. Atlassian Bamboo is rapidly adding features to help with automating deployment, but there are a lot of other practical and organisational issues that need to be addressed when adopting this development model. The Atlassian business-platforms team has been dealing with these issues over the last few months as we transition our order system to continuous deployment. This talk will cover why we adopted this model, some of challenges we encountered, and the approaches and tools we used to overcome them.
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
Writing functional tests using Geb in a Grails application is fine for a development team. But when you have QA automation engineers, giving them access to the Grails app might not be the best solution (specially when they belong to a different team).
So the same way DevOps allow developers and sysadmins collaborate together, let’s talk about DevQA, and make them happy using a framework stack powered by Groovy.
Besides above considerations, in this talk I will show a live example on how to setup an independent project for functional tests using Gradle, Groovy, Spock and Geb.
Continuous delivery of embedded systems embedded meetupMike Long
Continuous Delivery is all the rage, but many of the practices are not applied in the embedded world because the literature seems to focus on the web development community. That is a great shame, because there is a great deal we can apply on our embedded software development projects. This talk will show you how to apply some of the key techniques, such as embedded versioning and software traceability, embedded continuous delivery pipelines, acceptance testing with hardware, automatic deployment to hardware, continuous deployment. Beyond that, the talk will show some real-life examples of companies who are at the leading edge of this adoption.
Talk given at the Oslo Embedded Software meetup group.
This presentation outlines the philosophy, concepts and tools your team needs to completely test drive your products efficiently, from the front end down. It will define what unit tests and TDD are, and cover acceptance testing and ATDD with Cucumber, behavior driven development (BDD) and various test structures, mock objects, and fluent matchers.
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsAndrew McElroy
How to build better, and more stable Native (Titanium) Mobile Apps using Calabash and Mocha unit testing. Gist for the Jenkins Config: https://gist.github.com/Sophrinix/70c757e8f1e4bf4578ff
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
Paul Hammant of ThoughtWorks runs through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it, and Perforce in particular, in their enterprise. Takeaways include prerequisites, pitfalls, economics, scaling, and related practices.
Slides da palestra no Café Ágil da ThoughtWorks e Tá Safo em Belém, 10/08/2012.
Outros links interessantes:
http://www.youtube.com/watch?v=xzstASOvqNc
http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/
Intercom has had an automated deployment system since the early days of the company. In this talk Eugene, one of our engineers, discusses some of the additional benefits of continuous deployment.
How do you tame a big ball of mud? One test at a time.Matt Eland
A broad and high level overview of .NET unit test libraries that will help you write better tests. Discussions around Scientist .NET, Bogus, AutoFixture, Snapper, and others.
Blazing Fast Feedback Loops in the Java UniverseMichał Kordas
We all know that fast feedback loops make a real difference and that they are the most important part of agile development in general. This is why I want to take you on a tour of a variety of ways to increase quality and optimize feedback loops that I’ve encountered in the JVM-based projects that I’ve worked on so far.
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...Baruch Sadogursky
While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the antipatterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDays Riga
Practices of trunk based development and continuous deployment have helped our six vertical slice product delivery teams be able to work together on a single product (and codebase) while maintaining rapid iteration and experimentation. With this talk I hope to inspire more teams to try these practices.
Lightening Talk I gave at Inaka in April 2014.
I was in charge of investigating test-driven development for our iOS mobile team. Since I realized it was such a big concept, after having gathered enough information and having played with it enough, I decided to introduce my fellows on the topic by presenting it in a formal talk with slides. The aim was teaching them a different way of developing, which, for us, at that moment, was completely new and controversial.
Seconda serata di introduzione al Test-Driven Development, tenuta in XPeppers a Trento il 24 Ottobre 2012.
Nelle slide c'è anche la descrizione del coding dojo sullo string calculator che abbiamo svolto assieme.
Presentation made to CoastNerds November 2010 by Scott Wallace and Robert Dyball. Entitled "Test Driven Development - A Testing Journey", it describes the path we've started in agile development through test last, test first, TDD, ATDD and on to BDD. (The principles in the presentation apply to any language.)
Bigger Unit Tests are Better - why small unit test classes will slow you down.
Do you take care that every class in your system has a separate unit test class? Are you a proud Test-First advocate? A code coverage advocate? Are you the Sonar police in your team? Do you take pride in knowing all the quirks of your mocking framework? Then this session might be a cold shower for you.
You will see how the general approach to unit testing might harm your flexibility. But a few simple changes in your approach will make your life better, your coding faster, your refactoring easier and your understanding of the business requirements stronger.
In this presentation, you will learn new strategies that will help you make your unit tests bigger. First, guided by clear code examples, we will look at why having many small test classes may harm you. Secondly, you will understand why making the tests bigger is such an important improvement. And lastly, you will learn techniques and tricks that will help make your unit tests bigger.
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
===
Presentation (revisited & updated) shared at JDD 2022:
https://jdd.org.pl/lecture_2022/#id=78434
Talk @Carmudi GmbH office on Unit testing basics and advanced concepts, like Arrange-Act-Assert rule, Unit Test anatomy, etc. In the end - a small overview of Test Driven Development.
Many developers know that they should be writing tests for their apps. However, it’s often hard to know how to get started or to convince your manager that you should be spending half of your time writing and maintaining test code. In this talk, you will learn how you can integrate testing into your day-to-day workflow and you’ll learn why a good test suite will not cost you a lot of time. Instead, it should end up saving you time. And as you know, the manager loves it when you manage to save time. You will understand how TDD works, how to integrate the important bits of TDD and how to build a high-quality test suite that is a pleasure to maintain. To round things out, you will also learn about Xcode 11’s new test plans feature and how you can use it to make your test suite even better!
An Introduction To Software Development - Test Driven Development, Part 1Blue Elephant Consulting
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/bCp1fbAd56k
Similar to Test Driven Development on Android (Kotlin Kenya) (20)
We have all heard about TDD: Test Driven Development. It produces better code and leads to fewer bugs. But, in our daily Android lives, why aren’t we doing it? Is it possible to develop an Android app that is fully test driven? Where do you start? Should you only test Java classes? Should you use or avoid Robolectric?
Junit5: the next gen of testing, don't stay behindDanny Preussler
Junit 5 is a big step for the world of unit testing. A new very flexible testing framework, based on learning from many years of Junit 4.
At sporttotal we use this for our Android unit tests and it changed the way we write tests. Hard for us to imagine living without features like @Nested. Other features we ignored as those are more leaning towards Java and are solved already by Kotlin or other Kotlin libraries. And some features are even breaking changes. How do you test on Android in a world without TestRunner and TestRules?
Android testing team was always very slowly in adopting to new Junit versions, so how far can we bypass this?
Let's do a deep dive into Junit5, how it works and how we can use it on Android
Demystifying dependency Injection: Dagger and ToothpickDanny Preussler
Dependency Injection, that's the thing that Dagger2 does, right? For most of us, it's black magic. Let's look deeper how DI works. And then we better understand the frameworks that are out there. This session introduce Toothpick that was created this year and is already used by millions of users as driven a lot by engineers at Groupon.
What was their need? What's wrong with Dagger?
Toothpick was designed to bring goodies from Guice to modern mobile world. It focuses on scopes and unit testing without loosing performance as Roboguice did.
Unit testing without Robolectric, Droidcon Berlin 2016Danny Preussler
Are you bound to flaky, slow Robolectric Tests? Do you want to know a way out of it? This session shows ideas and concepts to replace Robolectric from your test code base
All around the world, localization and internationalization on Android (Droid...Danny Preussler
Android apps are global, they get downloaded all around the world. And this means not only supporting multiple languages via xml files. Its about plurals, date formats, currencies up to things like right-to-left
This topic tries to give an introduction into this large topic for new developers.
(Android) Developer Survival in Multiscreen World, MobCon Sofia 2016Danny Preussler
A modern Android app looks good on phones various sizes, often also a tablet version is required. But good tablet version is more than just a bigger screen, it might have completely different flows.
Now Android TV starts, another entry into the same app code. How does this affect an app? What is with Android Wear?
What code can and should be reused? How can an app be prepared for another screen? Whats a good architecture for this? Which patterns work, which patterns we know are outdated for the new multi screen world of Android?
Bye Bye Charles, Welcome Odo, Android Meetup Berlin May 2014Danny Preussler
Introducing the next generation testing proxy we use at Groupon to the public:
Odo an http proxy with a RESTful API for mocking or partial rewriting of responses and requests
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, BerlinDanny Preussler
Mobile Apps leben nicht in einer isolierten Welt, sie interagieren mit anderen Apps, mit Services sowie internen und externen Datenquellen. Auch der Nutzer hat hier Einfluss: er wechselt in Realität schnell zwischen Apps, er nimmt Anrufe entgegen während die App läuft. Wenn es zum Testen kommt, stellt uns dies vor Herausforderungen, denn hier brauchen wir isolierte Zustände. Nur so können die Tests reproduzierbare Ergebnisse liefern. Und doch wollen wir die App realitätsnah testen. Wie testet man aber eine App mit Webservices? Wie entkoppelt man diesen, wie testet man Fehlerzuständige die in der Kommunikation passieren können? Wie simuliert man GPS u.ä.? Diese Session versucht Best Practices hierzu zu vermitteln. Es werden sowohl SDK Bordmittel als auch externe Tools vorgestellt, die uns das Testen von Apps in diesen komplexen Fällen erleichtern.
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.
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.
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.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
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.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
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.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
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.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
4. about:me
• Finished university in 2001
• Switched to Java in 2003
• Switched to Kotlin in 2016
• Worked for eBay, Groupon, Viacom
• Android Engineer at SoundCloud
• GDE since 2016
5. about:sc
• Founded 2007 in Berlin, Germany
• World’s largest open audio platform
• 200 million tracks, 25 million creators (2019)
• Around 500 employees
• Playstore: 100,000,000+ installs
• Ratings: 4.7 (5,500,500)
Our Mission
is to lead
what’s next in
music.
Our Purpose
is to accelerate
creators' careers.
16. The 3 rules of TDD
•Create a unit tests that fails
•Write just enough production code
to makes that test pass.
•Clean up the mess you just made.
micro-cycle (minutes)
17. The 3 rules of TDD
•Create a unit tests that fails
•Write just enough production code
to makes that test pass.
•Clean up the mess you just made.
micro-cycle (minutes)
18. The 3 rules of TDD
•Create a unit tests that fails
•Write just enough production code
to makes that test pass.
•Clean up the mess you just made.
micro-cycle (minutes)
19. The 3 rules of TDD
•Create a unit tests that fails
•Write just enough production code
to makes that test pass.
•Clean up the mess you just made.
micro-cycle (minutes)
20. The 3 rules of TDD
•Create a unit tests that fails
•Write just enough production code
to makes that test pass.
•Clean up the mess you just made.
•REPEAT
micro-cycle (minutes)
22. Be precise:
•You must not write more of a test than
is sufficient to fail
•Not compiling is failing!
•You must not write more production
code than is sufficient to make the
currently failing test pass
micro-cycle (minutes)
23. Be precise:
•You must not write more of a test than
is sufficient to fail
•Not compiling is failing!
•You must not write more production
code than is sufficient to make the
currently failing test pass.
micro-cycle (minutes)
24. Be precise:
•You must not write more of a test than
is sufficient to fail
•Not compiling is failing!
•You must not write more production
code than is sufficient to make the
currently failing test pass.
micro-cycle (minutes)
64. TDD and tests
•Kent Beck spoke about behavior of the system in his TDD
book
•A “unit” does not mean every class/method!
Unit came from Blackbox!
•TDD tests behaviors not implementation details!
•What your software does, is stable!
How it does this, is unstable!
TDD what went wrong: https://www.youtube.com/watch?v=EZ05e7EMOLM
65. TDD and tests
•Kent Beck spoke about behavior of the system in his TDD
book
•A “unit” does not mean every class/method!
Unit came from Blackbox!
•TDD tests behaviors not implementation details!
•What your software does, is stable!
How it does this, is unstable!
TDD what went wrong: https://www.youtube.com/watch?v=EZ05e7EMOLM
66. TDD and tests
•Kent Beck spoke about behavior of the system in his TDD
book
•A “unit” does not mean every class/method!
Unit came from Blackbox!
•TDD tests behaviors not implementation details!
•What your software does, is stable!
How it does this, is unstable!
TDD what went wrong: https://www.youtube.com/watch?v=EZ05e7EMOLM
67. TDD and tests
•Kent Beck spoke about behavior of the system in his TDD
book
•A “unit” does not mean every class/method!
Unit came from Blackbox!
•TDD tests behaviors not implementation details!
•What your software does, is stable!
How it does this, is unstable!
TDD what went wrong: https://www.youtube.com/watch?v=EZ05e7EMOLM
68. TDD and tests
• unit test must be fast!
• no databases
• no network calls
• if -> integration test
martinfowler.com
72. Android SDK under test
•Wrap things
class BundleBuilder
@Inject
constructor() {
operator fun invoke() = Bundle()
}
73. Android SDK under test
•Wrap things
class BundleBuilder
@Inject
constructor() {
operator fun invoke() = Bundle()
operator fun invoke(vararg pairs: Pair<String, Any?>) =
bundleOf(*pairs)
}
74. Android SDK under test
•Wrap things (keep it simple)
@VisibleForTesting
var bundleBuilder: () -> Bundle = { Bundle() }
80. Robolectric 4
•Android builds are already slow!
•Robolectric is just another “android device”
•Not compatible with Junit5
•Still slower than pure junit
•It’s goal: replace Espresso not JVM Tests
81. be pragmatic, not dogmatic
@RobolectricNeededAsOf(Uri::class)
@RunWith(RobolectricTestRunner::class)
class UploadStarterTest {
98. Isn’t it slow?
•Single + Initial feature will take longer
•Bugfixing phase is shorter
•Debugging disappears
•Ci finds bugs before QA does
• Long term it’s much faster no more big rewrite
99. Isn’t it slow?
•Single + Initial feature will take longer
•Bugfixing phase is shorter
•Debugging disappears
•Ci finds bugs before QA does
• Long term it’s much faster no more big rewrite
100. Isn’t it slow?
•Single + Initial feature will take longer
•Bugfixing phase is shorter
•Debugging disappears
•Ci finds bugs before QA does
• Long term it’s much faster no more big rewrite
101. Isn’t it slow?
•Single + Initial feature will take longer
•Bugfixing phase is shorter
•Debugging disappears
•Ci finds bugs before QA does
• Long term it’s much faster no more big rewrite
102. Isn’t it slow?
•Single + Initial feature will take longer
•Bugfixing phase is shorter
•Debugging disappears
•Ci finds bugs before QA does
• Long term it’s much faster no more big rewrite
113. “Never ask permission to refactor.
Never ask permission to write tests.
You do these things because you KNOW
they are the best way to go fast.“
Robert C Martin
121. More resources
• TDD what went wrong:
https://www.youtube.com/watch?v=EZ05e7EMOLM
• The three laws of TDD by Uncle Bob
https://www.youtube.com/watch?v=AoIfc5NwRks
• TDD for those who don't need it
https://www.youtube.com/watch?v=a6oP24CSdUg