This document summarizes Richard Huang's work developing semi-automatic code review tools and services. It describes his rails_best_practices gem for analyzing Ruby on Rails code and suggesting refactors. It also outlines his railsbp.com online service for automatically reviewing code, collaborating with others, and tracking review histories. The document proposes extending the gem to add new code checking capabilities and making both the gem and service open source.
Story Testing Approach for Enterprise Applications using Selenium FrameworkOleksiy Rezchykov
Releasing a big software product frequently on the same high quality level could became an impossible task. Story Testing approach gives a possibility for many teams to work for a same product and release it without putting enormous efforts on testing. Approach is based on the BDD technique, Feature Flags and Selenium.
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.
Talk given at Typeform for the Barcelona Bug busters meetup.
How to Automate API Testing guides you through a possible API Testing workflow for API Functional Testing exploring different tools and approaches.
Rspec and Capybara Intro Tutorial at RailsConf 2013Brian Sam-Bodden
Behavior-Driven Development and Acceptance Testing are heavily intertwined and in many aspects are one and the same. Both focus on starting at the outer layers of your application by concentrating on what matter to users; behavior. In this session/workshop we'll talk about how testing can be used both for specifying your application yet to be develop expected behavior and as accurate, running documentation that can be used to validate your stakeholder's acceptance criteria. We'll talk about the different types of testing and do a few hands-on exercises to flesh out a Rails application with RSpec and Capybara.
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
INCLUDE AUTOMATED RESTFUL API TESTING USING POSTMAN, NEWMAN, AND JENKINS
If you’re going to automate one kind of tests at your company, API testing is the perfect place to start! It’s fast and simple to write as well as fast to execute. If your company writes an API for its software, then you understand the need and importance of testing it. In this webinar, we’ll do a live demonstration of how you can use free tools, such as Postman, Newman, and Jenkins, to enhance your software quality and security.
Elise Carmichael will cover:
Why your API tests should be included with your CI
Real examples using Postman, Newman and Jenkins + Newman
An active Q&A where you can get your automated testing questions answered, live!
To get the most out of this session:
Download these free tools prior to the webinar: Postman, Newman (along with node and npm) and Jenkins
Read up on how to parse JSON objects using javascript
*Can’t attend the webinar live? Register and we will send the recording after the webinar is over.
Story Testing Approach for Enterprise Applications using Selenium FrameworkOleksiy Rezchykov
Releasing a big software product frequently on the same high quality level could became an impossible task. Story Testing approach gives a possibility for many teams to work for a same product and release it without putting enormous efforts on testing. Approach is based on the BDD technique, Feature Flags and Selenium.
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.
Talk given at Typeform for the Barcelona Bug busters meetup.
How to Automate API Testing guides you through a possible API Testing workflow for API Functional Testing exploring different tools and approaches.
Rspec and Capybara Intro Tutorial at RailsConf 2013Brian Sam-Bodden
Behavior-Driven Development and Acceptance Testing are heavily intertwined and in many aspects are one and the same. Both focus on starting at the outer layers of your application by concentrating on what matter to users; behavior. In this session/workshop we'll talk about how testing can be used both for specifying your application yet to be develop expected behavior and as accurate, running documentation that can be used to validate your stakeholder's acceptance criteria. We'll talk about the different types of testing and do a few hands-on exercises to flesh out a Rails application with RSpec and Capybara.
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
INCLUDE AUTOMATED RESTFUL API TESTING USING POSTMAN, NEWMAN, AND JENKINS
If you’re going to automate one kind of tests at your company, API testing is the perfect place to start! It’s fast and simple to write as well as fast to execute. If your company writes an API for its software, then you understand the need and importance of testing it. In this webinar, we’ll do a live demonstration of how you can use free tools, such as Postman, Newman, and Jenkins, to enhance your software quality and security.
Elise Carmichael will cover:
Why your API tests should be included with your CI
Real examples using Postman, Newman and Jenkins + Newman
An active Q&A where you can get your automated testing questions answered, live!
To get the most out of this session:
Download these free tools prior to the webinar: Postman, Newman (along with node and npm) and Jenkins
Read up on how to parse JSON objects using javascript
*Can’t attend the webinar live? Register and we will send the recording after the webinar is over.
Speaker: Carla de Groot
Genre & level: Backend, Medior
Are you looking for the best framework fit for API testing? Look no further. I already did this for you. As your sensei, I’ll give you a solid base for your first kata in Karate so you can further master the art of API testing.
Automated Acceptance Testing (and tool choice)
Automated acceptance testing has many names: acceptance-test driven development (ATDD), story-test driven development (STDD), agile acceptance testing and, most recently, specification by example. At the heart of all these approaches is to produce business-facing tests which are system tests running end-to-end, picking up regression issues and improving confidence that the code works as required.
In this talk, I will contextualise how each of these approaches share in common a three-tier layering strategy: acceptance criteria, test implementation layer and application driver layer. This is important because applying this approach requires a tool choice and each tool tends to have its own sweet (and blind) spot that is best understood through these layers.
I will first deep dive into sample code across a few tools (Cucumber, Fitnesse, Concordion) to illustrate this layering. I use an example that shows how to decouple the GUI from tests (window driver pattern).
Finally, I will look at some typical client scenarios to examine which tools might best suited because tool choice is not simply a host operating system question (.Net, Java, Ruby).
Open Source based API Functional and Performance TestingNordic APIs
Taurus (http://gettaurus.org/) allows you to define your API functional tests as well as performance tests in a version control friendly YAML syntax and run them locally as well as in the cloud. Create and run tests during the sprint rather than waiting for someone else to test your APIs “later”. You’ll get the fast feedback you need to ship with confidence. Once Taurus tests are created, automation with Jenkins or any other CI/CD environments becomes easy as pie – you don’t have to believe it, I’ll demo how to setup and run tests as part of a Jenkins build.
Making the build self-testing is one of the best pratices of continuous integration. This was the main goal of this presentation, the work done in a REST API, using Symfony, phpspec, PHPUnit and Behat.
Visualization, storage and comparison results of performance testing by using...Anton Shapin
In our presentation we describe approach to solve following problems in performance testing:
- Visualization of test results.
- Visualization of real time metrics.
- Storage results of different test runners.
- Comparison results of different test runners.
API Testing with Open Source Code and CucumberSmartBear
Ole Lensmar discusses various ways and tools for testing web APIs, focusing on using Cucumber. Watch the full presentation: https://www.infoq.com/presentations/api-testing-cucumber
companion tutorial:
https://medium.com/@augusteo/streamlining-api-with-swagger-io-9f20470d2f42#.twnbi4gr5
Learn about the way Swagger stack and OpenAPI-spec can help you and your team to design, develop and implement API server, client and documentation.
In this talk we will explore what Swagger is, how it can help you streamline your team's API development. The finale will be a live demo on how to deploy Ruby Sinatra API server and Swift iOS client using the Swagger code generation in 5 minutes.
An Introduction To Automated API TestingSauce Labs
As more and more apps are being assembled from a rapidly expanding array of microservices, APIs are the key to accessing these new architectures. That new feature you’re working on will often rely on upstream services that can only be accessed via APIs - so to test the functionality of the new component you’ll need to simulate those services.
While APIs are the backbone of the websites and apps we rely on today, automated testing of them is only starting to grow. Join Patrick Poulin, CEO of API Fortress, as he provides an introduction to API testing, the best ways to test your own APIs using popular tools available today, and demonstrates the orchestration of API tests and Sauce Labs tests as part of a Jenkins build process.
Key takeaways:
-Clearly understand what API testing means.
-Learn about best practices.
-See demonstrations of popular testing tools.
-See API and UI/UX testing implemented as part of a Jenkins build.
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
This is a presentation for you that need to learn about testing in other levels than the unit and integration testing and the importance of a testing pipeline in your project.
Bruno Souza and I presented this on JavaOne Conference 2017 in San Francisco on 02/09/2017
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...Postman
Presenters: Trent McCann, Engineering Manager, Quality, and Danny Dainton, Senior Quality Engineer
Description: Testing APIs is difficult, it's hard to know where to start. Join us as we take you through some of the different techniques and strategies, using Postman. We will walk you through the basics of Testing using Postman and help answer the questions of "Why do you test?" And "How do you write a test?". We will also talk about making these tests work for you. Pulling it all together and making these tests effective and efficient using Automation practices. Lastly, we will walk you through how to track, trend and some of the hidden benefits of Reporting in Postman, to get the most out of your tests.
10x Test Coverage, Less Drama: Shift Left Functional & Performance TestingSauce Labs
Can you move faster, ship more often and still achieve greater test coverage than you do today? Yes! Learn how shifting left (building tests where and when code is built) and making those tests more focused in scope (atomic) and independent of each other (autonomous) can give you back your nights and weekends while increasing test coverage 10x or 100x. Once your tests are atomic and autonomous, you can run them in parallel and reduce time to feedback from hours or days to minutes.
In this webinar, technical experts from Sauce Labs and BlazeMeter share the essentials to building tests that scale in coverage without the brittleness of traditional automation approaches.
Patterns for automating API delivery. API conferencessuser9e7c64
Automating API product delivery is about automating workflows to improve the quality and delivery speed for APIs by applying APIOps principles. In this talk, I discuss patterns for
API consistency checks: Enforcing API design standards with linting tools like Spectral, Redocly and Vacuum.
API breaking change checks: Automating breaking-change checks with OpenAPI diff tools like Oasdiff
API conformance checks: Ensuring accuracy of your API reference documents using API conformance tools like Schemathesis.
API code generation: Generate server and client code using SDK generators like OpenAPI Generator
Speaker: Carla de Groot
Genre & level: Backend, Medior
Are you looking for the best framework fit for API testing? Look no further. I already did this for you. As your sensei, I’ll give you a solid base for your first kata in Karate so you can further master the art of API testing.
Automated Acceptance Testing (and tool choice)
Automated acceptance testing has many names: acceptance-test driven development (ATDD), story-test driven development (STDD), agile acceptance testing and, most recently, specification by example. At the heart of all these approaches is to produce business-facing tests which are system tests running end-to-end, picking up regression issues and improving confidence that the code works as required.
In this talk, I will contextualise how each of these approaches share in common a three-tier layering strategy: acceptance criteria, test implementation layer and application driver layer. This is important because applying this approach requires a tool choice and each tool tends to have its own sweet (and blind) spot that is best understood through these layers.
I will first deep dive into sample code across a few tools (Cucumber, Fitnesse, Concordion) to illustrate this layering. I use an example that shows how to decouple the GUI from tests (window driver pattern).
Finally, I will look at some typical client scenarios to examine which tools might best suited because tool choice is not simply a host operating system question (.Net, Java, Ruby).
Open Source based API Functional and Performance TestingNordic APIs
Taurus (http://gettaurus.org/) allows you to define your API functional tests as well as performance tests in a version control friendly YAML syntax and run them locally as well as in the cloud. Create and run tests during the sprint rather than waiting for someone else to test your APIs “later”. You’ll get the fast feedback you need to ship with confidence. Once Taurus tests are created, automation with Jenkins or any other CI/CD environments becomes easy as pie – you don’t have to believe it, I’ll demo how to setup and run tests as part of a Jenkins build.
Making the build self-testing is one of the best pratices of continuous integration. This was the main goal of this presentation, the work done in a REST API, using Symfony, phpspec, PHPUnit and Behat.
Visualization, storage and comparison results of performance testing by using...Anton Shapin
In our presentation we describe approach to solve following problems in performance testing:
- Visualization of test results.
- Visualization of real time metrics.
- Storage results of different test runners.
- Comparison results of different test runners.
API Testing with Open Source Code and CucumberSmartBear
Ole Lensmar discusses various ways and tools for testing web APIs, focusing on using Cucumber. Watch the full presentation: https://www.infoq.com/presentations/api-testing-cucumber
companion tutorial:
https://medium.com/@augusteo/streamlining-api-with-swagger-io-9f20470d2f42#.twnbi4gr5
Learn about the way Swagger stack and OpenAPI-spec can help you and your team to design, develop and implement API server, client and documentation.
In this talk we will explore what Swagger is, how it can help you streamline your team's API development. The finale will be a live demo on how to deploy Ruby Sinatra API server and Swift iOS client using the Swagger code generation in 5 minutes.
An Introduction To Automated API TestingSauce Labs
As more and more apps are being assembled from a rapidly expanding array of microservices, APIs are the key to accessing these new architectures. That new feature you’re working on will often rely on upstream services that can only be accessed via APIs - so to test the functionality of the new component you’ll need to simulate those services.
While APIs are the backbone of the websites and apps we rely on today, automated testing of them is only starting to grow. Join Patrick Poulin, CEO of API Fortress, as he provides an introduction to API testing, the best ways to test your own APIs using popular tools available today, and demonstrates the orchestration of API tests and Sauce Labs tests as part of a Jenkins build process.
Key takeaways:
-Clearly understand what API testing means.
-Learn about best practices.
-See demonstrations of popular testing tools.
-See API and UI/UX testing implemented as part of a Jenkins build.
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
This is a presentation for you that need to learn about testing in other levels than the unit and integration testing and the importance of a testing pipeline in your project.
Bruno Souza and I presented this on JavaOne Conference 2017 in San Francisco on 02/09/2017
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...Postman
Presenters: Trent McCann, Engineering Manager, Quality, and Danny Dainton, Senior Quality Engineer
Description: Testing APIs is difficult, it's hard to know where to start. Join us as we take you through some of the different techniques and strategies, using Postman. We will walk you through the basics of Testing using Postman and help answer the questions of "Why do you test?" And "How do you write a test?". We will also talk about making these tests work for you. Pulling it all together and making these tests effective and efficient using Automation practices. Lastly, we will walk you through how to track, trend and some of the hidden benefits of Reporting in Postman, to get the most out of your tests.
10x Test Coverage, Less Drama: Shift Left Functional & Performance TestingSauce Labs
Can you move faster, ship more often and still achieve greater test coverage than you do today? Yes! Learn how shifting left (building tests where and when code is built) and making those tests more focused in scope (atomic) and independent of each other (autonomous) can give you back your nights and weekends while increasing test coverage 10x or 100x. Once your tests are atomic and autonomous, you can run them in parallel and reduce time to feedback from hours or days to minutes.
In this webinar, technical experts from Sauce Labs and BlazeMeter share the essentials to building tests that scale in coverage without the brittleness of traditional automation approaches.
Patterns for automating API delivery. API conferencessuser9e7c64
Automating API product delivery is about automating workflows to improve the quality and delivery speed for APIs by applying APIOps principles. In this talk, I discuss patterns for
API consistency checks: Enforcing API design standards with linting tools like Spectral, Redocly and Vacuum.
API breaking change checks: Automating breaking-change checks with OpenAPI diff tools like Oasdiff
API conformance checks: Ensuring accuracy of your API reference documents using API conformance tools like Schemathesis.
API code generation: Generate server and client code using SDK generators like OpenAPI Generator
Presentation that I gave at the August Ruby Meetup at ODEO in San Francisco. A bit light on content as most of the presentation was a live coding session.
You want to improve your software skills. That’s a given. You may be a mentor or a manager who needs to improve the knowledge sharing among your software developers across different projects. Code Reviews can do just that while improving code quality in your projects. Code Review not only builds developer team spirit but also offers new ways to improve a software solution. You’ll walk away from this session with in-depth understanding of Code Review to strengthen your team.
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.
In this slide share, even Beginners can easily learn Robot Framework.
Robot framework is an automation testing framework used for Mobile App automation (can automate both Andriod and iOS) and Web Application automation.
A presentation form Integration Stockholm where we shared our collected thoughts on how to implement Continuous Delivery in mainly Enterprise organisations. What has worked for us and what did not work and how to approach CI/CD and succeed...
Developer-friendly SAST in DevOps Pipeline.pptxSamSbp
Devops is the most defacto strategy followed by all leading organizations that makes innovations and quality of the delivery happen. Security in DevOps is taking a lead with easy-to-use developer-friendly automation suites that will empower developers to build secure products. In this talk, we will focus on SAST what’s,whys and how semgrep can be used in devops pipeline.
Awesome Test Automation Made Simple w/ Dave HaeffnerSauce Labs
Learn how to build simple and powerful automated tests that will work on the browsers you care about, cover visual testing and functional regressions, and be configured to run automatically through the use of a continuous integration (CI) server.
You want to improve your software skills. That’s a given. You may be a mentor or a manager who needs to improve the knowledge sharing among your software developers across different projects. Code Reviews can do just that while improving code quality in your projects. Code Review not only builds developer team spirit but also offers new ways to improve a software solution. You’ll walk away from this session with in-depth understanding of Code Review to strengthen your team.
Modern software testing and processes 2019Karim Fanadka
How to improve the delivery pipeline in an agile software project?
How looks CI/CD process!
How to manage agile software delivery taking into account all the important items!
When to give approval Go/No Go to the release? based on what?
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Vadym Kazulkin
In this talk I will compare 2 services Github Copilot (including Copilot X) and Amazon CodeWhisperer from the perspective of the Java developers in terms of the quality of the given recommendations for simple tasks, complex algorithms, Spring Boot and AWS development, IDE integration and pricing.
Both services are the machine learning-powered services that help improve developer productivity by generating code recommendations based on developers’ comments in natural language and their code. Based on natural language comments, these services also automatically recommend unit test code that matches your implementation code.
This is a presentation about the Web Automation Testing which was held in Info.nl. This presentation shows what is Automation Testing and how it could be adopted by developers.
See related code here:
https://github.com/infonl/automation-testing-presentation
Do you have an experience to write a client application based on http? Such as fetching the contacts from email or writing a IM client. Some of the servers provide apis which make life better, but most of them not. So how can we get the data from these servers or communicating with these servers? This talk will teach you how to analysis the packets between client and server and share my experience about how to write the client application and how to do the test and refactor.
This is my presentation on Shanghai on Rails at 3.20. It introduces static code analysis for ruby, tells you a pattern to analysis ruby code and gives you some examples that how rails_best_practices analysis rails codes.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
10. Develop
Could
Deploy automate? Review
Merge QA
11. What to Review?
Follow coding guidelines Performant
Better coding syntax Scalable
Remove unused methods
Easy, and code Important, but depends
becomes maintainable on experience
12. What to Review?
Follow coding guides
What if we can
Better coding syntax review these
automatically?
Remove unused methods
13. What to Review?
Performance
And focus on this
more important stuff
Scalable
This is our development lifecycle for each sprint, we implement new features or fix bugs, we ask other engineers to do code review, qa will verify our changes, then we merge it into release branch, and finally deploy to production server. I think most teams using rails have a similar development lifecycle like this.\n
In the development lifecycle, some processes can be automatic, some have to be done manually. Manual works are alway easy to introduce bugs into your product, while automation makes things simple, more accurate and less buggy, so we try do processes automatically as much as possible.\n
In our development process, we write codes manually, but sometimes automatically generate code, we also wrote a lot of unit test and integration test code to run tests automatically.\n
In code review process, we have to do it manually, sometimes sitting together, face to face review, sometimes just sending a code compare link and leave comments on github.\n
In qa process, we have a continuous integration server to guarantee all unit tests and integration tests are green, we have scripts to do regression tests. Besides these, we also manually verify the product.\n
In merge process, we use the version control system, git, to automatically merge feature branch into release branch.  Only when conflicts occurred, do we need to manually fix them.\n
In the deploy process, thanks to Capistrano, we can release new features almost 100 percent automatically.\n
As you seen, we have more or less automation in every process except code review, code review is very important that it can catch most bugs and potential performance issues, but code review really depends on engineers, e.g. if engineers are familiar with ruby and rails, they will suggest opportunities to use a lot of rails built-in helper methods, and if engineers have strong knowledge with database and http protocol, they will point out where you can optimize db queries or add cache layer. But could we partially automate code review process? Of course yes.\n
Let's see what we review in general. It contains 2 parts, the first part is easy, its goal is to make code more readable and maintainable, like following the team's coding guideline, using better coding syntax and removing unused methods. The other is more important but complicated, like reviewing whether code is performant and scalable, it depends on programming experience, you will see senior engineers and team leaders spend more time on this part when they do code review.\n
What if we could review the first part automatically?\n
So engineers can focus on the more important stuff when doing code reviews.\n\n
I have built the rails_best_practices gem over the last 2 years, I created it for analyzing source code of rails projects, giving developers some suggestions to improve their code quality.\n
For example, in the edit action on top, the code reads a post from the database, then verifies the privilege by checking if the current user is the user of the post, rails_best_practices will tell you there is a bad smell in posts_controller line 5, it suggests you use scope access to simplify the logic to the bottom code, read the post from current_user's posts, if the post does not belong to current user, then a NotFoundError will be raised.\n
A similar example, in the top code, before creating a new post, it assigns the user_id from current_user. The rails_best_practices gem will tell you that you should use scope association like the  bottom code does, creating a post with current_user.posts will automatically set the user_id.\n
This is an example of a suggestion to use rails built-in helper, the code on the top reads user's login attribute then checks if it is present, rails_best_practices gem will suggest that you use the query attribute, by directly calling login? on user. \n\n
I saw more and more developers begin to use the rails_best_practices gem, someone integrated it into guard, running rails_best_practices frequently in development, and someone integrated it into jenkins, running rails_best_practices on their continuous integration server. I also saw a team building an internal system based on rails_best_practices to score their developers' code.\n
There was a chance that our team decided to pay down technical debt, you know we have a large rails codebase, started in early 2009, there are a lot of unused classes, unused methods, dead routes and old ugly code. Then I used the gem to refactor and cleanup our codebase, but rails_best_practices gem generates the local analysis result in terminal, I found it's not easy to share the analysis result with the team, and I need to contact the author of the code which you want to refactor, and discuss with them to see if the code is safe to be removed. Then an idea jumped into my mind - why not build an online code review service based on the gem?\n
So I built the web service railsbp.com early this year, just like travis-ci for continuous integration service, railsbp.com provides an online code quality check service. Every time you push to github, the code check service will be executed automatically. You can easily share the analysis with your team collaborators. ralsbp.com keeps every analysis result, so you can track the history to see if your code quality is improving or not. You can also configure what to review, e.g. if you don't care about using query attributes, you can disable that checker on railsbp.com.\n
Now I built railsbp.com integrated with github, first you need to register your github repository on railsbp.com, every time you push code to github, github will notify railsbp, railsbp will check out your source code, analyze your code quality, then generate an analysis for your commits. You and your collaborators can all view the report, then refactor the bad smells according to the report.\n
There is a railsbp service hook on your github repository admin page, after you register a repository on railsbp.com, you will be assigned a token, set the token on github hook page and activate this hook, then railsbp can receive the notification from github, check out and analyze your source code.\n
This is an analysis report page, it tells you the current commit id and commit message, lists all code smells in your repository, for each code smell it tells you the filename, line number, warning message, which commit and who introduced this code smell. The highlight line indicates this bad smell is introduced by the current commit. You can click the warning message, and it will bring you to a page which gives you a suggestion how to refactor the bad smell, and you can click the filename, it will bring you to the github file page, if you want, you can fix the bad smell directly on github. So before you ask a senior engineer to do code review for you, you can review it on railsbp.com by yourself, it helps you improve the code quality and also saves other engineers' time.\n
This is the history tracking page, the visual chart shows how many code smells in your repository historically, so you can easily figure out if your code quality is improving, there is also a table that lists each analysis result, clicking any item will bring you to the detail analysis report page.\n
It is also configurable, I understand that not all checkers in the gem are suitable for all rails projects, some rails teams may have different idea of rails best practices, so, you can configure what checkers should be activated, and turn off other checkers as you like. Here are parts of configurations, you can select any checker that you think is suitable to your team, and you can change the parameters of some checkers for your team.\n
You can also add or remove collaborators, to grant them privilege to configure your repository on railsbp.com. And for simplicity, you can synchronize your collaborators from github.\n\n
So far the gem may not be strong enough to find out all of the code smells, probably there are some code guidelines in your team that the gem can't analyze, but don't be depressed, the gem provides a way to extend it for your team by writing plugins.\n
Here I will give you an example how to write the plugin, as you know, rails provides a convenient helper method try, calling try on nil object always returns nil. I want to check the rails project to find all code that is doing the same thing as the try method, so that I can replace the manual code by using the try method. Let's build a use try checker plugin.\n
This is the test file for the use try checker plugin, it's easy to read, if I use author ? author.name : nil, or use author.nil? ? nil : author.name, then I should use author.try(:name) instead, the gem should tell me the filename, line number, warning message with use try on author, right? And for other code, there should be no such bad smell detected. Every time you write a plugin for rails_best_practices gem, be sure you write such test code first.\n\n
This is the use try checker plugin implementation code, I recommend you to read the documentation of ripper in ruby 1.9 first, it's a library to convert ruby source code to syntax tree. Here we only check ifop node in all files, it checks for the 2 cases we have written in the test code. As you can see, writing a code checker plugin is not too difficult. You can write plugins according to your team's coding guidelines, so it keeps your codebase good quality all the time.\n\n