1

I have doubts on how to implement test automation in the company where I am currently. I was wondering what workflow would you suggest?

The project I will be working on uses, in its backend, the Java language and frontend Angular. At first, I want to propose to use Selenium Webdriver with Java, but some gaps remain:

  1. How would I integrate with issue tracking tools? (Mantis or Jira)
  2. A member of the team suggested using Python with Selenium Webdriver, is it interesting? (I am afraid)
  3. When developers make commits to the QA environment, how would I go about doing automated testing automatically? (CI)
2
  • 2
    Do you have experience building automation? Any coding experience? What programming languages are you comfortable with? Is there an existing build pipeline in use for CI/CD? – Lee Jensen Feb 5 at 19:39
  • @LeeJensen From now on, thanks for responding. My background is developer. I'm migrating to the quality area, specifically in the automated testing area. About the language, I prefer Java because the community is very large. Today, we have no CI / CD pipeline. – Iago Frota Feb 5 at 19:53
0
  1. I've never seen any integrations with Selenium and Jira. I don't think it exists. For other bug tracking systems, it would depend on if that software has an API to integrate with. For example, TestRail is a popular Test Case Management System (TCMS) and they have APIs to integrate Selenium reporting.

  2. Since you are familiar with Java and the team is setup with a Java toolset, the best recommendation is to "use Selenium in the same language the development team uses." So, I'd recommend Java in your case. The toolset is already setup for good integration. People tend to recommend Python because "it's easy to learn and use", but if you don't know it and your dev platform doesn't use it, why introduce a new language to the team?

Another option, since Selenium is a front-end/UI test tool, it's common that dev teams use JavaScript. In that case, you can use JavaScript for your Selenium testing (WebdriverIO and NightwatchJS are example libraries to use).

  1. Since you said there is no CI/CD pipeline in place, you're left with executing the Selenium automation on your local workstation. In this case, I wouldn't expect the devs to use it, but just you and the QA team (if there is one). However, you should work to implement a CI/CD pipeline into the team workflow as it can make the build and deployment process much more systematic. In my experience, that is usually a DevOps task to setup, but if you have no DevOps, then it's something you can work with the dev team to complete.

Since there is no CI/CD pipeline, how do the devs build and deploy their code to different environments? There could be a way to integrate with that system. Something to explore with your team.

4
  • Thanks for answering! Which tool would you recommend for us to track metrics, resolved issues, amount of test that didn't pass, ...? – Iago Frota Feb 5 at 21:33
  • You're welcome. If you could, please mark this as the accepted answer. As for your other questions, that feels like a different from the original here, so would recommend posting that separately. – Lee Jensen Feb 5 at 23:24
  • I bet most CI/CD implementations would be able to take a selenium output and interact with Jira accordingly. I wrote Jira integrations 10 years ago for a CI/CD engine that I know could have been triggered by a test output. – corsiKa Feb 6 at 5:59
  • Jira can be integrated simply by calling the api in the listener class , you don't have to get binded to what developer is using if developers doesn't support In script development , no thing stops you from setting up your own local cicd – PDHide Feb 6 at 6:34
1

How would I integrate with issue tracking tools? (Mantis or Jira)

Jira expose all its features through API and also has client libraries to interact with these APIs. but JIRA recommends to use API directly instead.

https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/

You can all the APIs from your listener classes in Testng or anyother framework you are using

A member of the team suggested using Python with Selenium Webdriver, is it interesting? (I am afraid)

There is no dependency between backend code and the tool used for test automation. Test automation tools like protractor ,playwright etc have inbuild handling of angular asynchronous nature so could be used for angular projects. Meaning you can use it without need of adding any additional explicit or implicit wait ( meaning you don't have to write code to ensure element is present in the page before doing some action )

Also if there is no contribution from dev team in test automation , you don't have to worry about what language they are comfortable with.

How selenium works:

Below is the architecture of selenium. The actual functionality is handled by driver, eg : chromedriver. It has programs to talk to browser and make it do things and get information from browser

enter image description here

These functions in chrome driver are exposed through an API so that client can have access to these function by just calling this APIs

selenium python , java etc are libraries that have code to interact with this API.

So the language binding you use have no effect on your automation. Use the language you and your team comfortable in

When developers make commits to the QA environment, how would I go about doing automated testing automatically? (CI)

How are the deployment happens in the organisation use the same tool or use windows schedule task

You can also install local jenkins/azure/octopus or any other CI/CD

3
  • You mentioned Protractor, in the first moment, is it possible to test Angular with Selenium Webdriver? – Iago Frota Feb 7 at 0:28
  • @lago you can , but need to add more explicit or implicit waits to handle the asynchronous nature – PDHide Feb 7 at 1:14
  • 1
    protractor is just a javascript wrapper on webdriverjs (selenium javascript) with more functionality to handle asyn nature – PDHide Feb 7 at 1:15
1

jira is for stories of change but automation suites are aimed at user workflows

This leads to a challenge.

One approach is to have the selenium automation as a task within the story.

Long term, the connection between dev and QA is the most critical factors. In many organizations it is separated or drifts apart. This greatly delays feedback. The closer devs and QA's can be the better. Sharing the same language helps this and can really bring the two roles together. The alternative - using a different language than the devs - is going to put you in a real awkward situation when you get stuck. Programmers (myself included) always get stuck. Share a language and you can leverage your own team.

A similar issue exists btw for 'code coverage'. Folks sometimes request to link code coverage and selenium tests but a similar challenge exists in that user workflows do not have a 1:1 relationship with code blocks. One code block might have 1 story, another might have 10 for different conditions, one workflow may use a combination of 19 code blocks whereas a different workflows might use only 15 from the same set. etc.

As for code I prefer all the code in one repo. If you only work in the qa portion then both you and developers easily be able to pull changes and push yours without conflicts.

Final thought - its really good to make the tests runnable by the devs. It can add great value to the business if you can work across those lines.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.