Testing AI Coded Apps – Challenges and Tips

AI tools like Lovable.dev are changing app development, enabling rapid prototyping and giving the power to everybody to create functional applications through natural language prompts.

These tools are 20x faster to code than a developer, but they also introduce unique challenges in testing, debugging, and maintaining the generated applications. When you add AI to the team, you need to be vigilant.

Let’s explore below some challenges, and common scenarios that can happen and how you can test and identify them.

If you want to be able to use the code as a boilerplate and escalate the product after, don’t add 300 features before checking and testing it! AI creates hundreds lines of code making it harder and harder to review and maintain, test and check the code early as possible.

Also be aware, they will use whatever library they think is the best or they have partnership with. (Example: Lovable.dev will push you to use supabase) and some of these libraries/tools might not be the best/cheaper for your product (Check subscription prices). These AI tools might use libraries that are deprecated creating a conflict with other dependencies as you scale, introducing other bugs.

If you want to just test the market, prototype and you are completely okay to might have this MVP rewritten from the scratch then no need to worry about too much.


Common Challenges in Testing AI Coded Apps

1. Code Quality and Optimisation

Scenario: An e-commerce startup uses Lovable.dev to build a shopping platform. The generated code includes a product listing feature but contains redundant database queries that degrade performance.

Generated Code Example:

// Generated by AI
let products = [];
for (let productId of productIds) {
    let product = db.query(`SELECT * FROM products WHERE id = ${productId}`);
    products.push(product);
}

Issue: The code queries the database inside a loop, resulting in multiple queries for a single operation.

If you only had a happy test scenario you wouldn’t be able to catch this one, so in this case you will need to actively check the database and it’s performance.

2. Limited Customization and Flexibility

Scenario: A nonprofit organization creates an event management app. The appโ€™s AI-generated code fails to include the functionality to calculate the carbon footprint of events.

Generated Code Example:

// Generated by AI
events.forEach(event => {
    console.log(`Event: ${event.name}`);
});

Issue: The AI didnโ€™t include a custom calculation for carbon emissions.

This is typical, sometimes AI only codes the front-end, some of the interactions between the components, and uses hardcoded the data, but it is unable to create the backend or logic behind if not explicitly asked for and send the formula. This can be catch in a simple happy test scenario with different inputs.

3. Debugging Complexity

Scenario: A small business generates a CRM app with an AI tool. The notification system malfunctions, sending duplicate notifications.

Generated Code Example:

// Generated by AI
reminders.forEach(reminder => {
    if (reminder.date === today) {
        sendNotification(reminder.userId, reminder.message);
        sendNotification(reminder.userId, reminder.message);
    }
});

Issue: Duplicate notification logic due to repeated function calls.

Sometimes even AI is able to pick up this one. You know when they suggest to refactor the code ? This one would be easy to catch when doing your happy path scenario, checking if you have received the notification only once.

4. Scalability Concerns

Scenario: A social media startup builds its platform. The AI-generated code fetches user data inefficiently during logins, causing delays as the user base grows.

Generated Code Example:

// Generated by AI
let userData = {};
userIds.forEach(userId => {
    userData[userId] = db.query(`SELECT * FROM users WHERE id = ${userId}`);
});

Issue: The loop-based query structure slows down login times for large user bases.

This one could be identified later in the development cycle, unless you are doing performance tests early on. Probably will catch this only when you have a large database of users, easy to fix, but can be fixed before you have this headache.

5. Security Vulnerabilities

AI coding is great when the stakes arenโ€™t too high

Scenario: A healthcare startup generates a patient portal app. The AI-generated code stores sensitive data without encryption.

Generated Code Example:

// Generated by AI
db.insert(`INSERT INTO patients (name, dob, medicalRecord) VALUES ('${name}', '${dob}', '${medicalRecord}')`);

Issue: Plain text storage of sensitive information.

Another typical one for AI coded generated apps, usually they lack on security of the data. Be extra cautious when checking the data transactions and how the data is being managed and stored.

6. Over-Reliance on AI

Scenario: A freelance entrepreneur creates a budgeting app. When a bug arises in the expense tracker, the entrepreneur struggles to debug it due to limited coding knowledge.

Generated Code Example:

// Generated by AI
let expenses = [];
expenseItems.forEach(item => {
    expenses.push(item.amount);
});
let total = expenses.reduce((sum, amount) => sum + amount, 0) * discount;

Issue: Misapplied logic causes an incorrect total calculation.

Another one that AI can catch while developing the app, because AI mix back and front end code sometimes is hard to debug even when you are a experienced developer, for someone that doesn’t have coding skills, then the challenge can be a bit more complex. AI can also help you to find the error, and you can catch this one probably not only when deploying, but also when doing your happy path scenario.

Not all AI coding platforms create tests on their own code unless explicitly asked for. Loveable for example don’t create any tests for their code. This is another thing you need to keep in mind when using these tools.

Another point is AI is not really good to keep up to date with all latest technologies, for example: All Blockchains, still not possible to do much, but a matter of time maybe ? These technologies keep changing and evolving every second you breath, AI can’t keep up yet, and humans can’t as well ๐Ÿ˜‚

Some tips to maintain AI Coded Apps

  • Conduct Comprehensive Frequent Code Reviews
  • Implement Testing Protocols
  • Train AI to use Code Best Practices
  • Plan for Scalability
  • Prioritise Security
  • Foster Developer Expertise

AutomationStar Conference 2024

My best talk so far !

This talk was especially important to me, even though it was the one I practiced the least. My mom was there for the first time to support me! After spending a month with me, she has already gone back to Brazil ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ™

She also gave me feedback that I should look around the room more instead of focusing on just one side! ๐Ÿ˜„

She probably didn’t understand anything, but she was there ๐Ÿ˜Š

But this time I missed all the other talks ๐Ÿ˜” I have been working on my startup: The Chaincademy most of my days I am going to sleep around 3am and on the day before my talk I went to sleep at 1am ๐Ÿ™ . Gladly, nobody noticed that I was a corpse mopping the floor on that day.

Back to what matters! Unfortunately, I donโ€™t have much to share about the other talks this time.
However, at the speakers’ dinner, I had the pleasure of chatting with some amazing speakers:
Renรฉ Rohner (robot framework and playwright), Mazin Inaad (food and rock bands), Jonathon Wright (the AI guy) , Ana Duarte (why Porto is the best city in Portugal) and Gerard van Engelen (a variety of topics)

This time, I also decided to start a bit differently by being honest about my habit of talking fast at the beginning of sessions. I asked everyone to help pace me if I started speaking too quicklyโ€”sorry in advance! ๐Ÿ˜ฌ

Everyone stayed engaged, even during a 1-hour-and-30-minute session. I felt the hands-on part was a bit rushed and could have been extended, so Iโ€™ll keep that in mind for next time.

Just sharing some additional content after my talk: Iโ€™ve updated the resources to include some Web3 hackathons and a Web3 Test Mindmap.

Hereโ€™s the feedback from this sessionโ€”apparently, I did well, but not quite well enough to win the award! Maybe thatโ€™s why I left right after my talk ๐Ÿ˜‚

It’s okay, thoughโ€”my mom got emotional and teared up when I started reading the positive feedback, so Iโ€™ll count that as a win, even if itโ€™s a bit biased!

Apart from my talk, I also joined Seรฑor Performo in his AutomationStar interview sessions!

Finally met Leandro Melendez.

Iโ€™ve known his work for ages, and I also use Grafana a lot at work these days. It was great to exchange tips on public speaking and chat about mutual friends. During the interview, I shared what weโ€™re doing at The Chaincademy, my journey in tech, and how I ended up where I am today.


“As usual, the best part of my talk is testing whether people were really paying attention or if ADHD is getting the best of the crowd. Itโ€™s also my favorite partโ€”I love a good competition! ๐Ÿฅ‹

And thatโ€™s a wrap! See you at the next conference or meetup! Iโ€™m actually planning to host a webinar on my own soon, so hopefully, youโ€™ll be able to join from anywhere in the world!

EE Global Conference 2024

And this was me again spreading the word about Blockchain and Web3, but this time at the Equal Experts Global Conference 2024. EE is a network of tech professionals that I couldn’t be more proud to be part of โค๏ธ. I am super picky when it comes to work, but this one is a keeper!

While I’m not one to praise companies excessively, I wouldn’t hesitate to recommend Equal Experts as a great place to work and also to have business with. Their integrity and values are rare to find nowadays ๐Ÿ˜†

In the talk, I covered the basics of Web3, including its key differences from blockchain. As you know, I’ve been discussing these topics for quite some time ๐Ÿ˜ฌ

Would you like to review the slides? This is a shorter, abridged version of the in-depth presentation I’ll be giving in October at the AutomationStar Conference. Think of it as a preview:

One of the questions I enjoyed receiving was about how blockchain technology, despite being around for a while, is often perceived as new. Blockchain is actually a combination of technologies that have existed for a long time, such as P2P networks and hashing. However, it wasn’t until these components were brought together that blockchain was truly created and its potential realized. Here are a few resources that explore the evolution and history of blockchain.

Here are a couple of resources that explore the evolution and history of blockchain.


Additionally, I attended another talk before mine that focused on UX/UI and user personas. This is another crucial aspect of QA. Understanding the user is essential when designing test scenarios and improving overall quality, not just from a technical standpoint but also from the perspectives of usability and business.

In conclusion, I solicited feedback from the audience and received valuable insights that I’ll incorporate into my upcoming talk at the AutomationStar Conference in Vienna this October.
See you there ๐Ÿ‘‹

EuroSTAR Conference 2024 – Stockholm

Hello, hello! A bit late as usual, but I’m here to share my experience at the Eurostar Conference this year. My talk was scheduled for 15:15 on Thursday, June 13th. Despite my initial anxiety, I managed to not only deliver my talk but also had time to attend other sessions and join two tutorials. Apparently, joining two tutorials was against the rules (shh ๐Ÿคซ)

The key highlights

Kick Ass Testing Tutorial

  • Finding basis path: Ensure effective control flow testing by identifying the basis path.
  • Draw diagram flow: Create a detailed flowchart diagram to visualize the process.
  • Flipping decisions on baseline: Adjust decisions based on the established baseline to improve accuracy.
  • Flow chart: Use flowcharts to map out the process and identify key decision points.
  • Control flow testing: Test the control flow of the application to ensure all paths are exercised.
  • Code exercise: Focus on exercising the code you wrote, not the code that wasn’t written.
  • Business path analysis with JPath: Tools like JPath may not suffice for business path analysis; use domain analysis and equivalence class partitioning instead.
  • Pairwise workflow: Employ pairwise testing to handle millions of possible tests, as it’s impossible to test everything.
  • User behavior focus: Ask what the user does to the application, not what the application does to the user.
  • Vilfredo Pareto principle: Apply the Pareto principle, noting that 20% of transaction types happen 80% of the time, and start with transaction history analysis.
  • Pairwise tools: Use tools like Allpairs and PICT for pairwise testing, they are quite old school tho. No mention on AI tools to help creating the data, found a bit weird ?!?
  • Data variation: Ensure multiple variations of data and a reasonable amount of data for thorough testing.


See the PDF below:

What Are You Doing Here? Become an Awesome Leader in Testing

My favorite part was discussing the things we’ve heard throughout the years in the QA and testing industry. Some of them include:

  • Automate everything: Avoid unrealistic expectations like “automate everything” and ensure thorough testing to prevent missing bugs.
  • More test cases mean better testing: Quantity over quality in test cases can result in redundant tests that don’t effectively cover critical scenarios.
  • Just test it at the end: Believing that testing can be left until the final stages of development leads to overlooked defects and rushed fixes.
  • Quality is the tester’s job: Assuming that only testers are responsible for quality undermines the collective responsibility of the entire team.
  • We can catch all bugs with testing: Expecting testing to catch every possible defect overlooks the importance of good design and development practices.

Why AI is Killing โ€“ Not Improving โ€“ the Quality of Testing

This was the big one of the entire conference, largely due to the drama that unfolded at the end of the talk ๐ŸŽญ

I missed the point where the title resonated with the entire talk, and it was my fault for not reading the description and going just because of the title.

They compared the time it takes to build cars from ages ago to now (Ford and Tesla) and showed that it only saved 3 minutes. I’m not sure if they did this on purpose just to prove their point, but the comparison missed the complexity and features that have been added in the new cars, like the entire software and electric systems behind Tesla that didn’t exist before. These aspects weren’t considered in their comparison.

They also presented interesting analysis about when AI will catch up with human intelligence, as well as the gap that AI is creating between junior and senior developers. Not many people talk about this, but indeed, AI is a tool that can help us while also potentially making us lazy, similar to how calculators did; we still need to learn the basics

Basic Coaching Techniques for Emerging Quality Coaches

  • Active listening: It involves fully concentrating, understanding, responding, and remembering what’s being said.
  • Train yourself and learn: Continuously improving active listening skills through practice and feedback helps in understanding others better.
  • Circle of control: Focus on what you can control in conversationsโ€”your responses, understanding, and actions.
  • Feedback: Provide constructive feedback that helps the person improve without making them feel punished. Talk about the behaviour not the identity, don’t use BUT, use AND.
  • Keep questions simple: Use straightforward questions that facilitate understanding and encourage deeper thought.
  • Be present: Engage fully in the conversation, maintaining focus and showing genuine interest.
  • 11k impressions: Recognize that perspectives can vary based on personal factors like fatigue and biases
  • Keep questions simple: Frame questions clearly to facilitate understanding and encourage exploration of solutions.
  • Acceptance: Reality gap ! Facts on the table. Easy ? No, necessary: yes
  • You have the questions not necessarily know the answers. Help them to figure out how to find a solution.
  • What are your three top values? Rank 1 to 10. This will help you and your mentee to connect.

QA Outsourcing: Triumphs, Trials, & Takeaways

Unfortunately, I couldn’t make this one as I was back to London, but I watched the video after and the main takeaways are:

  • Strategic move: Outsourcing QA can strategically optimize resources and expertise.
  • Drive success: Effective management of outsourced QA enhances product quality and market competitiveness.
  • Growth: Outsourcing allows scalability and focus on core business functions.
  • Competitive landscape: Leveraging external QA services brings agility and innovation to stay ahead in the market.

A Testerโ€™s Guide to Navigating the Wild West of Web3 Testing

Here I am again, checking the feedback. As expected, the audience was quite different from the one I usually engage with. Since this conference is a bit more corporate, I didn’t anticipate too much variation in the audience. I was also extra nervous for this one, so instead of 45 minutes, I sped up and went into the fast lane, finishing the talk in just 30 minutes. I just gave you all some extra time for coffee! ๐Ÿ˜†

As always, I needed to gauge the Web3 knowledge level of the majority, and unsurprisingly, there is still a massive gap in education about what Web3 and Blockchain are. Thus, I spent a significant portion of my talk explaining these concepts.

The feedback is quite contradictory. Some people said it was hard to follow because no background was provided, while others mentioned they didn’t know the talk would focus solely on Blockchain (which it did not). ๐Ÿคทโ€โ™€๏ธ

So, if I give more background, people complain. If I reduce the background, people will still complain. My take on that is it’s really hard to please everyone; sometimes I can’t even make my own dog happy! ๐Ÿ˜„

I still try, though. So, thanks to those who gave constructive feedback โค๏ธ!

I’ll work on improving for the next one ๐Ÿš€

More random pictures with these great speakers whom I had the pleasure to meet, the cubic challenge, and also random exotic food talks on the boat party.

Meetup On The Beach – Ministry of Test #Athens 2024

Hello hello ๐Ÿ‘‹

First, I want to say a big thank you to Petros and all the Ministry of Testing Athens who received me and hosted this Meetup On The Beach – Athens on 30 May/2024 !

By far, it was the best meetup I’ve ever been to. The energy, the people, and the place were already amazing, but then adding the food, the weather, and obviously the quality of the talks and discussions just made it the icing on the cake! I don’t think they advertise how good it is ๐Ÿ˜‚

Finding Your Voice – How to stop worrying and give the talk 

Sophie Kรผster was fantastic! She was very direct to the point and delivered simple messages that motivated people to give talks more often. Her tips were great, and they definitely resonated with me. Public speaking makes me really anxious too, and it took me a long time to gain the courage to go from blogging to speaking in public.

The tips:

  • Prepare yourself – Lots of practice, rehearsals and research
  • Be yourself and show your passion
  • Structure your presentation
  • No spelling mistakes ๐Ÿ˜ฌ
  • Wear comfortable shoes ๐Ÿ‘ 
  • Put some red lipstick on, joking this is just a reference for something Sophie often puts on to feel stronger when presenting, but you can find your own power move, like wearing a cowboy hat๐Ÿค 

Thanks Sophie, hopefully see you again soon !

APIs for Browser Automation (Selenium, Cypress, Puppeteer, or Playwright)

The talk compared these four different tools for browser automation: Selenium, Cypress, Puppeteer, and Playwright. Selenium is the grandpa and senior in this space, but Cypress and Playwright are gaining more and more traction. Not surprised as they are easier to use and when working across different browsers, also the fact you don’t need to have waiting workarounds ๐Ÿ˜ซ

Boni Garcia even showed demos and the code comparing these tools for the same scenario ! Unfortunately my phone was taking horrible pictures, so I am sharing the slides here, much better !

Finally my Talk: A Tester’s Guide to Navigating the Wild West of Web3 Testing

As always I start first checking the level of the audience on Web3 knowledge and majority still has no idea what is Web3 or is a beginner, which makes me focus a lot in the beginning where I go through what is Web3 and Blockchain.

I always feel like I should give more examples, but then time is always something that holds me back a bit – Maybe I should remove the infrastructure part of the Blockchain and just focus on use cases ?

Then after going through the concepts, we talked about some extra resources, challenges and tools you can use when doing Web3 Tests:

  • Check this Blockchain Developer Roadmap for a comprehensive learning path (I only offered a brief overview during the talk).
  • This is a great Interactive Blockchain Demo for a hands-on understanding of blockchain functionality.
  • Here are some tools you can use for Web3 testing: Foundry, BitcoinJ, Hardhat, Embark, Web3.js, Remix-IDE, Synpress, Caliper, OpenZeppelin, Postman.

Check out the slides here !

Afterwards…

I DO LOVE the analysis part โค๏ธ

Completely anonymous feedback at the end of the talk summarized that people loved the quiz at the end where we gave away some The Chaincademy swags for the top 3 places.

A good, friendly competition is always a good thing!

The feedback also shows that time was an issue. It seems like didn’t need that much time to discuss the infrastructure and more time was needed for use cases and explanations. Let’s see what I can do to improve for my next talk at Eurostar Conference next week !

The results can be seen here:

Who voted not sure ?

Big shout out to Angelos Mitsios for coming to me afterwards and making me think about a really good point about Blockchain Decentralisation:

While removing the middleman like banks for financial transactions with cryptocurrency is a big step, complete decentralization is difficult. We still need Internet providers and Electricity providers. Electricity can potentially be self-generated with solar panels, but internet access relies on complex infrastructure across vast distances.

And even with encryption tools like VPNs, governments can still disrupt internet access, highlighting the ongoing tension between technological freedom and government control. Ultimately, the focus should be on the practical applications of cryptocurrency (Long distance fast transactions without middleman: bankwallet to wallet) while acknowledging the limitations of true decentralization in today’s world (Still depend on middleman: Internet and Electricity Providers)

The Speakers !

Finally met these two after seeing them talking in so many events:

Boni Garcia is an Associate Professor at Universidad Carlos III de Madrid in Spain. He is an official committer at the Selenium project and the creator and maintainer of several projects, such as WebDriverManager or Selenium-Jupiter. He wrote the books Mastering Software Testing with JUnit 5 and Hands-On Selenium WebDriver with Java.

Sophie is a test automation engineer at cronn GmbH, a Bonn based IT company. No stranger to the universe’s gut punches, she is passionate about improving awareness and communication about mental health and self-care.

That’s all ๐Ÿ‘‹ Meet you next week at Eurostar in Stockholm and Geek 2024 – EE Conference in London and my last conference of the year Automationstar in Vienna !

Using AI to Accelerate Test Automation

Hello hello peeps ๐Ÿ‘‹

I have been a bit of a workaholic lately, but all for a good cause ๐Ÿ˜Š

Not sure if you know already, but I started to work on a project The Chaincademy helping Developers (SDETs, Engineers, Coders, Programmers, Test Automation Engineers…), especially the junior ones that are coming to Tech to find their first job ๐Ÿ’ป

We have launched our MVP before Xmas, and we are testing it with our audience (Junior Developers). So, in case you want to accelerate your career (for now, only web3) and get your first experience as a developer, sign up for our Newsletter to get access ๐ŸŽ‰

First time I actually adventured myself with AI and Machine Learning was back in 2018 in a Machine Learning Workshop. I had to create this iOS app where AI was replacing my face with an emoji based on my expressions ๐Ÿ˜†โ€‚Really simple, but back in that time, AI was not so good as it is right now (As we say in Brazil: Na minha รฉpoca isso aqui era tudo matoBack in my day, this place was all woods)

And since the launch of chatGPT to speed up all my work, I have been using AI on a daily basis, more Bard actually (Think it is much better than ChatGpt nowadays), so here I am going to give some tips on how I have been using it in test automation:

Test Automation

1. Test Case Generation:

  • Scenarios: You need to pass user stories and acceptance criteria, to generate corresponding test cases with detailed steps and expected outcomes.

    Prompt Example: Given a user tries to register with an invalid email address, describe the steps they would take and verify that the system displays an appropriate error message.
  • Edge Cases: Ask to suggest potential edge cases or corner scenarios to test, ensuring comprehensive coverage of your application’s functionality.

    Prompt Example: For the checkout process, what happens if the user's internet connection drops while entering their payment information? List potential scenarios and expected outcomes.
  • Data-Driven Testing: Generate test data sets based on specific criteria.

    Prompt Example: Generate 10 test cases for the login feature, covering cases with valid and invalid username/password combinations and different user types (admin, regular user).

2. Coding:

  • Test Script Automation: Describe the test actions:

    Prompt Example: I want to test clicking the 'Submit Order' button and verifying the order confirmation page appears. Write a Cypress with javascript script for this scenario.
  • Code Completion: Get test assertions, locator identification, and handling complex interactions.

    Prompt Example: In my Cypress test, I'm trying to assert that the element contains the text 'Welcome back'. Please suggest the next line of code with assertion syntax.
  • Refactoring: Analyze your existing test scripts and suggest improvements like removing redundancy, increasing reusability, or optimizing execution time.

    Prompt Example: Analyze my Pull request for the search functionality. Can you add comments and suggest ways to improve readability, reduce redundancy, and speed up execution?

3. Test Planning and Management:

  • Prioritization and Risk Assessment: Provide the test case details and application knowledge, so it can help prioritize tests based on risk or impact.

    Prompt Example: Given these 20 test cases for the new feature, rank them based on potential impact, speed of delivery and risk of failure. Explain your reasoning for each.
  • Maintenance: Identify outdated or irrelevant test cases and suggest updates or new tests to maintain coverage.

    Prompt Example: The application updated its login page layout. Identify test cases needing modification and suggest relevant updates based on the new UI.

4. Environment Management:

  • Mocks: Describe data needs for specific tests, and generate mock data or API responses, reducing reliance on real environments and dependencies. Remember you can also use contract tests (with Pact for example) and this can be done automatically from the code.

    Prompt Example:โ€‚Generate mock API responses for the payment gateway integration test, simulating successful and failed scenarios based on test case requirements
  • Environment Configuration: Configurations for different test environments based on your application and testing requirements.

    Prompt Example: Suggest configurations for a staging environment replicating the production database but with limited user access. Include details for network settings and resource allocation.

Thanks to Abel from Graph Protocol ๐Ÿ‘ to send over these great resources that I have been using to learn about how to better prompt for Software Development are:

Equal Experts Geek Conference 2023

Hey guys, 4 months ago I had a 5 minutes lightning talk about How the QA will look like in the future at the Equal Experts Conference.

We went through the evolution of the role and how it is right now, then we quickly talk about the trends that are coming so you can already prepare yourself to be up to date ๐Ÿ™‚


In this 5-minute talk, we will quickly talk about the future of Quality Assurance (QA) position and discuss the evolution of the QA role in response to emerging trends.

The QA role has come a long way from its traditional focus on manual testing and bug detection. As technology advances, QA professionals are adapting to new demands and becoming integral contributors to the software development process.

Theย  future of QA position will be marked by AI Tests,ย  Tests in the Cloud, Web3 Tests, Alerting and Monitoring, along with strong soft skills. By embracing these trends and developing the necessary skills, QA professionals will be well-equipped to drive quality and innovation in the ever-changing software development industry.

Automation challenges

Hello guys !!

I thought about sharing something that we all have gone through at some point of our career. Some of these challenges are related to lack of standards, knowledge and processes, but some others are related to company’s culture and people’s mindset (this is the biggest challenge and most difficult to change).

I have posted about the difference between a growth mindset and a fixed mindset some years ago, after joiningย  a workshop where Joanna Chwastowska (Engineering Lead at Google) explains how she learned to have a growth mindset, this picture below summarizes it:

 

Basically, we are always learning and you shouldn’t feel ashamed to admit that ๐Ÿ™‚

 

Scope

What scenarios should I have for this layer of tests ? What type of tests should I be responsible for ? These should be the questions that you first ask when deciding the scope of your tests. For each layer you need to have a different scope otherwise you are not only going to duplicate scenarios, but also have an extensive pipeline that is hard/impossible to maintain.ย ย 

Decide what are the layers that you are going to cover: Unit, Integration, E2E Tests… then decide what scenarios for each layer. So, for the Unit tests you need to have an extensive number of scenarios covering edge cases (special characters, etc), then integration between components and finally e2e tests on top with a reduced scope and no mocks. You should also consider UI tests comparing snapshots if you have a frontend as well.ย ย 

 

Team collaboration

Make sure you have a team that is working towards the same goal, improve the communication as much as possible. Do workshops, demos, pair-programming, code reviews, get feedback so you can continue to improve until you find the best way to work and at the same time make the business happy.

Understand the expectations and align them, there is nothing better than having a nice bunch of people to spend ~8 hours together for 5 days a week and achieving something together.

 

Time constraints

How many releases do you have per day ? How many projects are you allocated in ? How many developers do you have in your team ? You might have noticed that you usually have more than one developer for each QA in a team, and this is okay, as long as you manage what you are going to test, you can’t save the world, don’t test everything, focus on the end-user flow above everything else as this is the front door of the product.

Something you need to take into account is the scope of the regression pack, you probably want to have automation for that, right ? I am completely against having manual tests for the regression pack, unless there is a strong reason why.

 

Finding elements

Do you remember when you couldn’t click on that element because there was a div on top of it ? This is one of the problems you might have faced already, or maybe was a bad structured xpath ? or too many elements with the same css-selector ?

If you are testing react apps, here is something that helped when doing the tests, I’ve asked the developers to add one a data-test attribute: data-test, data-test-id, data-testid or data-cy to the elements. Adding this kind of attribute is considered a best practice since makes the automation resilient to change and it is dedicated for tests.

 

Flaky tests

Yeah… we all know the struggle is REAL !

I’ve faced this issue recently when doing tests with Espresso on android apps, instead of using waits remember to use idling resources which synchronizes the subsequent operations in a UI test.

For the react apps you can use frameworks like Cypress, Testcafe and Detox that runs in the same run-loop as the application being tested and can automatically wait for assertions and commands before moving ahead.

These are some of the reasons you can have flaky tests, but there are some other reasons like:

  • Environment/server is not stable
  • 3rd party system integration is not stable
  • Concurrency tests
  • Caching
  • Setup/teardown tests
  • Dynamic content

Identify the reason first to be able to take the correct action, but definitely tag this test as soon as possible since you won’t be able to trust on it until it has been fixed.

 

#BeSafe

TestComplete 10.1 Released with Real-Device Support for iOS

Hello guys, I will put today a post about automation tests with TestComplete on mobile apps. I used to work with Cucumber and Calabash, but if you want to try another tool, this is very used too.

The new TestComplete 10.1 release now supports real-device test automation for iOS applications so you can rest assured that your mobile apps are of the highest quality. In the recent SmartBear study, State of Mobile Testing 2014, 21% of those surveyed told us that app quality was the greatest challenge for success in mobile.

Image

Efficient mobile application testing results in higher quality applications. With a good test automation tool in your toolbox, you can automate tasks like data-driven testing, authentication testing, and functional checks, so your team can focus on more time-intensive application testing that require human interaction.

So what does the new release of TestComplete bring to iOS mobile testing?

  • Real-Device Testing for iOS versions 6 and 7
  • Object Recognition for iOS Applications
  • Multi-Device Testing
  • Device Pools

Native Application Testing

The new release supports testing of native iOS applications without the need to root your devices, including keyword and scripted tests. By using the new Mobile Screen, which replicates your application on your desktop computer as you test, with our Object Browser, you can easily make the connection between screen elements and their associated objects in the code.

Image

Object Recognition

TestComplete 10.1 has full object recognition of tested iOS applications, including object parameters for low-level testing. Use the Name Mapping feature to label objects like grids, buttons, and layers within your mobile app so you can easily identify them in both tests and test results.

By relying on object recognition, your tests are immune to GUI-level changes during the development cycle that can occur when an automation tool relies solely on screen elements.

Image

Multi-Device Testing

By leveraging our object recognition and common controls technology, TestComplete 10.1 ensures that your automated tests are compatible with any Apple device running iOS 6 or 7. This means you can create a test once and run that same test on all of your devices, regardless of screen resolution or aspect ratio.

TestComplete 10.1 also includes a device pool feature that allows you to manage all of the devices in your testing pool. You can start and stop tests on any device from this central pool, allowing you the ultimate flexibility in how, where and when your automated tests run.

This isn’t a free software, but you can try for 30 days.

Bye guys ! This is the other tool very known in the automation market.

Fonts:ย http://blog.smartbear.com/test-automation/testcomplete-10-1-released-with-real-device-support-for-ios/