Web3 Tests Series

Hey there ! Are you ready to dive into the world of Web3 testing? We’re about to take a deep dive into the exciting and ever-evolving world of blockchain technology.

Web3, or the third generation of the internet, is a term used to describe a new era of the web that is focused on decentralization, security, and user privacy. Unlike the current web (Web2) which relies on centralized servers and applications, Web3 is built on decentralized technologies like blockchain and peer-to-peer networks.

This means that instead of relying on a central authority to manage and store data, Web3 relies on a network of users and nodes to collectively verify and manage transactions. This decentralization creates a more secure and transparent web, where users have more control over their data and can trust that their personal information is being handled safely.

One of the key technologies driving Web3 is blockchain. Blockchain is a decentralized ledger that records transactions across a network of computers, making it virtually impossible to hack or alter data. This makes it a perfect fit for Web3 applications, where security and transparency are essential.

Another important aspect of Web3 is the focus on user privacy. With the current web, users often have to sacrifice their personal data in order to use online services. But with Web3, users can maintain control over their data and choose what information they want to share.

Overall, Web3 is a promising new era for the internet that puts users back in CONTROL of their data and creates a more SECURE and TRANSPARENT web. From testing smart contracts to decentralized applications (dApps), there’s always something new to learn and explore.

So, if you’re a fellow Web3 enthusiast, or just someone who loves a good challenge, be sure to follow my upcoming posts. I’ll be chatting with some of the leading minds in the industry and sharing their insights.

Until then, join our Web3 Testing Discord Community or our Twitter and stay curiousπŸ”₯

Graphql Contract Testing with Lewis Prescott

It was an honour to participated on one of the episodes of Lewis Prescott Pactman podcast last month. We talked about contract testing and a blog post I have published some years ago (Excuse me my Alzheimer πŸ˜‚) and then we also touched a bit about web3 tests in the end. Check the episode and follow his podcast if you are interested on more contract tests content.

Are you considering a career change or a move to a new country?

Hello guys,

Today it is going to be a different post, not as technical as the other ones, but I saw the need to share some inspirational story. It can be a daunting and overwhelming decision to move to another career like QA or another country, but it can also be an exciting opportunity to pursue your dreams and create a better life for yourself.

I have interviewed Jeferson who have made the leap to a career in Quality Assurance (QA) and moved to Canada from Brazil. His experience can provide valuable insights and encouragement for anyone considering a similar path. (Which I also have gone through the same 10 years ago πŸ™‚)

Can you tell us about your experience moving from Brazil to Canada?Β 

I first came to Canada at the end of 2015 with the intent of getting fluent in English while having an experience of living in a different country, which was my first time I was going to be outside Brazil.

What motivated you to make the move? 

Brazil’s economy got worse and I had no perspective of getting a job returning to Brazil, so I decided to stay in Canada and try something new.

What led you to transition from your previous career to a career in Quality Assurance? 

Back In Brazil I was a Occupational Health and Safety Engineer working as Mechanical Designer, and I found myself with a hard path in front of myself if I decided to remain in the same field here, in a nutshell I’d have to start everything from scratch, doing a 4-year degree and it’d cost an amount of money I didn’t have. So with some eye opening inputs from friends, I decided to embark on a new challenge and get into tech, which my initial intent was to become a Software Developer working with Virtual Reality.

After graduating the Computer Systems Certificate Program I got my first job as a QA Engineer, where 90% of the time I was doing something else and only 10% of the time I worked as a tester, which was mainly manual regression testing and I hated, excepting for one project I worked on to create the Test Automation in Selenium. I was not happy with the job and found an opportunity in another company ( my current one) as an SDET (Software Developer Engineer in Test) which I only applied to get to a bigger company and transition to a Software Developer role within the company. In this company, I was presented, by my manager, a whole new testing world, where was not unstructured manual testing where I was just navigation through the system in the hopes of finding bugs, instead the approach here is to use critical thinking to do risk analysis and invest time and effort where it matters to improve the product, and go beyond ACs (Acceptance Criteria) to see where the system can brake and thus to a job that matters, is exciting and with very little boundaries on where to go. This new approach of testing made me get excited and want to become a professional in testing where I could code, explore and contribute to shape a better product by using a wide range of skills.

How did you prepare yourself for the transition into QA? 

I did a Computer Systems Certificate Program to learn how to code which led me to my first job opportunity in QA, even though I knew almost nothing about testing I was given a chance to step into this field. In this job I didn’t do much testing , but I got to work on a project to create the Test Automation in Selenium for the company, which was essential to get my second and current job, and here I really work in testing.

In a nutshell my preparation was the 2-years part-time certification course to learn programming and the Selenium project I worked on in my first job.

Did you take any courses or obtain any certifications? 

I did some courses on programming but none focused on testing, all I learned about testing (besides unit testing) I learned on the job. I’m currently seeking the ISTQB Foundation Certification to grow as a professional.

What aspects of your previous career do you think have helped you in your current role as a QA professional? 

The skills I acquired from being an Occupational Health and Safety Engineer and a Mechanical designer really helped me in my QA role. Among them, risk assessment and management came in handy when analyzing where to put efforts on testing and tackle areas where big issues can come up, also problem-solving skills, attention to detail and critical thinking were essential to excel in this field. So even though I didn’t have proper training to work in QA, I already knew where to look for issues, analyze what could lead to an issue and how to prioritize efforts.

Can you walk us through a recent project you worked on as a QA professional? 

Recently we upgraded an existing old feature to meet the business needs. It’s an import tool where a list in an excel file is provided and based on the file rows and rules in place, we manage the users by creating, updating, deactivating or reactivating them.

How did you approach it and what was your role? 

I was responsible for the test design and test approach. I started by doing a combinatory approach to discover the possible exception and happy paths to prevent redundant testing, and bring more value to the test suite with lower runtime.
Based on the information gathered in the combinatory approach, we analyzed all existing tests to remove what was no longer valid and refactoring the tests that were still relevant and create new tests for remaining uncovered scenarios.

In your opinion, what is the most important skill for a QA professional to have? 

Problem-solving and critical thinking: We should be able to analyze complex system problems and answer the question β€œWhere and how can this break?”. Rarely the issues are in the acceptance criterias / requirements, everyone is looking at it already, the issue comes from other places, like non-written requirements, where something is expected to behave in a certain way, for a common sense perspective, and it was not written down, so people will not pay much attention it, but it’s expected to comply to it, other common places to fail are integration, where both sides work perfectly on their own, but brake when put together.

How do you stay up to date with industry trends and developments in QA? 

In the company we have a QA Guild where we constantly present trends and new approaches to testing. Besides that, I use the feature I’m working at the moment to google how other people are approaching the same problems and recently using chatGPT for ideas and explanations.

Finally, what advice would you give to someone considering a move to Canada and a career change to QA?

Whether you’re moving to a new country or starting a job in QA, a certain mindset is required for success. To thrive in these situations, it’s important to have an open mind and be willing to embrace challenges. Try new approaches, develop critical thinking skills, and don’t be afraid to question what others tell you. Remember that everyone’s experience is different, and there is no single “right” way of doing things. Instead, focus on what works for you and be willing to take chances along the way.

Hope this story gives more support to people that are transitioning into the QA career or moving to another country as well.

If you want to contact Jeferson, feel free to send him a message on Linkedin 😁

Thanks again for sharing this Jeferson πŸ™ŒπŸ™Œ

Google Cloud Summit 2023

Hey guys !

Last week I joined the Google Cloud Summit 2023 and watched some sessions. The main goal of the conference was, of course, to do a bit of marketing on Google AI and Google Cloud, but was also interesting to see ideas on how you can use AI in different areas.

The event has ended, but you can still watch the sessions on demand, you might need to register your email tho.

Starting

For an overview on Google AI and to see what Google is offering then I suggest starting with this video:

Sessions and Demos

My favourite demos and sessions from the conference:

You can also check this interesting Balancing your Database page where you can select the best relational database between Cloud SQL and Cloud Spanner according to the different traffic patterns.

Learning paths

And to conclude you can also see some of the learning paths for the careers you can achieve, you can enroll for free in any of the courses they provide:

What the QA Position Will Look Like in the Future – TAU Conference

Hey guys, on 16th March I talked a bit about what the QA position will look like in the future on one of the Lightning Talks at Test Automation University Conference.

To watch the session on-demand recording just check out the link: applitools.info/6ob

A recurrent question is if AI is going to steal our jobs. I just want to remind you all we used to work in farms without any equipment, then machines came and some people stayed doing manual work and some others had to adjust themselves to still work in the farm. They had to learn to operate these machines.

What I mean is: It is a cycle. There is no need to panic! 😱 You will need to ADAPT and more important LEARN how you can improve your work using AI. There are many people sharing how you can do it and I will be sharing soon as well, just need to finish a research using ChatGPT haha

And yes there are new jobs already being created, for example: https://www.linkedin.com/jobs/view/3503646880/

Not everybody knows, but on that day I had my myopia laser surgery booked last minute and was rushing to go to the hospital, so apologise for being a bit all around the place ! I was panicking but not because AI is going to steal our jobs πŸ˜‚

ChatGPT approved seal:

Implement Synpress support methods in your Web3 tests

Hello guys,

Today I am going to post a quick and easy to use snippet with Synpress MetaMask support methods in your Web3 E2E (end-to-end) Test Project.

Create a base class to get the Synpress methods and extend it to use across the project. Here are some examples of methods that you can have:

export default class MetaMaskSupport {
  getCurrentNetwork() {
    return cy.getNetwork();
  }

 isMetamaskWindowActive() {
      return cy.isMetamaskWindowActive();
  }

  getMetamaskWalletAddress() {
    return cy.fetchMetamaskWalletAddress();
  }

  acceptMetamaskAccessRequest() {
    cy.acceptMetamaskAccess();
  }
}

Then you can either extend the class:

import MetaMaskSupport from '../metaMaskSupport';

export default class HomePage extends MetaMaskSupport {
  constructor() {
    super();
  }

  visit() {
    cy.visit('/');
  }

  waitUntilLoggedIn() {
    cy.waitUntil(() => {
      const walletAddress = this.getMetamaskWalletAddress();
      return walletAddress.should('exist');
    });
  }

  getLoggedInWalletAddress() {
    const walletAddress = this.getMetamaskWalletAddress();
    return walletAddress.invoke('text');
  }
}

Or you can instantiate as an object:

import MetaMaskSupport from '../metaMaskSupport';

export default class HomePage {
  constructor() {
    super();
    this.metaMaskSupport = new MetaMaskSupport();
  }

  visit() {
    cy.visit('/');
  }

  waitUntilLoggedIn() {
    cy.waitUntil(() => {
      const walletAddress = this.metaMaskSupport.getMetamaskWalletAddress();
      return walletAddress.should('exist');
    });
  }

  getLoggedInWalletAddress() {
    const walletAddress = this.metaMaskSupport.getMetamaskWalletAddress();
    return walletAddress.invoke('text');
  }
}

Now, get yourself a drink, you deserve it 🀣

2022 – End of the year learnings

Finally this year is over ! I have done a lot of things, mostly of them were solving problems that arose all of the sudden, but I’m mostly grateful for everything that I have been through, even the shit shows that happened. You know what people say, good times are great, but bad times help you to build character.

I finally was able to go to San Francisco Bay Area for an entrepreneurship course at Draper University that I’ve signed up for before the pandemic to focus on my new/old goal.

It has been a tornado of things to learn/refresh my mind, but here are some things that I took from this first week:

  • Never travel with tight connections. But when you do attach an airtag to your luggage! And in case your luggage gets lost, buy second hand or clothes that you can return.
    • Aer Lingus lost my bag during a connection in Dublin to San Francisco, it was 3 weeks without my clothes, not a really nice experience.
  • Everybody is in a different stage and journey in life, don’t feel demotivated by others. NO MATTER WHAT.
  • Keep learning (This is my every day reminder)
  • Make real connections with genuine good-quality people and life becomes more joyful even when things are difficult. Also, it is way easier to learn from people like this.
  • Observe and listen more than speak. (Every day reminder as well, but I am more a listener than a talker since I can remember)
  • Travelling by yourself is amazing (not new, but for all the people out there that are afraid to try, GO FOR IT)
  • Build your network independently if they are only virtual connections (for now) or not.
    • C’mon we have enough tools nowadays to allow us to drink some wine together with a friend on the other side of the world.
  • If you are at the beginning of your journey, look for mentorship and advice. Knowledge saves loads of time.
    • But be careful and look for real mentors, there are plenty of frauds around there.I can keep a healthy mindset in my old age to listen to others no matter their level. ❀️
  • Be a rebel ! (Another reminder, sorry mom haha)
  • Don’t wait too long and just do it, but also enjoy the journey.
  • Flying cars are real and they are available for sale already.
  • Don’t trust on those water-resisting plastic bags for your mobile ! The water is going to come inside even if you are in the shallow part !!
  • Have a dash cam on your car !
  • Have backups when you travel ! A backup phone and maybe even a paper with important phone numbers on your wallet (Don’t trust in tech that much)
  • Stay far from negative and prepotent people, but not too far. I believe they help you to build emotional intelligence, you have the power to decide if what they say is going to be the fuel for you to progress or if you are going to allow them to drag you down. Transform the judgemental comments into constructive feedback and ignore the rest.

And last just sharing my 360 review result, for all the people that have helped me with this, my big thanks. Looks like all this time interested in communication styles and human behaviour made me a more self aware person and I am not an asshole after all πŸ˜‚

Using openAI to create content for social media

Hello Hello πŸ‘‹πŸ‘‹πŸ‘‹

Today my post is a bit different from the others as I was having some fun with AI last weekend. I realised I was spending too much time thinking about the content, adding some fun emojis and adding the hashtags for posts on social media.

Then I spent last Saturday evening creating this tool with OpenAI πŸ€– quite basic now, but I am planning to have small increments as we go.

It's been a fun couple of hours doing research, coding, and testing, but it's here!  This AI tool can increase efficiency and optimize the content creation. πŸ’ͺ    

This paragraph was generated with the tool

If you are curious about the code and you want to run locally, this is the repo:

https://github.com/rafaelaazevedo/rediskets

You will need to create a .env file and add your OpenAI API Key, which is generated on their website after you create your account there (It is FREE).

If you just want to try it out, open the link and add the text explaining what your content should be about, maybe even add some personality like (friendly, assertive, etc) to help AI to find out what is more close to what you want. It will generate a post with emojis, hashtags and a picture related to what you wrote. The picture is definitely not the brightest feature as you saw above, but maybe you will have some fun like me and generate a picture of dogs without faces πŸ˜‚

PS: you might get some 502 errors (they are random and unfortunately is because I am using a free trial and OpenAI api is returning the query with some timeouts) πŸ˜”

https://rediskets.netlify.app/

This really represents me after I deployed my code !

E2E Tests for Web3 Applications (TestJS Summit 2022)

It is out πŸŽ‰πŸŽ‰

If you are curious to know about web3 and how can you test it, here are some ideas!

We will go through a brief explanation of what is Web3 and the architecture of a web3 application. Then we will talk about how to do end-to-end tests, its challenges, some test tools that are available, and 2 demos using Synpress and mocking the web3 layer.

The agenda is:

– What is Web3;

– The Architecture of a Web3 Application;

– Web3 E2E Tests Introduction;

– Web3 E2E Tests Challenges;

– E2E Test Tools;

Demo.

https://portal.gitnation.org/contents/e2e-tests-for-web3-applications

It took me ages to record this video, not going to deny, I am still improving my video editor/design skills… I even bought a new mic to help me and would love to have some feedback about the talk in general.

If you have literally 5 seconds, here is the link.

The big news is, we have created a Web3 Tests Community on Discord !

Yes, me and Jakub, one of the creators of Synpress, are on that and we are looking for contributors and members (of course) πŸ™‚

  1. Yes, I know… We have too many places to create a community nowadays 😩, but this one is going to be one for all of our Web3 Testing people.
  2. Still in the beginning so bear with us while we build and share the content.
  3. Join and share 🀩

Monitoring and Alert Test Strategy Meetup

Hello all, in July I presented this meetup about Monitoring and Alerts Test Strategy for the Test Automation Talks Group.

Here are the slides:

The demos with different from the slides:

AWS Fault Injection Simulator

Chaos Engineering with Gremlin

ChaosMesh Doc

https://chaos-mesh.org/docs/basic-features/

KubeMonkey – Running Chaos Engineering

As always if you have any questions or feedback just ping me a message πŸ˜€