Ask Me Anything: Automation - Marie Drake

Tonight we were joined by the awesome @marie.drake for an Ask Me Anything session on the topic of Automation.

I’ll make sure to add any questions that we didn’t get to and any resources mentioned during the session to this thread.

If you missed the live session, a recording will be available on the Ministry of Testing website for all Club level members once we’ve edited it and added captions.

Have you got any more questions you’d like to ask? Add them here :grin:

2 Likes

Marie mentioned a talk from @carloskidman at TestBash San Francisco

and from @angiejones

Marie also mentioned k6 and other performance testing tools, I’ve previously linked her blog posts about those tools here Performance: which testing tool and why?

Questions we didn’t get to

  1. What should I suggest to someone interested in learning automation where and how to start?

  2. How do you get development teams to take ownership of writing and maintaining automated tests, to avoid having a separate QA team do it?

  3. How proficient does automated QA need to be in coding ? A lot of qas in auto these days used to be developers

  4. How to convince developers to maintain and add tests to the automation suite?

  5. I am working in a fintech company and I want to show the value of the api testing on business logic. What things do you think are appropriate to assert aside from the status code and the response body in this context?

  6. Other than exploratory testing, where automation is not recommended? Also, do you think exploratory testing could be automated?

  7. Are there any performance tester courses you can recommend? I have some practical experience of automatoin, including recently doing perf testing using Gatling, which worked out well. However I’d like to possibly do a professional-level course to give me any additional perf testing theory and a certificate. Thanks.

  8. How do you (or your team) decide what to automate and what NOT to automate?

  9. Should test automation code follow and conform to developer coding standards such as checkstyle? or should it be kept separate?

  10. Why is mobile automation (like Appium) so hard to setup?

  11. How do you measure success/fail of your automation efforts?

  12. Do you know of any good online sources that would help people get up to speed in automation.
    Suggestions from the other attendees:

  1. What tools do you use to report automation tests? have you used Xray JIRA plugin before?

  2. is manual qa dying out ?

  3. Have you used visual testing tools like applitools Eyes or Percy.io for example. Do they have value?

  4. API automation, what strategy do you have for a very very big data? How many permutations to cover?

  5. Integration/E2E for System of System testing: most large organisations still have monolithic applications (that do not lend themselves to contract testing) any suggestions for tools to automate, or processes that may assist with semi automation of this?

  6. How do you handle the need to login in an automated test?

  7. When testing a mobile app, do you handle some steps outside of the UI (eg: Api) for less execution time?

  8. We are struggling to find time to develop test automation framework. QA Manager - Overseeing the status of each story; qa process; SDET - understand requirements - design test plan and test scenarios - create test data Offshore testers- responsible to write test cases in detail steps based on SDET’s test plan and scenarios - execute test cases manually. Please share how your team’s process is like. Any advice how we can improve based on current responsibility

  9. Please describe your latest test automation process. Which type of automation tests, how many (i.e. compared to other types), who wrote what, who decided scenarios, who organised/managed everything etc.

  10. Is it legit to practice automation by contributing to open source projects?

  11. Do your tests use existing data or create new data?

  12. What website can we go to learn and practice test automation?

  1. Is Java King for Automation, or is Javascript better for Frontend Testing?

  2. Does the cost of all the tools justifies itself? (applitest, cypress, k6 etc)

  3. When automating UI, do you keep your assertions in the UI or do you assert in different levels (Database for instance)?

  4. What is Automation?

  5. What do you think about quality assistance (especially in automation field) as a means for upping overall sprint/team productivity and what about the downsides, i.e. how do we ensure we still do great testing?

  6. if required to automated a COTS application with customized business logic within it? Do you have any suggestions on how to accomplish it?

  7. Are you able to suggest any approaches to retiring and updating tests in an automation regression pack?

  8. What coding language should we prioritize to learn to help us get started?

  9. What can be the lessons learned for teams starting with Infrastructure as Code deployments & testing from a more traditional testing automation perspective? Thank you!

  10. I am curious about internationalization automated testing for mobile apps. how do you check how an app looks in different languages?

  1. How do you test for email notifications during test automation?
1 Like

Marie mentioned a github repo when talking about test data strategies I hope she would link to it here

1 Like

Thanks all! I will answer the remaining questions next week. Please bear with me :slight_smile:

2 Likes

I’m sure it was @gerardmccann who asked this. I’d suggest checking out

With the new course structure, once you complete this, it will be added to your profile as a completed course to give evidence of your learning :wink:

1 Like

It was indeed me so thanks for the info @heather_reid and thanks also for publishing the Ask Me Anything details on Meetup as I’d have been unaware of it otherwise … great move!

The course you mentioned seems to be a free course which is great.

I also saw some other courses/material (example below) which seem to require Pro membership. Hopefully the new monthly option which Aine et al mentioned in the Meetup/Ask Me Anything may be within my company’s tight-due-to-Covid :stuck_out_tongue: spending limits. Will try hard to sell them on it … wish me luck :slight_smile:

An alternative I was looking at was the ISTQB Perf Test course, but as with all things ISTQB, they can be quite theoretical and sometimes, there’s not so much revision material, and the ISTQB tend to require the ISTQB answer, not necessarily what works in the wild. IMHO YMMV :stuck_out_tongue:. I therefore suspect the MoT courses, which seem to be rooted in practicality, are better options.

I had been thinking ISTQB as my company likes certificates which is a wee hangup, but as you mentioned, I will get completion (for at least the free course) added to my profile so they may be OK with that.

Either way, I will sign up for the free course you recommended and give it a go.

Thanks again for all your/MoT help… You folks rock! :sunglasses:

UPDATE: I actually now think the course is an expert-led one not an Essential, i.e. I need to get my Pro membership sorted :stuck_out_tongue:

2 Likes

Your help with everything is much appreciated Marie. More than happy to bear with you as you’ve done so much for the community already! Enjoy your well deserved weekend! :slight_smile:

2 Likes

Hey @ashraf2033 I believe I was talking about https://github.com/marak/Faker.js/ which is useful for generating random data.

3 Likes

Hi all, I’ve added my answers below. There are some areas where I’ve tagged other people as I don’t have much experience in those areas but hopefully these are useful :slight_smile:

  1. What should I suggest to someone interested in learning automation where and how to start? - Learn basic programming skills as a starting point and don’t jump straight to automation tools. Make use of free learning resources such as Test Automation University (they have introduction to programming courses too and most recently they released an introduction to javascript course!). Start automating on the UI level as this is the easiest in terms of getting started because you can see it visually. Once you’re comfortable, you can then look at expanding your learning to automated API testing.

  2. How do you get development teams to take ownership of writing and maintaining automated tests, to avoid having a separate QA team do it? - Choose tools wisely. For me personally, I’ve seen success if the testing tools fits nicely into their development workflow which is one of the main reasons why we adopted Cypress and Applitools. Once the tools are integrated, for new features that they are working on, get it added as part of their task so the automated tests are included before deploying to production. You also need to be patient and be willing to help them out when needed since this is pretty new to them.

  3. How proficient does automated QA need to be in coding ? A lot of qas in auto these days used to be developers - Hmm I would say for starters basic programming is really essential then if a task involves setting up a test automation framework for UI, API and other types of testing, then I would say intermediate level and an understanding of design patterns such as page object model or singleton is beneficial.

  4. How to convince developers to maintain and add tests to the automation suite? - See answer in question 2. Also, show them the testing manifesto :smiley: https://www.luxoft-training.com/news/the-agile-testing-manifesto/ and influence them that testing is everyone’s responsibility.

  5. I am working in a fintech company and I want to show the value of the api testing on business logic. What things do you think are appropriate to assert aside from the status code and the response body in this context? - You can also test for schema validation where you assert the structure and the types rather than the correct data https://json-schema.org/learn/getting-started-step-by-step.html. Another thing to test is to measure the response times as this will help in performance testing.

  6. Other than exploratory testing, where automation is not recommended? Also, do you think exploratory testing could be automated? - Accessibility testing can be automated but it still needs human intervention on the most parts. This is also the same with security testing. No, explorating testing could never be automated in my opinion… Even with AI, I just don’t see it happening for some time… How can you automate something that you don’t know? :slight_smile:

  7. Are there any performance tester courses you can recommend? I have some practical experience of automatoin, including recently doing perf testing using Gatling, which worked out well. However I’d like to possibly do a professional-level course to give me any additional perf testing theory and a certificate. Thanks. - I’ve seen @heather_reid answer this thank you!

  8. How do you (or your team) decide what to automate and what NOT to automate? - If you are starting out with your regression pack, document all the features that are high priority, takes a long time to test and repetitively verified. These should be automated. On the previous team that I was part of, we listed all the scenarios that are high priority and document it on Confluence. Then when it’s added on our automated regression pack, we remove them from the Confluence document so we know which scenarios are left. With regards to what not to automate, if a feature or requirement is changing frequently, then don’t waste your time too much on automating it.

  9. Should test automation code follow and conform to developer coding standards such as checkstyle? or should it be kept separate? - Yes I think it should conform to the same developer coding standards especially if you want developers to be involved. Test automation code should not be seen as inferior to development code. - It’s good practice to follow coding standards whether it’s test automation code or development code because it makes your framework easy to read and understand. Eslint and prettier are now pretty standard to most javascript projects for example.

  10. Why is mobile automation (like Appium) so hard to setup? - I have to be honest here and I actually don’t have a lot of experience with mobile app automation! But I think the reason why it’s hard to set up is because mobile app automation is still less mature than web automation and also the community support and tools are stronger on web.

  11. How do you measure success/fail of your automation efforts? - For Success: if you are not needed anymore to perform routine tasks because these have been covered by automated tests and automated deployment, if your team is releasing frequently and has higher confidence, if the cycle time for tickets going from dev to done is shortened. For Failure: if you are spending all your efforts in test maintenance and not doing other types of testing activities, if your team don’t trust the results of your automated tests because it’s flaky

  12. Do you know of any good online sources that would help people get up to speed in automation. - I agree with the other attendees. Test automation university as a start and they release new courses frequently and it’s completely free.

  13. What tools do you use to report automation tests? have you used Xray JIRA plugin before? - I have used Allure and Mochawesome plugin and they are both great! I haven’t used Xray JIRA plugin sorry…

  14. is manual qa dying out ? - There’s a lot of interesting conversations about this already and I believe that manually verifying tests should be minimised and automated instead. Exploratory testing and other activities that need human verification is still very much required.

  15. Have you used visual testing tools like applitools Eyes or Percy.io for example. Do they have value? - Yes, we are using Applitools in our current team and this has speed up and simplified our cross browser visual testing process overall. It really provides a massive value and has allowed me to focus on other testing activities.

  16. API automation, what strategy do you have for a very very big data? How many permutations to cover? - Oohh… I feel like @g33klady is best suited to answer this question as I haven’t worked with an API with a very massive data. :slight_smile:

  17. Integration/E2E for System of System testing: most large organisations still have monolithic applications (that do not lend themselves to contract testing) any suggestions for tools to automate, or processes that may assist with semi automation of this? - So, with monolith applications in my opionion, automated testing is actually simpler as opposed to microservices because everything is in one code base… Both UI and backend code is in one codebase and then communicates to a database so if you need to run your test, you only have to run it on one application. I don’t know what the programming language and tech stack is for this monolithic application however, In terms of what tools to use, you can still use most of the tools such as Selenium, WebdriverIO or Cypress for E2E testing. The main problem I see with monolithic application is that because everything is in one application, most of the tests are on the E2E layer and we know that too much E2E tests should be avoided because they are costly to run and difficult to maintain…

  18. How do you handle the need to login in an automated test? - If you can do it on the API level, do the login on the API level. Then depending on your application, you can generate a cookie or token from your API test and store it in your UI test. It’s still good to have a test to cover the login workflow so you can have one test that does the login and for the remaining of your scenarios that requires a login, do it on the API layer.

  19. When testing a mobile app, do you handle some steps outside of the UI (eg: Api) for less execution time? - Again, I don’t have much experience on mobile app automation but I would treat the process similarly. If I can utilise API layer on some of my steps, I will go via this route.

  20. We are struggling to find time to develop test automation framework. QA Manager - Overseeing the status of each story; qa process; SDET - understand requirements - design test plan and test scenarios - create test data Offshore testers- responsible to write test cases in detail steps based on SDET’s test plan and scenarios - execute test cases manually. Please share how your team’s process is like. Any advice how we can improve based on current responsibility - So our current team process is everyone is responsible for testing, not just the QA team (there’s only 2 of us :smiley: so we really need all the help). Our team is broken down into 4 smaller teams and on each team, there are different test strategies but the common theme is we are using tools that are developer friendly. It also helps that our head of engineering as well as our leadership team all share the same view that everyone is responsible in testing. It’s a change in mindset definitely. My personal advice would be to gather data about your current testing process and visualise it. Then share this with everyone (not just with QA team) so everyone can see where the inefficiencies are and what areas need to be improved.

  21. Please describe your latest test automation process. Which type of automation tests, how many (i.e. compared to other types), who wrote what, who decided scenarios, who organised/managed everything etc. - It’s different for every teams (I’m part of 4 smaller teams) but to explain one, on one of the projects, we are delivering a design system. The types of automated tests that we do are unit tests, design system component tests (functional, visual and accessibility), front end tests for our documentation site (functional, visual and accessibility too). Initially, I was helping out in setting up the frameworks and writing the tests but nowadays, this is now the full responsibility of the developers. Everyone of us decide what scenarios to automate it. This is normally decided during “tech analysis” sessions where we look again at the ticket requirements and make sure that from the technical and testing perspective, the developer has everything they need to finish the ticket.

  22. Is it legit to practice automation by contributing to open source projects? - You don’t have to, it’s not a mandatory requirement. You can practice automation by using existing websites or if you really want to also improve your programming skills, you can practice automation by creating a simple app from scratch.

  23. Do your tests use existing data or create new data? - It depends on the tests… Some tests need data fixtures so it’s more reliable and stable. General rule is that if your test will modify the state of the application, then it’s better to manage it with your own test data so you can clean it up as well after the test run.

  24. What website can we go to learn and practice test automation?

  1. Is Java King for Automation, or is Javascript better for Frontend Testing? - Java is still the most popular language for programming but I can see from the trends that Javascript is catching up. Both languages have great libraries and tools that can support your automation so learning either of them will be beneficial :slight_smile:

  2. Does the cost of all the tools justifies itself? (applitest, cypress, k6 etc) - Yes! Cypress (test runner) and k6 are open source but they have paid options for additional features. We currently don’t pay for Cypress dashboard and I can see the benefit already because our developers are writing the tests. Applitools I really had to justify the cost since it’s a commercial tool but once the team sees the efficiency and the benefit it provides to us in terms of cross browser visual testing, then it is really worth it. Before using Cypress and Applitools tools, I was spending so much time writing and maintaining our tests. Now, I haven’t even written a single functional or visual test because the developers write it :smiley: and I’m focusing more on other important activities. This alone is a benefit already!

  3. When automating UI, do you keep your assertions in the UI or do you assert in different levels (Database for instance)? - Normally my assertions are all in the UI because when I automate the UI, I focus at what our end users sees. Database assertion would be a different type of testing on the test pyramid.

  4. What is Automation? - Using technology or process to speed up existing processes that takes a lot of human effort

  5. What do you think about quality assistance (especially in automation field) as a means for upping overall sprint/team productivity and what about the downsides, i.e. how do we ensure we still do great testing? - I think quality assistance when implemented correctly has a lot of benefits. It improves overall efficiency in my opinion since more people test and the responsibility is not on QA engineers/team alone. Instead QA can focus more on areas where they can improve quality. It also means everyone on the team increases their knowledge about the products that they deliver. For it to be successful, it will need a lot of collaboration, knowledge sharing and influencing from the QA team/engineer.

  6. if required to automated a COTS application with customized business logic within it? Do you have any suggestions on how to accomplish it? - Main challenge with automating a COTS product is you don’t have access to its source code, it’s all black box testing. So go with the approach of automating just the core business logic rather than trying to automate everything. The vendor should have some automated tests (I hope! :smiley:) anyway. Also, rather than automating the features that it provides, you can try to automate that the data between your application and the COTS product is shared correctly.

  7. Are you able to suggest any approaches to retiring and updating tests in an automation regression pack? - You should continuously audit your automated regression pack. It’s ok to delete tests that don’t provide value anymore. Similar with development code, you should continuously maintain your automated tests so you don’t leave any tech debt. When deciding which tests to delete, ask yourself the questions “when was the last time this feature was used?” or “is this test still valuable?”

  8. What coding language should we prioritize to learn to help us get started? - There is no definite answer here, you should learn the language that you want to learn but if you want it to be a whole team responsibility, then use the same language that your development team is using so they can help you with any programming queries.

  9. What can be the lessons learned for teams starting with Infrastructure as Code deployments & testing from a more traditional testing automation perspective? Thank you! - Hmmm bit confused with this one as I am unsure of what “traditional testing automation” perspective means since there can be a few interpretations. But if you mean setting up CI pipelines with code vs manually configuring it, then in terms of lessons learned, get involved as much as you can and provide inputs. If you are not sure on how it works, ask the person who wrote it because that’s how you can learn. You don’t have to be an expert and know a lot about IaC tools such as terraform but it can be beneficial to learn the basics of cloud infrastructure setup providers such as AWS so you have that base foundation of things.

  10. I am curious about internationalization automated testing for mobile apps. how do you check how an app looks in different languages? - Again, I don’t have much experience on mobile app automation so I’m hoping someone else with the experience can answer this :slight_smile:

  1. How do you test for email notifications during test automation? - I haven’t had much experience with this so can’t provide a technical advice but I heard really good things about mailosaur https://mailosaur.com/. @filip would be better suited to answer this :slight_smile:
2 Likes

Btw: There are some lessons learned here:

3 Likes