Brazilian QA’s around the world series – Alekson Fortes

Alekson Fortes is a software developer with over 10 years of experience in IT and I have a strong technical background mostly as a QA expert. He has been working with Agile (Scrum, Kanban, XP, Lean) since 2017, and has experience in test automation, DevOps, cloud, CICD, pipelines, and testing strategy. Also, He can help teams to adopt TDD/BDD/ATDD, acting in the levels of Unit Tests, Component Tests, Integration Tests, and E2E Tests.

Be sure to follow Alekson onΒ LinkedIn.


TL;DR;

Alekson Fortes shares his experience immigrating to Canada, finding a job, and adapting to the QA practices. Cultural differences included language barriers and a different work-life balance. Challenges were overcome through learning and gaining confidence. The perception of QA varied, with some companies viewing it as a basic entry-level job. Unique methodologies like ATDD and exposure to AWS improved QA processes. Soft skills learned in Brazil were valuable for facing challenges abroad. Work-life balance in Canada prioritizes personal time and offers generous vacation and sick days.

What were your reasons for choosing to immigrate to Canada? How did you prepare for finding a job and planning your move?

Canada chose me! I was at The Developer’s Conference in Brazil as a speaker and the recruiters of my first company were there, so I talked to them and after 10 days and 3 interviews I had a job offer. I thought I was not ready to find a job abroad but the destiny thought I was. I was preparing myself on that time by studying JavaScript and Protractor.

What are some of the cultural differences you’ve encountered in the new workplace ?

Language barrier, hard to express myself as I do in Portuguese. Also, people in Canada work less than in Brazil and I had to learn to step on the break when I just arrived. Wanted to work after 5pm and some people told me to stop and go home.

Are there any specific challenges you faced when adapting to the QA practices and standards in Canada? How did you overcome them?

I had a huge imposter syndrome, so I imagined the QA practices here would be more advanced than the ones we have in Brazil. It took me some months to realize things here were not advanced as it was in some places I have worked in Brazil. Of course I also had some practices that were better here, example: working together with developers. At my first company I started to pair with devs everyday and after 1 year I was able to perform dev and ops tasks. I overcame my syndrome after I lost my first time regarding the pandemics and I got 4 new job offers in 10 days after being laid off. This showed me that I was not only lucky to get a job in Canada, but I was also qualified for it.

Have you noticed any variations in the perception or importance placed on quality assurance compared to Brazil? If so, in what ways?

I noticed that some companies still think QA is the last step of SDLC. This has a big influence from the Games industry which is strong in Montreal. Since it is hard to automate tests for a game, usually companies hire testers who will play the games to find bugs and QA is perceived as an entry level job. Some people have no idea what a QA engineer is because of this. They think QA is only someone who repeats manual tests. Again, we also have mature companies where QA is really advanced and updated to the best practices, but the gaming culture was a big surprise compared to my experience in Brazil.

Photo by Andrea Piacquadio on Pexels.com

Are there any new unique methodologies or tools that you’ve come across that have improved your QA processes?

I learned ATDD by reading the agile testing book here. It is something I could have learned in Brazil, but I did here and I applied with success in Canada. Also I was exposed to an AWS environment where I learned a lot of DevOps and cloud. It helped me a lot to get the 4 job offers later in my life here.

Are there any specific lessons or skills you learned in Brazil that you find particularly valuable in Canada?

I invested strongly in Soft Skills and it helped me to have Emotional Intelligence to be able to face my challenges here. People think life abroad is easy, but it is the opposite. Especially when you come alone. The soft skills I learned that most helped me were NLP(Neuro Linguistic Programming) and Toastmasters skills. All available in Brazil.

Have you noticed any differences in the work-life balance or professional expectations ?

A huge difference. People really care to have a work-life balance and they rarely do extra hours or work during weekends. We also have a lot of vacation, holidays and sick days. Some companies in Montreal like Ubisoft are allowing people to take 6 weeks of vacation. I have worked in a place where I used to work only 4 days per week, 32 hours.

Alekson’s journey as a QA professional in Canada has been one of growth and adaptation. Thanks again Alekson for sharing your experience and insights 😊

Brazilian QA’s around the world series – Walmyr Lima

Walmyr Lima is software engineer who loves testing. He is also a clean coder, blogger, YouTuber,

online instructor, mentor, speaker, an active member of the testing automation and JavaScript communities, and a fan of good music, tattoos, vegan food, and skateboarding.

Be sure to follow Walmyr on LinkedIn.

TL;DR;

Walmyr Lima’s decision to immigrate to Spain was sparked by their ability to understand and read Spanish content. They found a job opportunity at Typeform in Barcelona and relocated with the company’s assistance. Cultural differences were noticed, with Spanish people being warmer and the language being a significant change. Adapting to QA practices in Spain was not challenging for Walmyr as they had previous experience in a similar role. The perception and importance of quality assurance varied between companies rather than being country-specific. Walmyr discovered new methodologies and tools in their role as a Quality Assistant. Professionalism was deemed valuable regardless of the country. Work-life balance was generally seen as better in Europe compared to Brazil.

What were your reasons for choosing to immigrate to Spain? How did you prepare for finding a job and planning your move?

It was almost accidentally. My wife and I were actually planning moving to London, when one day, while preparing for a Live Stream on YouTube, I read a content in Spanish, which was related to the content I was going to present. I was able to read and understand everything, which made me think we (my wife and I) could live in Spain.

Then I searched for the coolest startups to work in Barcelona, since we would like to live close to the sea, and then I found Typeform. I applied for the job, went through the whole interview process, and got an offer (with relocation help and everything else). The rest is history.

What are some of the cultural differences you’ve encountered in the new workplace ? 

As a person who had been living in Europe for 6 years before moving to Spain, the main difference was cultural, since before that, I had lived in Norway and The Netherlands 😯. The Spanish people are more similar to Brazilians. They’re β€œwarmer” ❀️. The language was a big difference too, and one of the main reasons for the move. In terms of workplace, nothing changed much, since I came to work remotely, which is something I was already used to before the move.

Are there any specific challenges you faced when adapting to the QA practices and standards in Spain? How did you overcome them? 

No really. I was hired to work as a Software Engineer Quality Assistant, which is something I was already used to do, but never had the exact title.

Have you noticed any variations in the perception or importance placed on quality assurance compared to Brazil? If so, in what ways? 

I think every country has companies that practice software engineering with excellence while others don’t care about it. That said, I don’t think the differences are related to the country you are in, but the company you choose to work for.

Are there any new unique methodologies or tools that you’ve come across that have improved your QA processes? 

Well, maybe yes. I mean, it was the first time I was hired as Quality Assistant, but the company was still discovering what such a role really meant.

We (the Quality Assistance team) were there to help teams become autonomous in terms of everything quality-related. We were helping them with their quality bottlenecsk, but for a short periods of time. After that, they should be able to β€œwalk with the own legs”. We were also helping them with tooling (testing frameworks, visual regression testing, testing management systems, etc). Finally, we were helping the company to reduce cost, replacing paid SaaS for open-source alternatives.

Are there any specific lessons or skills you learned in Brazil that you find particularly valuable in Spain?

Again, I don’t think it’s a country thing. In my opinion, it’s all about professionalism. If you are a professional, we’re it independent of where you live.

Have you noticed any differences in the work-life balance or professional expectations ?

Yes, not only in Spain, but in Europe in general. My impression is that europeans care more about a good work-life balance than Brazilians, but it’s probably because they had more time to develop, their currencies are (usually) more valued than Brazilian Reais, and their economies have (in general) less inflation.

Thanks Walmyr for sharing your adventures around Europe, great insights and experiences πŸš€

Brazilian QA’s around the world series – Renata Andrade

Renata Andrade is a software quality champion. She helps teams build the best strategy to practice quality in the easiest, fastest and most reliable way possible, adding more value to the business.

Driven by excellence, innovation and creativity, Renata loves making a difference, learning, sharing knowledge, and inspiring people. She likes working in a high tech environment with difficult challenges to solve. Renata also love attending conferences, reading books, writing blog posts, and giving talks about diverse topics in this area.

Be sure to follow Renata on LinkedIn.

TL;DR;

Renata Andrade chose to immigrate to the USA after falling in love with San Francisco during a visit. She saved money, studied English in New Zealand, and eventually got a job at a consulting company in San Francisco. In 2018, she applied for and obtained an H1B visa sponsored by the company. She highlights the respectful atmosphere and the vibrant tech scene in Silicon Valley as reasons for choosing to live there. She also discuss cultural differences in work relations and the fast-paced nature of companies in Silicon Valley. Renata Andrade shares advice for those looking to relocate and emphasises the importance of understanding the cultural differences beforehand. She notes that the perception and importance placed on quality assurance in the USA can vary, but generally, Brazilian QAs are more prepared. She mentions tools and practices like git, code reviews, and Devops that have improved their QA processes. She also highlights the value of a solid software engineering foundation and the lessons learned in Brazil. The work-life balance in the USA is seen as better, with flexible working hours, summer Fridays, and unlimited paid time off being common. Professional expectations vary but are generally similar.

What were your reasons for choosing to immigrate to the USA? How did you prepare for finding a job and planning your move?

I visited San Francisco in 2014 and got in love with the city. People here are really respectful to each other and I could sense that as soon as I got here. Personally, I like exploring new places and getting to experience new cultures. I didn’t speak any English at that time and I had no idea how the immigration process was. It was the first time I wanted to live somewhere different from my hometown (I’m from Belo Horizonte, Minas Gerais and I do love Brazil). So I started to save money and in 2015 I went to New Zealand for 6 months to study English. When I got back to Brazil, I got a job at a consulting company from San Francisco – California.

We’d speak English between ourselves and work for American clients. The company didn’t have any American visa programs back then, but in 2018 it started one, I applied for it and I got selected in the H1B visa lottery sponsored by the company (this is one way to immigrate to the US). They had a whole relocation program and it was pretty smooth to move with their support. I already got here working for one of their clients, they provided accommodation for 3 months and since there were other Brazilians at the company, the general experience was shared between us.

Also I had come to the US, San Francisco itself in 2016 and 2017 through this company and I got really familiar with everything. It was my choice to live in San Francisco specifically since I visited it the first time in 2014; I wouldn’t choose anywhere else. I really admire not only the respect factor that I mentioned at the beginning and it’s also cool to be in Silicon Valley. Everything here is super tech, we see people riding their one wheels or electric scooters, having conversations on their AirPods everywhere (even inside the public transportation) wearing their companies’ t-shirts (like Mozilla, Instagram, Google, Netflix) and backpacks. Not to mention that I live within 10 min distance from so many tech companies such as Meta, Google, IBM, Visa, Playstation, Fanatics, Rakuten, Oracle. I love it! A few weeks ago, I saw a driverless car!!! Yes. A car, driving without a driver!!! That blew my mind and I couldn’t be at a better place for myself.

If I could offer some advice, I’d recommend that people looking to relocate, if possible, visit the place before and get a sense of what the place looks like. Of course each experience is unique, and there are many factors that can impact your relocation such as climate, transportation, food, leisure, culture, etc and it’s good to understand a bit of how these things work so you don’t surprise yourself when you move. Moving to another country sometimes feels like you don’t belong to the new place and neither to the old place. It’s not an easy process – but it’s equally amazing.

What are some of the cultural differences you’ve encountered in the new workplace ? 

We usually have the impression that Americans are workaholics. I don’t see that. They don’t have work regulations as Brazilians do – such as max 40hs per week, 30 days of vacation, increased rate for overtime hours after 10pm or weekends/holidays etc. That doesn’t make them ruleless people. In fact, I notice they are way more straight forward.

Their work relations are real work relations. You are hired, you have your benefits (or not), you can request vacation at any time (depending on the company’s policy), you can quit at any moment, no notice required, no bureaucracy, no questions asked. Here, in Silicon Valley, it is really easy to start a company, they offer a lot of financial incentives and because of that I feel that they think too fast. Their pace and creativity is way different from Brazilians because it’s easier and it’s how they behave, so people are impacted by this “culture” of entrepreneurship. At the same time, they just want to do their jobs. When they are done, they are done. And they move on.

So, to recap, the work relations are simple and straightforward, the main difference for me is the pace that things get done or change – everything is super fast. And I’d say, because there are a lot of immigrants, you do experience a lot of differences depending on the team/company you work with. These differences could be: the way you communicate, the team’s interactions, even the quality of the work.

Outside of the worklife, I can say that the buying power here is very different from Brazil. You can get appliances, clothes, phones, and cars much easier than in Brazil. At some point you realize you have way too many things, and not a lot of space to store them… hahaha πŸ˜‚

Are there any specific challenges you faced when adapting to the QA practices and standards in the USA ? How did you overcome them? 

I don’t believe there were challenges related to the QA practices themselves, but I did face some challenges in explaining to leaders the importance of the QA related practices. For instance, when I say that we need to improve the testing framework because it’s taking too long to run or to develop a new test, leaders don’t understand it.

I need to be extra product oriented or wait for issues to happen to make them understand the importance of it. Most of the time, I use numbers to exemplify my theories, for example: when I needed to hire more QAs for my team, I gathered the time I was spending with each activity, the time to automate them, and the impacts of not doing them. I usually offer a few options, like: a best case scenario, an “ok” scenario and lastly a “not ideal but acceptable” scenario (more often, just 2 options so they don’t spend too much time making a decision).

Another technique is to use benchmarking; bringing to the table how company A, B or C does something is also helpful, sometimes this is not easy to get this data. I have to be honest here that I haven’t been super successful with these approaches. I had some episodes where issues happened in production, and then, finally they understood what I was trying to say. My guess was that because things here happen too fast and companies tend to follow each other’s examples, companies hire QAs and they don’t really understand why they need them (sometimes they think it’s just to manual test things). But overall the QA practices are pretty similar.

Have you noticed any variations in the perception or importance placed on quality assurance compared to Brazil? If so, in what ways? 

I have mixed opinions about this topic, because the US is really big and it has a lot of companies. My first impression when I started to work for American companies from Brazil, was that most of the tools and technologies were the trending top ones. And we could also guess that since most of the QAs that are writing and speaking about software quality are Americans.

But when you really start working with it, you realize that it’s very diverse. I’ve been working with really high performance teams, really smart people, and with below average teams too. Talking about the quality practices specifically, I see that it’s way behind the development practices in terms of people’s knowledge. I feel that Brazilian QAs are more prepared in general.

Photo by fauxels on Pexels.com

Are there any new unique methodologies or tools that you’ve come across that have improved your QA processes? 

Yes, I got really good at git practices, code reviews, Devops. I think the opportunity to work close to dev teams and fulfil responsibilities that are usually not QAs’ made me grow a lot. Living in the Silicon Valley and having the proximity to tech companies also helped because I see ads everywhere and kind of make me curious about them and at least understand what they do. Going to meetups also is another point, that makes me get to know a lot of tools and practices.And we can definitely find that in Brazil too, but I’d say, because of the pace here, it speeded up the process a lot.

A great example here is Playwright. It was suggested by a developer when we were deciding which tool to use and it ended up becoming the tool we adopted and my very favorite tool. I have worked with many tools such as Selenium, WebdriverIO, TestCafe (which is also really good – it has the best locator strategy in my opinion), but the speed and simplicity of Playwright are really impressive and make things sooo much easier for QAs and Devs!

I liked it so much that I now have some Playwright courses in English and Portuguese!

Are there any specific lessons or skills you learned in Brazil that you find particularly valuable in the USA ?

Brazilians are really hard workers. It’s pretty honorable ❀️. Also, the universities and training are really good in Brazil. So I think building a solid software engineering foundation was pretty valuable. Because that can guarantee that you are employable. The job market can get competitive so that’s great before getting in the US. Not to mention that the solving problems ability scales a lot by having a good foundation.

And also important to share the lessons and skills I “didn’t” learn, which is that non-Americans from certain industries, including IT, can apply for their own green-card (which allows you to stay in the US permanently) independently. This green-card category is called EB2-NIW. Without a green-card, you need to have a visa that it’s linked to a company or school and this expires around 6 years after you arrive in the US (so, you need to return to your country after it expires). The temporary visa has a lot of limitations, so the green-card is a great option in this case. Had I known that before, my life would have been so much easier.

Have you noticed any differences in the work-life balance or professional expectations ?

It’s funny to say, but Americans work less ahahah, compared to Brazil. There is no mandatory “lunch time” so, you can work 8 hours straight and still have lunch and breaks. You are naturally pushed to learn more and deliver during your productive time, but not necessarily work more. Another funny thing is that happy-hours in the US are usually from 2 to 6pm.

So, if you are going to a happy hour, you leave work earlier for that. Since the weather is also pretty different from Brazil, some companies have summer Fridays, and they allow employees to leave earlier during the summer. Another great thing about it is the Unlimited Paid Time. A lot of companies offer that and this means that you can go on vacation for as many days as you want per year and still get paid.

Of course your manager has to approve and if you don’t “deliver your work” you get fired, but if you are doing a good job, it’s pretty useful. There is no β…“ of your salary for vacations, but you get paid as you were normally working.I had almost 2 months of vacation on my last job πŸ™Œ.

Professional expectations vary a lot, depending on the company, team, etc. In general I’d say it’s pretty similar.

And that’s a wrap ! Thanks Renata, if you have any questions, feel free to contact her πŸ™‚

Brazilian QA’s around the world series

Hello πŸ‘‹ !

I recently received incredible feedback on a previous post, with many of you expressing curiosity about the differences between being a QA in Brazil and other parts of the world. 🌍

So, I’m thrilled to share that I’m launching a brand-new post series featuring interviews with talented professionals who migrated from Brazil and embraced the QA path in their new homes!

We will embark on a fascinating journey, exploring their experiences, challenges, and triumphs while adapting to QA practices in various countries. From the vibrant tech scenes of the USA to the innovative hubs in Europe and beyond, we’ll gain valuable insights and expand our horizons.

These interviews will delve into cultural differences, emerging trends, unique methodologies, and the evolving landscape of quality assurance. We’ll discuss their personal journeys, lessons learned, and the skills they found indispensable along the way.

So, get ready to be inspired, educated, and amazed by the stories of these exceptional professionals who embraced change, pursued their passions, and excelled as QAs in diverse corners of the globe. πŸš€

If you have any specific questions or topics you’d like me to explore in this series, feel free to drop a comment or send me a message. Your input is invaluable! Let’s make this journey together!

Site Reliability Engineering 2023 Conference

Last month, I had the incredible opportunity to attend Conf42 Site Reliability Engineering 2023 Conference!

The conference as a whole was really interesting but my highlights are:

Replacing Privileged Users With Automated Just-in-Time Access Requests by Travis Rodgers

  • Managing privileged access to resources can be cumbersome, with developers often needing temporary access beyond their regular duties.
  • Just-in-time access solutions allow engineers to escalate privileges when necessary, applying the principle of least privilege in a secure manner.
  • Role-Based Access Control (RBAC): Implementing RBAC further enhances security by defining and assigning roles, reducing the need for admin accounts.

Building Automated Quality Gates into your CI pipelines by Craig Risi (My favourite)

  • How to incorporate automated quality checks at various stages of the CI pipeline to ensure the delivery of high-quality software.
  • It highlights the benefits of having automated quality gates in place, including early bug detection and prevention.
  • Practical guidance on implementing quality gates using tools and techniques such as static code analysis, code coverage analysis, and automated testing.

GPT: Revolutionizing Monitoring and Logging Systems by Clay Langston

  • Use GPT (Generative Pre-trained Transformer) to enhance logging and monitoring performance.
  • Maximize log value and improve system performance.
  • Automate the process by integrating with ELK (Elasticsearch, Logstash, and Kibana).
  • Construct effective prompts to extract valuable insights from logs.

Observability: one of the strongest muscles for SRE by Jhonnatan Gil Chaves

  • Focus on the big picture when implementing SRE practices.
  • Recognize the importance of the team and tools in SRE implementations.
  • Don’t overlook the broader view of your IT components.

CICD – The SRE-DevOps Overlay by Safeer CM and Garima Bajpai

  • Site reliability engineering (SRE) and DevOps practices have overlapping boundaries in many organizations.
  • Continuous integration and continuous delivery (CI/CD) are essential aspects of this overlap.
  • CI/CD serves as a prerequisite for many core SRE practices.

How to achieve the scalability, high availability, and elastic ability of your database infrastructure on Kubernetes by Trista Pan

  • How to make the clusters scalable, elastic, and highly available.
  • Traffic governance between applications and databases plays a crucial role in achieving these goals.
  • Effective way to manage and distribute traffic.

Measuring Reliability in Production Ramon Medrano Llamas

  • Identifying Critical User Journeys (CUJs) and recommendations for selecting appropriate metrics as SLI and SLO targets.
  • Practical insights and actionable steps for implementing SLIs and SLOs in your own applications.

If you missed out on Conf42 SRE 2023, fear not! The link with the abstract of the talks, the speakers and other details is here and you can also watch below the talks on youtube πŸ™Œ

AWS SUMMIT 2023

This month I quickly attended the AWS Summit 2023 and here are my highlights from the conference:

The Data Metaverse Experience

  • The metaverse is relevant to businesses, with several concepts and technologies already being utilised, like PWC is able to see what is the best place to start a coffee shop as they have enough data to show where the competitors are, business around where people go out for lunch, nearest public transports.
  • Enterprise applications, such as employee training and simulating operations, are currently leading the way in metaverse adoption.
  • The metaverse may experience cycles of boom and bust, similar to other innovations like AI and the internet.
  • It’s possible to separate the reality from the hype and take practical steps to meet your company’s metaverse needs.
  • The metaverse promises a realistic 3D digital world with persistent elements and decentralized control.
  • Business implications include virtual reality visualization, enhanced customer experiences, and parallel production in physical and virtual environments.
  • Companies are already using the metaverse for employee recruitment, collaboration, digital twins, customer experience enhancement, and marketing/selling virtual products.

DON’T TRUST ANYONE

Make business and tech people happy

  • Community practice is extremely important, so if you are delivery lead be sure you promote regular knowledge sharing sessions, so people can contribute and also advocate for it.
  • All the teams need to follow some standards so they can move faster and the learning curve is not too long.
  • Tackle the tech debt to prevent and reduce inefficiency.
  • Promote webinars among the teams and also demos so people feel inspired to adopt and more aware of the updates.
  • All of these points will create a continuous improvement culture, were people feel they can take initiatives and feel more satisfied with their work.
  • Align strategic technical improvements with business goal (This is kind obvious πŸ˜‚ Try to make everyone happy and find a middle ground)
  • Continuous process to have technical challenges in the team. You know software engineers love to learn, this is what drives most of us.
  • Measure and prove impact of each technical improvement with metrics, and make sure it has minimum or zero impact on BAU.

And of course free lunch and coffee !! Joking, I didn’t even have lunch on that day πŸ˜‚ Couldn’t watch all the talks I wanted, but was amazing to connect with like minded people, refresh my mind and learn new things!

Web3 Test Series: Lewis Prescott

Lewis Prescott

QA Lead at Cera Care (one of Europe’s fastest-growing companies). He talks about Contract API Testing: 99 minute workshops with Ministry of Testing, on Testers Island Discs and many meetups.

He provides services on how to get started with API Contract Testing, Contract Testing for Microservices, End to End Testing, Acceptance Test Driven Development!

What are contract tests, and how do they differ from smart contract tests?

Β Contract testing is a framework for testing integrations between two services, for example an API and a mobile app. The contract is defined by the mobile application who requests data, shares the request and expected response with the API service which verifies the implementation matches the expectations. Imagine when you start developing a feature that has frontend and backend components. They must communicate with each other perfectly, in happy path and negative scenarios. These details are usually detailed within some form of documentation, but who is verifying that both sides have implemented according to the documentation? That’s where contracts come in.

Smart contract tests are also focused on testing agreements with the terms between contracts written into code, but the difference is that the contract that is compared against to is a contract deployed to a Blockchain. Same concept as normal contract testing but this time focused on the decentralised applications (DApps) and blockchain ecosystems.

Why are contract tests important in software development, and how do they differ from smart contract tests in blockchain development? 

Contract tests offer the ability to scale integration tests by using mocks and act as unit level tests. Large applications with many integration points can be verified quickly and without significant maintenance of test environments. There is plenty of logic such as http codes, required fields and error contents which can be verified via contracts without the need for heavy duty integration environments.

Smart contracts are the backbone of decentralized applications (DApps) and business logic. They help ensure that the code deployed on a blockchain accurately represents the intended business logic, functions correctly in different scenarios, and is resistant to security vulnerabilities, specially given the irreversible and immutable nature of blockchain transactions.

What are some of the challenges developers face when writing contract tests versus smart contract tests?

Contract tests has a bit overhead on setup, with provisioning the broker to store the contracts. Deciding whether you want to self host or use a SaaS solution. As well as the process shift of teams changing how they go about testing integrations. Moving from the authors of the API service writing their own tests to the consumer such as the mobile app writing tests. Often when implementing contract tests you already have integration tests, so persuading people to duplicate the effort can be a hard sell as well.

Smart Contract tests same as the Contract tests are not straight forward when you are starting specially as you need to have special knowledge to setup test networks, wallets, and tools. Another important point is the costs associated when deploying and testing smart contracts, especially when running large-scale or repeated tests. On top of those there is the blockchain specific challenges and security.

How do contract tests and smart contract tests differ in terms of the tools and frameworks used to implement them?

Contract testing most commonly uses Pact & Pactflow which supports multiple languages and frameworks such as graphql. Offering matchers and the ability to compare results makes implementing contract testing much easier. Pactflow offers a SaaS solution to store contracts securely and additional features to visualise dependents.

Smart contract tests are often implemented using dedicated blockchain development tools and language such as Truffle, Hardhat, Solidity. These frameworks provide additional features like contract deployment management, fixture data handling, and integration with test networks. Tools like Ganache provide local blockchain test networks that developers can use to deploy and test smart contracts.

How do contract tests and smart contract tests differ in terms of their level of complexity and the skills required to write them?

Contract testing gets complicated when you need to setup different states before the tests can run, for example data needs to be available within the API in order to test the specific scenario. The key skill though required is good communication and collaboration. Due to the teams now relying on each other to deploy and make changes. It’s important to communicate effectively and support each other’s changes. Contract tests also live next to the code, requiring a decent level of programming skills and knowledge of the application under test.

Smart contracts tests need to consider factors such as consensus mechanisms, gas costs, and security vulnerabilities, blockchain network, deploying contracts, and handling transactions. Additionally, skills in testing blockchain-specific functionality, such as testing for gas usage optimization and handling different network environments, are essential for writing effective smart contract tests.

Thanks for the participation Lewis ! It is always a pleasure to learn from one of the biggest leaders in the area ! πŸ™Œ

Web3 Test Series: Oleksandr Romanov

Oleksandr Romanov

Oleksandr Romanov is a Software Engineer in Test / Software Engineer from Dnipro, Ukraine.

He has 11+ years of experience in testing and test automation. His main area of expertise is building and leading test automation processes. He has worked with banking apps and payments services, CMS systems and mobile games. At the moment he is responsible for test engineering for a complex blockchain and blockchain-based applications.

He loves to share his knowledge in the form of articles and conference talks. Currently he contributes to these projects:

How can developers get started with building DApps on Web3, and what are some best practices to follow?

Decentralized applications in a nutshell very similar to the regular applications. From frontend part it is not different at all. The difference starts with the backend part. You need to learn what is blockchain, how it works, how to store data on-chain, how to create smart contracts and use oracles to fetch data from the world.

Best practice is to test smart contract code before the release. Due to the nature of blockchain, you can’t easily change the code after the release. That’s why in case of a bug, you have a huge risk to loose a lot of money and user’s credibility. Thus you need to put a lot of effort to test business logic and security of smart contract as much as possible.

What are some of the current trends and developments in Web3, and how might they shape the future of the internet?

Trends and developments in Web3 can be split into to major groups. 

First, there are totally new things – available and used mostly at the blockchain world: decentralized identities, zero-knowledge proofs, tokens and NFTs.

Second group – are the projects where people want to move successful business model from a Web2 to Web3 world. In some cases it is almost one-to-one movement, in other – it results in a totally new models. One of examples here are projects from the decentralized finances sector and any project with a prefix β€œdecentralized-”:  web browsers, social media and video hosting platforms, file hosting like IPFS and many many others. 

What are the most important things to test when building a decentralized application (DApp) on Web3?

Functionality. One of the biggest differences building DApp is that you as an engineer do not have a full control of your backend – it is distributed among ten of thousands of computers around the world. The blockchain is constantly evolving and you to be aware of changes and how they can affect your application. 

That’s why you need to understand how your application deals with the blockchain, how data is stored and retrieved, how pays the fees, how you present on-chain data to your customers. The deeper your knowledge of a particular blockchain – the less obvious bugs you will encounter at your DApp.

Security. When dealing with decentralized applications the majority of bugs come from the purely written smart contracts (or any code working with the blockchain). Hundreds of millions of dollars are lost due to neglecting the question of security for DApps. You can check some (not all) known hacks for Solidity at solidity-by-example resource. 

So in-depth security testing are the must-have for such applications. There are security testing tools like Slither, Echidna, Manticore, MythX available. But as any security tool – they can’t provide 100% security guarantees. Additionally, there are separate companies or people who do security audit for smart contracts.  

Performance. You should also understand how DApps behave in terms of the performance. As blockchain of the DApp is partially or fully stored at the blockchain – you don’t have a direct influence at the performance of the network. So you need to build usef flows in such a way that application should be blocked until transaction is stable. Stability or correctness can be checked as side – process. But it is all depends on the type of the DApp. 

What tools and frameworks are available for testing smart contracts and other components of Web3 applications?

In Ethereum world the standard frameworks are Hardhat, Truffle or Brownie. All of them have nice toolset for keeping contracts testable and observable. 

If you want to use some other programming toolset for smart contract development – it is possible to simulate the network locally using Ganache.

The testing of the Dapp can be split onto various levels.

  • Unit tests for the frontend usually created by the developers in Javascript / Typescript
  • Unit tests for the smart contracts can be done using Solidity or Javascript. Or Python if you use Vyper.
  • Integration tests are usually implemented in Javascript as well. Hardhat for example offers integration with Mocha out of the box.
  • UI tests can be created at any available language, but in case of JS stack – it can be plain old Selenium WebDriver or it’s fancier competitors – Playwright or Cypress.
    • For wallet integration (like Metamask) there are some libraries available: synpress, dappeteer

How does Cardano Blockchain differ from other blockchain platforms like Ethereum?

Cardano has a lot of differences from other blockchains available on the market.  

  • Transaction model. instead of account-based transaction model (like in Ethereum), Cardano has UTXO model – similar to Bitcoin’s. More precisely – an extended UTXO model. 
  • Tokens. You don’t need to create special smart contracts to get new tokens on Cardano. Here tokens are natively supported along with the native currency – ADA. 
  • Consensus protocol. Cardano uses β€œOuroboros” proof-of-stake protocol (in some variations) from the launch date. So the chain itself much greener and consumes less energy for producing blocks. Ethereum has only recently switched to proof-of-stake. 
  • Upgradability. It was a long and hard road, but now it is possible to update the main chain and protocol almost instantly and without a risk to get issues or a big forks.
  • Formal Verification. All new major technical improvements to the chain starts as a whitepapers and then formally proved by a scientist community. Only after that it become a code. 

What programming languages and development frameworks are used for building applications on Cardano?

At this time the main programming language for creating smart contracts at Cardano is Plutus. It is a Haskell-like language, that allows to build and test smart contracts before they are deployed. You can start to dig into Plutus from the documentation page. From the first sight Plutus may seem like a hard one – but it offers a better security and auditabilty comparing to Ethereum’s Solidity. 

In addition to Plutus, you can try Marlowe – the domain-specific language for financial contracts. It can work either with Haskell or with Javascript. 

If you want to learn how to create smart contracts using I can also recommend the Plutus Pioneer Program course. For better understanding you check a prerequisite course on Haskell. 

What resources and communities are available for learning and collaborating on Web3 development?

Official documentation is the first source of information about a particular blockchain or technology. Additionally, each major blockchain projects has it’s own forums and Discord communities. 

If you have some background in programming language, I can recommend the following resources:

From testing point of view – I definitely can recommend Web3 tests community. It is a very young community, but will be useful for those who want to understand testing in blockchain a little deeper.

Also – you can check Awesome Blockchain Testing repo in search for posts and whitepapers on testing in blockchain. 

To get a glance on how testing is done for Plutus on Cardano – check out Testing Plutus Smart Contracts series of blog posts. 

Thanks for the participation Oleksandr ! Amazing interview and a leader to follow in the web3 area! πŸš€

My QA Journey: Adobo & Avocado Podcast

This past month I had the opportunity to be a guest on the Adobo and Avocado podcast πŸ₯‘ to discuss my journey in Quality Assurance (QA). As someone who has worked in the tech industry for several years, it is interesting to see how I ended up in this area since my first option was to be a web developer back in the times using FrontEnd, Dreamweaver, Photoshop, Flash 🀣.

I shared my entire career journey, moving to UK and the industry differences between here and Brazil, also including some of the challenges and how I’ve overcome them, so some ideas for you that might be going through the same. And in the last part I shared my recently adventures on the Blockchain and Web3 World !

Great great time speaking with Marie and Nicole on Adobo and Avocado Podcast. Thanks for your support, and happy listening!

London Blockchain ConferenceΒ 2023

Last week I went to the London Blockchain Conference 2023 and was brilliant ! It provided a wealth of information, discussions, and real-world examples of how blockchain technology can drive innovation, improve trust (Specially with AI coming – Infocalypse), and transform various industries.

Some of the highlights over its three days were:

Day 1:

  • The conference opened with nChain Group CEO Christen Ager-Hanssen posing a question about the purpose of blockchain, eliciting answers ranging from profit to education and business.
  • Discussions focused on showcasing the potential of scalable and lawful blockchain technology to generate revenue.

Day 2:

  • The concept of improving trust with blockchain technology was the central theme of the day.
  • Keynote speaker Peter Schiff talked about how “digital gold” could replace fiat currencies like the dollar, emphasizing the role of blockchain in enabling this transition.
  • Presentations from the Philippines highlighted the country’s digital transformation efforts, including partnerships between government agencies and private companies like nChain.

Day 3:

  • The focus was on driving innovation with blockchain technology and looking towards the future.
  • Projects demonstrating real-world use cases for blockchain were showcased, such as the United Nations World Food Program’s “Building Blocks” project and Gate2Chain’s Trace application for supply chain traceability.
  • Code-along sessions provided practical insights on building blockchain-powered applications, and there was a keynote presentation by nChain Chief Scientist Dr. Craig Wright on leveraging blockchain for business efficiency and cost reduction.

It might be over, but you can still catch up on content you missed by viewing recordings from the event! You will need to register before but then you can access the past event that is going to be available for 1 year.