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.
This presentation addresses web app integration testing (a.k.a. browser testing) in Python. It focuses on currently-available tools, including one that I wrote, and looks at some specific integration testing concerns for the Django web framework.
This presentation has been prepared to share knowledge about JetBrains UpSource tool usage on HTML project for back-end developers. Also code review process description has been provided to share good/bad experience of code review procedure.
Everybody wants to invest in automated testing solution because it saves money and improves quality. But usually after the initial investment of time and resources in implementation and few months of happy running it starts breaking, then stops working completely, then it is abandoned. How do you prevent this from happening? How can you make it easier for developers and testers to keep it up?
I want to share my experience with creating automated testing solutions for eclipse based projects and describe what worked and what did not. This talk will include descriptions of several testing frameworks and why some of them failed. Testing frameworks discussed will include JUnit, Mockito, SWTBot, Window Tester, Jubula, Squish and some in-house frameworks. I also will describe how to take advantage of static analysis for testing.
I will share tips and tricks on how to design your code with testing in mind and how to create effective test cases and integrate testing into your development process in order to reduce the chance of automated testing abandonment.
How to Upgrade to the Newest Shiniest Django VersionSusan Tan
If you’re coding Django, you will inevitably need to upgrade your project’s version of Django to a newer version. Is this process really tedious, you ask? YES. But before you jump off a cliff in despair, come to my talk and learn time-saving strategies on this upgrade process. I'll go over my work in upgrading a web application from Django 1.3 to 1.7 and the lessons that I've learned in that arduous process.
This presentation addresses web app integration testing (a.k.a. browser testing) in Python. It focuses on currently-available tools, including one that I wrote, and looks at some specific integration testing concerns for the Django web framework.
This presentation has been prepared to share knowledge about JetBrains UpSource tool usage on HTML project for back-end developers. Also code review process description has been provided to share good/bad experience of code review procedure.
Everybody wants to invest in automated testing solution because it saves money and improves quality. But usually after the initial investment of time and resources in implementation and few months of happy running it starts breaking, then stops working completely, then it is abandoned. How do you prevent this from happening? How can you make it easier for developers and testers to keep it up?
I want to share my experience with creating automated testing solutions for eclipse based projects and describe what worked and what did not. This talk will include descriptions of several testing frameworks and why some of them failed. Testing frameworks discussed will include JUnit, Mockito, SWTBot, Window Tester, Jubula, Squish and some in-house frameworks. I also will describe how to take advantage of static analysis for testing.
I will share tips and tricks on how to design your code with testing in mind and how to create effective test cases and integrate testing into your development process in order to reduce the chance of automated testing abandonment.
How to Upgrade to the Newest Shiniest Django VersionSusan Tan
If you’re coding Django, you will inevitably need to upgrade your project’s version of Django to a newer version. Is this process really tedious, you ask? YES. But before you jump off a cliff in despair, come to my talk and learn time-saving strategies on this upgrade process. I'll go over my work in upgrading a web application from Django 1.3 to 1.7 and the lessons that I've learned in that arduous process.
From a Joomla Day Midwest presentation, this focuses on unit testing in the open source Joomla project. The slides wrap around two demonstrations that cannot be included here.
We investigate one of the most popular approaches to creating software: test driven development. From the basic understanding why tests are important to a new software development paradigm, where you start with tests and them do the implementation. We glance over different areas of testing and see how one should really do the software testing in different situation.
Testing for Android: When, Where, and How to Successfully Use Test AutomationTrent Peterson
A high-level overview of test automation on the Android platform, beginning with a brief intro to software testing, how mobile isn't all that different from problems faced in the past, a tour of the most popular free tools available, and some words of advice.
The slides accompanied a talk presented at the San Francisco Android User Group on October 29, hosted at Twitter.
What makes up an acceptance testing framework? Especially one that will help you use Selenium successfully? How about a list of what ones currently exist? We've got you covered.
This talk was prepared for the DC Selenium Meetup in April 2013.
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.
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
Principles and patterns for test driven developmentStephen Fuqua
Developed to help introduce key topics in Test Driven Development, for new and veteran developers alike. Some examples are language-specific (C# / MSTest / Moq), but the principles apply to any object oriented language.
How to Build and Maintain Quality Drupal Sites with Automated TestingAcquia
Automated testing has greatly improved the Drupal core development process. With automated testing over 24,500 unique core patches have been reviewed, and almost 19,000 test assertions are now run against every core patch. The result has been faster development cycle, more stable releases, and the ability to add features more quickly to Drupal core.
Selenium is used in many IT companies due to its numerous advantages compared to other automation testing tools in the market.We provide best Selenium training in Chennai with real time scenarios. We are the best training institute in Chennai providing the real time training in Chennai
San Francisco Java User Group presents Chris Bedford who talks about:
- How to write functional tests with Selenium (including explaining its IDE, architecture, RC, and alternatives like Canoo WebTest)
- How to set up Selenium testing for web apps in continuous integration using Maven, Ant, Cargo, etc.
- How to use Hudson for build server (brief overview)
January 12, 2010 in San Francisco, CA
http://www.sfjava.org/calendar/11982857/
Hosted by SUPINFO International University
Sponsored by TEKsystems, Guidewire Software, Sun, O'Reilly, JetBrains, and Marakana.
Video by Max Walker
Organized by Marakana
From a Joomla Day Midwest presentation, this focuses on unit testing in the open source Joomla project. The slides wrap around two demonstrations that cannot be included here.
We investigate one of the most popular approaches to creating software: test driven development. From the basic understanding why tests are important to a new software development paradigm, where you start with tests and them do the implementation. We glance over different areas of testing and see how one should really do the software testing in different situation.
Testing for Android: When, Where, and How to Successfully Use Test AutomationTrent Peterson
A high-level overview of test automation on the Android platform, beginning with a brief intro to software testing, how mobile isn't all that different from problems faced in the past, a tour of the most popular free tools available, and some words of advice.
The slides accompanied a talk presented at the San Francisco Android User Group on October 29, hosted at Twitter.
What makes up an acceptance testing framework? Especially one that will help you use Selenium successfully? How about a list of what ones currently exist? We've got you covered.
This talk was prepared for the DC Selenium Meetup in April 2013.
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.
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
Principles and patterns for test driven developmentStephen Fuqua
Developed to help introduce key topics in Test Driven Development, for new and veteran developers alike. Some examples are language-specific (C# / MSTest / Moq), but the principles apply to any object oriented language.
How to Build and Maintain Quality Drupal Sites with Automated TestingAcquia
Automated testing has greatly improved the Drupal core development process. With automated testing over 24,500 unique core patches have been reviewed, and almost 19,000 test assertions are now run against every core patch. The result has been faster development cycle, more stable releases, and the ability to add features more quickly to Drupal core.
Selenium is used in many IT companies due to its numerous advantages compared to other automation testing tools in the market.We provide best Selenium training in Chennai with real time scenarios. We are the best training institute in Chennai providing the real time training in Chennai
San Francisco Java User Group presents Chris Bedford who talks about:
- How to write functional tests with Selenium (including explaining its IDE, architecture, RC, and alternatives like Canoo WebTest)
- How to set up Selenium testing for web apps in continuous integration using Maven, Ant, Cargo, etc.
- How to use Hudson for build server (brief overview)
January 12, 2010 in San Francisco, CA
http://www.sfjava.org/calendar/11982857/
Hosted by SUPINFO International University
Sponsored by TEKsystems, Guidewire Software, Sun, O'Reilly, JetBrains, and Marakana.
Video by Max Walker
Organized by Marakana
First Section:
Continuous Delivery as a software engineering approach.
(This is beneficial for Project Managers, DEVs & QAs.)
1. Projects Case Studies to explain why you should adopt Continuous Delivery.
2. Advantages & Reasons for releasing software more frequently.
3. How to make a Reliable / Production Ready Software.
4. Ingredients of Continues Delivery.
5. Tools/ approaches to choose while using Continues Delivery Methodology.
Second Section:
Technical side of Continuous Delivery.
(This is more beneficial for DEVs/ QAs than Project Managers.)
1. Testing a Software.
2. Measuring Code Quality / Analytic to visualize teams performances.
3. Tools: Code Syntax Checker, Testing Framework, Build Automation, Automated Reporting/ Analytic Dashboard.
4. Continuous Delivery Automation over Cloud using Travis CI - Live demonstration.
Third Section:
1. Sample Projects for audience to adopt right tools for development, testing & deployments.
2. Q&A.
-------------------------------------------------
By Waqar Alamgir http://waqaralamgir.tk
Getting Started with Test-Driven Development at PHPtek 2023Scott Keck-Warren
In this presentation I explain how to get started with TDD in PHP including using a testing framework, including it in your CI/CD process, and common gotchas.
In this webinar, Dave Haeffner (Elemental Selenium, USA) discusses how to:
- Build an integrated feedback loop to automate test runs and find issues fast
- Setup your own infrastructure or connect to a cloud provider
-Dramatically improve test times with parallelization
https://huddle.eurostarsoftwaretesting.com/resource/webinar/use-selenium-successfully/
Testing is not something that traditional PHP developers are being familiar with. This session introduces the needs and means for testing, and the test-driven development model to create rock-solid PHP applications.
How To Use Selenium Successfully (Java Edition)Sauce Labs
Dave Haeffner, a Selenium expert and active member of the Selenium project, steps through the why, how, and what of Selenium (the open-source automated web-testing tool for functional testing).
He also discusses how to start from nothing and build out a well-factored, maintainable, resilient, fast and scalable set of tests in Java. These will test your app across all of the browsers you care about, while exercising relevant functionality that matters to your business.
Jay Luker will be presenting an introduction to Ghost Inspector, a cloud-based web UI testing service that takes some (some!) of the pain away from creating browser-based, web application tests. Think Selenium, but for projects that are short on the resources, infrastructure and/or coding expertise to confidently develop and manage a suite of fully automated, “good-enough” UI tests.
Jay is a Senior Software Engineer at Harvard DCE where he works on back-end applications and software for analytics data collection, deployment automation, and integration testing for the Extension School’s video processing and delivery system. Previously he has been an IT Specialist at the Smithsonian Astrophysics Data System, and a Software Developer at Ex Libris.
Mastering Test Automation: How to Use Selenium Successfully Applitools
** WATCH FULL WEBINAR RECORDING HERE: https://youtu.be/06H-6hjyyvI **
What is Selenium? Why should you use it? And how do you use it successfully?
In this webinar, Automation expert Dave Haeffner answers these questions as he steps through the why, how, and what of Selenium.
Dave also discusses how to start from nothing and build out a well factored, maintainable, resilient, fast and scalable set of tests. These tests will not only work well, but across all of the browsers you care about, while exercising relevant functionality that matters to your business.
Watch this webinar and learn how to:
* Decompose an existing web application to identify what to test
* Pick the best language for you and your team
* Write maintainable and reusable Selenium tests that will be cross-browser compatible and performant
* Dramatically improve your test coverage with automated visual testing
* Build an integrated feedback loop to automate test runs and find issues fast
May: Automated Developer Testing: Achievements and ChallengesTriTAUG
Developer testing, a common step in software development, involves generating sufficient test inputs and checking the behavior of the program under test during the execution of the test inputs. Complicated logics inside a method make generating appropriate arguments difficult. In testing object-oriented programs, generating method sequences to put the receiver object or argument objects into appropriate states further complicates test-input generation. After the generated test inputs are executed, program crashes or uncaught exceptions can be used to indicate program problems, especially robustness problems. However, some program problems such as producing wrong program outputs do not crash the program.
In this talk, the speaker will present an overview of achievements and challenges in improving automation in developer testing, especially on test-input generation (i.e., generating sufficient test inputs) and test oracles (i.e., checking the behavior of the program under test).
About the speaker:
Tao Xie is an Associate Professor in the Department of Computer Science of the College of Engineering at North Carolina State University. He received his Ph.D. in Computer Science from the University of Washington in 2005. Before that, he received an M.S. in Computer Science from the University of Washington in 2002, an M.S. in Computer Science from Peking University in 2000, and a B.S. in Computer Science from Fudan University in 1997. He worked as a visiting researcher at Microsoft Research Redmond and Microsoft Research Asia.
His research interests are in software engineering, focusing on automated software testing and mining software engineering data. He has published more than 100 research papers in refereed journals and conference proceedings in the area of software engineering. Besides doing research, he has contributed to understanding the software engineering research community.
He has served as the ACM SIGSOFT History Liaison in the SIGSOFT Executive Committee as well as serving in the ACM History Committee. He received a National Science Foundation Faculty Early Career Development (CAREER) Award in 2009. He received 2008, 2009, and 2010 IBM Faculty Awards and a 2008 IBM Jazz Innovation Award. He received 2010 North Carolina State University Sigma Xi Faculty Research Award. He received the ASE 2009 Best Paper Award and an ACM SIGSOFT Distinguished Paper Award. He was Program Co-Chair of 2009 IEEE International Conference on Software Maintenance (ICSM) and is Program Co-Chair of 2011 and 2012 International Working Conference on Mining Software Repositories (MSR).
Infinum Android Talks #13 - Developing Android Apps Like Navy Seals by Ivan KuštInfinum
In this talk, we’ll show you our development process at Infinum. We'll talk about Continuous integration, MVP, Git flow, static code analysis, Unit tests, multi-environment support and a few more.
Similar to How do you tame a big ball of mud? One test at a time. (20)
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
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.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
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.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
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.
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.
How do you tame a big ball of mud? One test at a time.
1. HOW DO YOU TAME A BIG
BALL OF MUD?
One test at a time.
Matt Eland
@IntegerMan
https://www.Linkedin.com/in/MattEland/
Slides and code available at: https://GitHub.com/IntegerMan/SoftwareQualityTalk/
2. About this Talk
• Aim is to widen your exposure and spark new ideas
• Focused on a wide variety of libraries
• Will not get deep into any technology
• Examples in C#, .NET Core, and XUnit
Unit
Testing 101
Improving
Unit Tests
Other Tools
&
Processes
Conclusion
11. I can’t test my code because _______________ !
Some options:
1. Then don’t test the user interface
2. Make the view layer as small and dumb as possible, then test the rest
3. Supplement with Automated UI Testing as needed
it works with the UI
12. I can’t test my code because _______________ !
Some options:
1. Remove the database dependency via Dependency Injection
2. Use Entity Framework and in-memory database tests
3. Keep talking to the database, but work around the limitation
Database Dependencies
13. I can’t test my code because _______________ !
Some options:
1. Git Gud
2. Don’t test, but expect bugs
3. Place some “pinning tests”, then refactor to a better architecture
it’s a big ball of mud
14. TAMING A BIG BALL OF MUD
BUILD A
SAFETY NET
IMPROVE
TESTABILITY
IMPROVE
YOUR TESTS
REFACTOR THE
CODE
EXPAND YOUR
TESTS
15. BUILD A SAFETY NET
If you don’t pin down current behavior, you won’t know when you change it
16. Testing Object State with Snapper
GitHub Repo: https://theramis.github.io/Snapper/
41. Victimless Canary Testing with Scientist .NET
GitHub Repo: https://GitHub.com/ScientistProject/Scientist.net
Client
New Routine
Legacy
Routine
Scientist
.NET
42. Victimless Canary Testing with Scientist .NET
GitHub Repo: https://GitHub.com/ScientistProject/Scientist.net
Client
New Routine
Legacy
Routine
Scientist
.NET
Results
Publisher
43. Unit Testing with Scientist .NET
GitHub Repo: https://GitHub.com/ScientistProject/Scientist.net
Unit Test
New Routine
Legacy
Routine
Scientist
.NET
Results
Publisher
55. Code Reviews
• All Code is Peer Reviewed before testing occurs
• Reviews can be informal to extremely formal
• Best results if
• Authors review their own code before submitting
• Reviewers make multiple “themed” passes
• Tracked via a system
56. Code Analysis with SonarQube / SonarCloud
SonarQube: https://www.sonarqube.org/
57. CI/CD Pipeline Integration
Restore
Dependencies
Build Run Tests
• Should be repeatable
• Notify on failure
Run Code
Analysis
• Track metrics over
time
• Integrate results into
code review process
Publish
Results
TeamCity: https://www.jetbrains.com/teamcity/
58. Test Plans
When handing a
feature off to QA…
Provide the test plan you followed as a rough draft
Provide the list of unit tests added
Include Test Plans
in Code Review
Helps find edge cases
Helps others understand the change more
Write Test Plans
before coding
Write unit tests around test plans
Expand as needed after development work is done
59. Functional Programming
Immutability / Pure Functions
Readonly Properties
Immutable Collections
Make Invalid State Impossible
F# Discriminated Unions
OneOf Library
https://github.com/mcintyre321/OneOf
Functional Programming in C#
Language-Ext Library
https://github.com/louthy/language-ext
Functional Programming in F#
Can call C#
Can be called by C#
60. CONCLUSION
•Snapper
•Selenium
•Fiddler
•Postman
Build a Safety
Net
•AutoFac
•Moq
•In Memory EF
Improve
Testability •Shouldly
•Bogus
•AutoFixture
Improve your
Tests
•Scientist .NET
•FeatureToggle
Refactor the
Code •SpecFlow
•Data-Driven Tests
Expand Your
Tests
Slides and code available at: https://GitHub.com/IntegerMan/SoftwareQualityTalk/
Matt Eland
Software Development Manager @ MoveHQ
Manage .NET and JavaScript / TypeScript Development, mostly focused on Web API and Reports, but I do a bit of SPA
I’m on LinkedIn and Twitter
The slides and code will be available via a Git Repository and Linked In slide share. I’ll put them in the Meetup later on.
Yes, this is really my resume from last year. I was looking for an Angular team lead role and instead now manage a .NET services team. Life is funny.
Show of hands: who writes unit tests on a somewhat regular basis?
This is Xunit, other frameworks are Nunit and MSTest. All of which have similar syntax
If you enjoyed this talk, please give me a mention on Twitter. I’m considering applying for CodeMash and every bit helps with selection.