First steps in the world of testing and its endless dimensions


1. Networking

When focusing on testing or software, make sure you make the right connections. In such a fast-paced industry, it’s crucial to keep updated and informed about the latest events and news, talk and exchange information with peers, join communities and gain visibility. Having the right contacts at the right moment could mean the difference between success and failure, so start by contacting people and industry leaders so you can always keep open to networking opportunities and job offers. But, where? A great place to start is by creating a LinkedIn profile, and following companies you find are a good fit for your career. Then, you can search in those companies for specific employee profiles that could potentially post job offers or opportunities you are interested in and follow them—Recruiters, Project Managers, QA Leads, Testers, etc.

2.   Currículum


Keep it short! Maximum one page with clear and concrete information. Remember that recruiters receive hundreds of CVs, so go straight to the point to be memorable. When creating it, it is crucial to sort everything in chronological order from newest to oldest, highlighting the Testing or Software courses you’ve done, projects you’ve worked on, and your abilities, and emphasize how you added real value to them. Always keep it relevant to the position you are applying for, so don’t hesitate to make different versions of it for every company or role you are interested in applying.

Also, another pro tip for having an outstanding CV in this testing field is always use links to your advantage: include your LinkedIn, Githhub, or even a short video to present further information and stand out without overloading your 1-page CV. Make sure you add all technologies you are experienced in; just a simple logo it’s enough. In this sense, and to stand out even more, try to give your CV a friendly design and logical layout that invites you to read and guides the recruiter on where it should focus the attention more. A good and free tool to make it unique is Canva.

3.   English

Communication always opens doors no matter where or what you are working on. And not only in the professional sense, but it’s also an excellent skill for personal growth. With the globalization, digitalization, and intercultural synergies that experts have nowadays, new opportunities that some years ago would have been unimaginable arise. Knowing English will open your range of possibilities and significantly facilitate your job hunting. This doesn’t mean you have to be an expert and learn tons of languages; just having a good level of English and working from that to improve each day will make a difference in your professional and personal development.

Some free and effective recommendations that we use at Light-it and could add much value to your professional growth are:

You could also follow and connect with users who post English tips on social media. For example, on LinkedIn we recommend:

Pro tip: to keep practicing your English without the tedious and traditional process of actually studying, a good practice is to watch your favorite movies or series in English with English subtitles as well, or listen to music in English, play with the app Duolingo or read your top-notch novels in English too. These passive ways, if practiced constancy, will help you keep working on your communication skills and boost your testing career.

4.    Testing:

Finally, and to understand the endless dimensions of testing, which actually is constantly growing and changing, here are some recommended YouTube channels from which you could get valuable insights:

Bonus: Follow Diego Gavilanes on Linkedin for daily tips and more testing insights explained in a friendly and straightforward way.

Developing your career as a tester: the secret no one tells you

  1. Follow your intuition and step up for your goals:

We all know that starting from scratch is intimidating, but as cliche as it might sound, believe in your intuition and dare to take the first step. We are constantly hearing motivational quotes, following our heroes on social media, and watching success stories that inspire us to someday be like that, but remember, everybody started from point zero, so start now. Whenever you are uncertain about what to do, you are caught up in a situation where you feel out of your comfort zone, or you are afraid to face change, remember that if you weren’t prepared to take that opportunity, it wouldn’t be presented to you. So, dare to take the step! This doesn’t mean you’ll succeed on your first try, but the benefit of failing earlier is that you go breaking those barriers and learning step by step how to escalate, while others just don’t have that learning curve acquired yet and will probably find it harder within time.  

2.    Be keen on learning:

With so many resources available, thanks to our interconnected world, make sure you are a proactive learner that takes advantage of it. Ask questions, research, exchange with your peers, deep dive into your area of interest, and be curious about the world around you. Don't be afraid to turn to your peers in your company, with their years of experience and knowledge in the industry they can guide and advise you to make the best decisions and learn quicker. Understanding how fast the industry is changing and loving what you do so much that excites you to learn more about it will definitely give you an advantage in facing future challenges.

Remember that no one expects you to know everything, so expand your knowledge by joining communities where you can talk to experts in your field and exchange points of view or information. The learning opportunities are not only available inside your company; there are many external resources to help you expand your knowledge, learn about other people’s experiences, and keep an open mind! You could also attend conferences or meetups and get valuable tips for your professional development as a tester. Watch videos, listen to podcasts, read articles, whatever works for you, but always keep seeking more.

For the testing and software industry, some recommended resources you could use are:

3.    Work on your personal brand:

Making yourself known in the industry is no easy task, but it is crucial. Each one of us, from our experiences, has a lot to offer to the world, but first, to be able to reach and connect with others, we have to let them know we exist, and for it, it’s important to transmit the right message as it builds up our personal brand. This means everything we do, how we do it, and when and why we do it contributes to creating our personal brand that will directly affect our personal and professional careers. They must be aligned, so think carefully about the image you want to transmit as a tester and what value you want to add to others so you can start building up from it. Also, bear in mind that social media, referrals, and networking play a significant role in your personal brand, so we recommend you start interiorizing in this subject with this free course: Platzi.

4.    Don’t let the Imposter syndrome paralyze you, and go back to point 1:

Facing challenges is part of life, growing and scaling as a professional, but we often sabotage ourselves without even noticing. Imposter Syndrome is when we internally think we’re not good enough, are not prepared for something, or don’t deserve what’s happening to us as if we were a fraud. So, in that self-doubt, we tend to sabotage our progress and affect our professional life and emotional well-being. Indeed, it might appear in any situation, to any person, and in all industries. To learn about it specifically in testing, we recommend watching this video: The Imposter Syndrome in Testing.

But the most important thing here is learning to identify and control it. Here are some pieces of advice for it: How to overcome Imposter Syndorme.

Key skills all testers must strategically develop

  • Always and in any situation, have a good attitude.
  • Proactivity.
  • Be self-taught.
  • Communication.
  • Adaptability.
  • Critical thinking.
  • Learn to generate strong interpersonal relationships between team members.
  • Teamwork and collaboration.

Test and Quality Strategy:

There is a lot of talk about quality, but we all have different (and valid) views on what quality is. It's really valuable to take your time and align within teams and even with customers about what quality is for that product and business in that specific context. This will potentially allow you to make better and more strategic decisions.

Nowadays, the most common quality testing approach (approach or paradigm) is probably Context-Driven Testing but beware; it's not the only one out there. Context-driven testing works very well in agile contexts, and these testers' profiles are those who can solve problems and make decisions based on context: the project, the team, the product, the business, the final users, and the customer.

Also, remember that process standardization is not necessarily the solution to everything. Usually, the path, the process, and the decisions will depend on the reality of each project and team. But what is always important is to keep those decisions, techniques, approaches, and processes included (as grounded as possible) in the Test and Quality Strategy documentation. The strategy document should be short and easy; we all know that if it's tedious and lengthy, nobody will want to read it. And, as evident as it may sound, it's worth reminding that the strategy should be put into practice and that it is not just a pretty document and nothing more. In most cases, it will likely become routine over time.

Still, it's important to keep an open mind as anyone on the team should be able to argue what's written in it, and the Testing and Quality Strategy should be flexible enough to adapt to changes or to be modified.

Information to include in your testing strategy:

  • The types of tests you will be executing (functional, non-functional).
  • At which levels are the tests going to be executed (code, services (API), UI (E2E).
  • How is it supposed to reduce technical debt?
  • General tools that you'll possibly be using.
  • How will the tests be designed, documented, and executed?
  • What techniques and heuristics will be used?
  • How will code versioning happen (it's part of the process, right?)?
  • Is a risk analysis going to be done, and how?
  • How will the regression cycles be?
  • Other testing approaches will be used, such as shift-left testing, shift-right testing, and risk-based testing.
  • Management of test environments and what will be done in each environment.
  • CI/CD implementation.
  • The life cycle of an incident or a task.
  • Testing coverage.
  • Static code analysis.
  • Reports.
  • Metrics.
  • Everything that has to do with the automation strategy (if any).
  • Whether to implement artifacts such as Definition of Ready, Definition of Done, Acceptance Criteria, etc.
  • Code version control system (and branching).
  • Monitoring of logs and errors in production.
  • Production tests.

How to define a testing strategy: Step by Step

  1. The whole team, including the PM, technical leader, testers, developers, designers, etc., should gather information about the context of the project.
  2. Start writing the strategy and process in a document based on the information gathered. Answer the questions "What?", "How?" "When?", "Where?", "Why?".
  3. In that document, iterate and adjust the process or strategy according to the decisions made. Give it as many turns as you consider necessary for everything included there.
  4. Validate the strategy with the rest of the team.
  5. Disseminate the strategy internally in the project so that everyone knows it.
  6. Ensure that this strategy is put into practice.
  7. Maintain the strategy updated as things change over time.

Agile insights and objectives:

One of the main goals is to eliminate waste and deliver value (product increment) to the business and users at a sustained pace in regular (and potentially short) time intervals. Agile methods or frameworks allow for short feedback periods, so we can adapt processes and improve the product based on that feedback and on experimentation.

Being agile does not mean we don't have to document anything, but documenting strategically what really adds value to the project and the team. We will be generating waste if we write things that do not add value or are not worth it.

Automation:

For the team, automation is a crucial support element. But where do we start to automate? Well, by making strategic decisions on how things should be done, prioritizing the critical functionalities for the business, and, at the same time, the most mature.

Here, strategically define the programming language you'll be using for test automation. Using the same language as the one used to develop the product is often a good idea.

Then, define the automation tools to be used. An excellent option is to use a tool that, with its capabilities and functionalities, covers the need and at the same time has a specific community that gives constant support.

Also, define at which level you will start automating the tests. For this you could consider the model proposed in Cohn's Pyramid: a good base of automated tests at the unit (or code) level, followed by many tests at the API (service) level, and a smaller number of automated tests at the UI level(E2E).

Moreover, the team should answer the following questions:

  • Why will we automate?
  • What is the main motivation to do it?
  • What is the return on that investment?
  • How do the team, the project, the product, and the business benefit?
  • Is it really worth it?
  • What, how, when, where, who, why, what for?

Other important questions are:

  • How are the service mocks going to be faced?
  • How are the assertions going to be done?
  • How will the reporting be done?
  • In which browsers will the tests be executed?
  • How will the logging and error handling be?
  • How are we going to version and maintain the automation code?

Remember that automated tests are basically code testing code, and, like all code, our automated tests can have bugs. So, if the automatic tests never "find errors" in your code and are always "Passed" with the green "tick," that's a good reason to worry.

For UI-level tests (E2E):

  • define whether Codeless, Low Code, or other tools that require code will be used - examples: Testim, Selenium IDE, Katalon Studio, Selenium WebDriver, WebdriverIO, Cypress, NightwatchJS.
  • define locators strategy.
  • define which orchestration library will be used - examples: Mocha (comes built-in with Cypress), Jest, Jasmine, TestNG, JUnit.
  • define which design pattern you'll use. Page Object is usually a good option, and it is commonly used.
  • generation of data for tests.
  • parallel execution in a pipeline.
  • consider "flaky tests" maintenance.
  • consider having a version control system for the automation code.

Misc:

Testing is, to a large extent, looking after and pursuing quality. It’s a research and investigation process that allows gathering information that helps the team to make better decisions. Anyone can test, but only a tester can do good testing. As testers and quality analysts, we must encourage introspection within the team and constant process improvement. Also, remember to avoid making unilateral decisions. Validating and asking before reaching rushed conclusions is always a good idea. Generally, a smooth, oiled, and hard-worked process results in a better quality product.