In this video, Naeem Akram Malik, Senior Software Engineer and Senior Test Engineer explains where to start learning test automation.
The beginners in coding always get themselves confused about which language is best for the purpose. For beginners, it is always difficult to choose between Java and C-Shape. Well, both are good and have their distinctive features and perks. So, let’s get into the debate!
LinkedIn Community Responses on Selenium Java Vs. C-Sharp
At 0:36, Naeem Malik says that when being asked about Selenium Java or C-Sharp which to choose to learn Automation, by some old colleagues, or how they should learn it? He explained to them well and he put the same question on his LinkedIn profile and for a general response from other developers. In response to his questions, a lot of people gave their opinions.
For example, at 1:24 he shows us the response of Rex Jones, who is a popular tutorial video maker replied that:
“Selenium Java and C-Sharp are both good. The syntax is very similar, however, I suggest since it’s more online resources available to help if someone gets stuck”.
He shares another reply from Richard W, who was in favor of C-Sharp.
At 2:03, He clarifies that language doesn’t matter when you want to learn to program. If you want to learn to program, then you can achieve the same thing whether it’s Java, C-Sharp, or Python. At 2:28, he says that test automation is possible through different paths like APIs, unit tests, integration, and many other things which can be done in automation.
As there are several ways for automation, he just discusses Selenium and takes it as starting point. While talking about Selenium, at 2:47, he shows us another reply from his LinkedIn question.
Baj Dijkistra replied:
“Learn Selenium, what it does, how it works, what good patterns are when using it and when(not) using it. If you understand that, the specific language bindings you choose don’t matter anymore”.
At 3:07, he shows Sarah Thompson Questioning Bas Dijkstra
“how do we learn what Selenium does and how does it work without first picking a specific language binding?”.
“You’re Right Sarah, you can’t. My point was that too many people stick to a single language binding and toolset after that labeling themselves as ‘Selenium in Java with TestNG’ experts. With a proper understanding of how Selenium works and what the role of a unit testing framework is, it should be relatively easy to switch from one language to another”.
At 5:00, he states that once you understand Selenium, then you can use any language binding. He shows us a diagram showing different kinds of programming languages like C-Sharp, Python, and a few drivers and browsers. Selenium acts as a bridge between other programming languages and drivers of specific browsers.
At 5:36, he begins by saying that Selenium is responsible for taking certain commands from the programming language and sends them over to relevant drivers of a specific browser. These drivers are written by the makers of browsers. For example, chrome is created by Google, and Mozilla was created by Microsoft.
At 6:57 he states that when we send a command of the Selenium API from a test automation script, a Selenium command or Selene is sent to the Selenium, then Selenium takes it and sends it to a driver, according to the stuff you have configured in scripting, then driver communicates with the browser for actual automation.
Role of Web Driver
Web Driver also plays a very important role here. A web driver is a set of frameworks to run automation tests across browsers. All drivers are written in a way that they conform to the web driver specification. At 7:57, he again quotes the answer of Michael Jarczewki from his LinkedIn profile;
“Personally, I prefer using Selenium with java but I would answer this question by saying neither of them. Currently the best automation tool is Cypress. Though it has its own limitations, but nothing is perfect”.
Cypress only works with the chrome but that thing has been sort of fixed. At 8:58, he quotes Dan Russo’s answer like this:
Personal Opinion about the Choice:
At 9:23, Finally, Naeem Malik provides us with his personal opinion. He says that most programming language courses are not custom-built for QA engineers looking to become test automation engineers. Programming courses teach us a lot more them what is necessary for automation engineering. He further says that he has a plan for creating such a programming course suitable for SQI engineers but that will take some time.
Later at 10:13, he quotes some more replies. Like Rob McBryde seems to be really impress by Cypress. He says that is much easy for beginners and easier to get started.
Similarly, he quotes the answer of Susree Mohanty. She has experienced Selenium with both Java and C-Sharp and she seems to like Selenium with Java as it provides more online material.
Selenium Java or Selenium C-Sharp?
At 11:16, he states which language is best for automation. He says that it all depends on what type of company are you working in. If you’re working in a software house, which is already using Java, or Java using people around you, then Java is the best suggestion.
Similarly, if you have more C-Sharp using people around you then C-Sharp is the best recommendation as it provides a more suitable environment for learning. At 12:05, he shares his experience of his previous job working in the company.
He was already experienced in test automation, some people were willingly learning test automation. He always recommended they start with C-Sharp because the company was C-Sharp code-based and they had automated 40 applications through the UI, and that code was used as a reference for the people who were trying to learn test automation.
Basic Things to Learn Automation
At 12:55, he finalizes the answer that choosing language depends on your background and you need to get a top-level understanding of what are classes, what is the method, how do you define variables, what are method parameters, and what is far loop.
Well, next, he answers some of the questions asked by his friends about learning automation.
Are Selenium and Java are co-related?
At 13:56, he answers that Selenium and Java are not co-related. Once they were very closely familiar but not anymore. Selenium is independent now and not reliant on any other language. So it is completely detached from the programming language.
Are all Microsoft Tools are paid?
At 14:33, he says that many people ask him as most of Microsoft Tools are paid and you have to buy the license to use them and they are very expensive. So, where to learn for free?
He answers that not all Microsoft tools are paid. Microsoft also provides some free to use tools as well Such as:
- Visual Studio Community Edition
- Microsoft.Net Core
- Visual Studio Code
These tools are free to download and free to use. So you don’t have to buy licenses if you stick with C-Sharp and selenium and rest sharp.
Document Object Model
At 16;20, he finally talks about the Document Object Model. To learn test automation, you also need to learn the document object model and how do web applications work and you have to have a top-level understanding of that as well.
Asking the LinkedIn community of developers and experts there were maximum votes in the favor of Java and Selenium combo. The reason stated is that there are more online sources available for you to learn java and get the errors removed. So if you are looking for a combination, this is the one you should probably choose.