RoboCon 2023 - Ninja Robot

Published: 30 August 2023
on channel: Robot Framework
325
3

In my experience as a solo user with limited to no access to reviews, these tools and techniques allowed me to be successful, with purpose build keyword libraries

1.git, especially git bisect and log -S

2.advanced unit testing with pytest, xray, and hypothesis

3.measurable complexity with radon

4.Therefore orthogonally structured code

NINJA ROBOTS
I would like to discuss the possibility to substitute review with tools. Reviews are the better solution, this is to be used if for some reason reviews are not available.

Learn about the history of your code base.
"git bisect" plus "git log -S" is an efficient way to properly blame. Especially in a corporate environment, people tend to copy code and claim credit until it's a problem. Using git log -S it is possible to find the earliest occurrence of a piece of code. This is especially useful with function names. This is a static code analysis approach to explore a code base.

This may not give enough insight tough. Using git bisect it is possible to find the change that changed the result of a test from pass to fail or vice versa. This is especially useful in situations in which a bugfix, creates another bug. This fulfills a similar purpose as log -S but experimentally.

This has advantages over communications as it brings hard facts, while it is easy to talk up a theory in a small group.

I would run through examples of both techniques using an open-source project as an example. Preferably robotframework itself, but I do not have an endorsement yet. We will have a look at when a specific function was introduced, and how its popularity developed over time.

Measure whether your tests detect changes in your code base.
The theory is that given correct code that has at some place a "+", is very likely to become bugy when the "+" is replaced with an "%" for example. This detects among other things, dead code, gaps in the test coverage, and vague specifications.

ASK THE COMPUTER TO CHECK FOR THE LIMITS OF AN IMPLEMENTATION
Does your function work with negative numbers? 0? Are there size limitations? using hypothesis it is easy to learn about these limits and ask a computer to check those limits.

Without a corrective it is easy to think that code is more elegant and easy to understand than it is.
By using radon it is possible to use the computer to provide objective feedback about the complexity of source code.

finally, we will see that points 2 and 3 are interconnected, and lead to

orthogonal structures
which means that functionality is created by composing simple building blocks, as opposed to inheritance, code injection, etc ...

Welcome to Robocon - The Ultimate Robot Framework Gathering! 🤖🚀

Robocon is an annual, electrifying event held in the vibrant city of Helsinki, Finland, where Robot Framework enthusiasts from around the world come together to celebrate their passion for test automation. It's a unique opportunity to connect with fellow testers, developers, and automation aficionados.

At Robocon, we dive into the latest trends and innovations in the world of Robot Framework. Robocon is about engaging workshops, inspiring talks, and hands-on sessions led by industry experts. Whether you're a novice looking to get started or a seasoned pro seeking advanced insights, Robocon has something for everyone.

Forge lasting connections, exchange ideas, and be part of a thriving community that shares your enthusiasm for Robot Framework. Join us at Robocon and be a part of this annual gathering that fuels your test automation journey.

Don't miss out on the chance to be part of this exciting event. Subscribe now for updates and be ready to experience the future of test automation at Robocon! 🌐🤖🌟


Watch video RoboCon 2023 - Ninja Robot online without registration, duration hours minute second in high quality. This video was added by user Robot Framework 30 August 2023, don't forget to share it with your friends and acquaintances, it has been viewed on our site 325 once and liked it 3 people.