These Tech Professionals Prefer C# and Endly for Test Automation. Here’s Why.

There's no universal best language for test automation. Rather, it’s about choosing the tool that leads to maximum collaboration for any given team.

Written by Janey Zitomer
Published on Sep. 22, 2020
These Tech Professionals Prefer C# and Endly for Test Automation. Here’s Why.
Brand Studio Logo

When choosing a programming language for test automation, exactly what is at stake? For these tech professionals, it’s more than simple user preference discrepancies. 

“Each language has different supported test platforms that dictate how the results are collected and presented,” Nhat Nguyen, a test automation manager at CCC Information Services said. “Choosing the wrong automated programming language and supported test platform can lead to a need for custom code down the road.”

In order to skirt any compatibility issues, Viant Chief Architect Adrian Witas’ team sticks with declarative workflows for end-to-end testing. After all, such frameworks apply to any tech stack. It doesn’t hurt that endly, their open source, extendable framework, also allows engineers to run thousands of test cases and add new functionality as necessary. 

While C# and endly are the programming languages of choice for Nguyen and Witas, their engineering counterparts across LA might rely on Python and Java. And that’s because there’s no universal best language for test automation. Rather, it’s about choosing the tool that leads to maximum collaboration for any given team. 

 

Shutterstock
Shutterstock
Nhat Nguyen
Test Automation Manager • CCC Intelligent Solutions

C Sharp is not only the most popular language using the .NET framework. According to Test Automation Manager Nhat Nguyen, it’s the most popular language at CCC Information Services. He personally appreciates its integration abilities and streamlining functions. Using the same language for testing that CCC developers use to write software allows his team to share libraries and objects cross-functionally. 

 

What’s the best programming language to use for test automation, and why?

We have found that the best programming language to use for test automation is C#. C Sharp is a modern, object-oriented programming language. It has powerful features and the support of the .NET framework. With its compatibility with Selenium and Appium, C# has become the primary choice for many testers seeking to automate browsers, desktop and mobile applications. 

Supported test frameworks in C# include NUnit, MSTest and xUnit, making the integration with test management solutions a breeze. We can execute automated tests written in C# using the supported frameworks from our CI/CD pipelines or directly from the test plan. The test results can then be displayed in various dashboards without any custom code.

 

Supported test frameworks in C# make integration with test management solutions a breeze.’’ 

Are you using the same language for testing as the developers use to write the software? What are the pros or cons of using a common programming language?

For the most part, we are using the same language that the developers use to write their application code: C#. However, for legacy applications and mobile testing, our automated tests are still written in C#, whereas the application code is written in C++, Objective C or Java. 

In terms of advantages of using the same language, we can write automated tests in the same application code base, thus sharing libraries and objects. In addition, we can execute the tests during CI to stamp out regression bugs (usually the case for unit tests). And finally, it gives our automation engineers a clear path to join the development teams as they gain experience. 

A potential disadvantage is that if certain test features only support specific languages, it will be more difficult to implement certain tests. For example, machine learning is easier in Python versus C#.

 

What is the most important consideration when choosing a programming language to use for test automation?

To me, the most important consideration when choosing a programming language for test automation is workflow. How will the automated tests work, and how will the results be collected? 

Engineers can write most automated tests in many languages, like Python, Java and C#. However, each language has different supported test platforms that dictate how the results are collected and presented. Choosing the wrong automated programming language and supported test platform can lead to a need for custom code down the road. 

For example, if your organization is using Azure DevOps for maintaining the test cases and test results, the most common automation framework would be NUnit, MSTest or xUnit. With such frameworks, C# would be a logical language selection. While you can choose to write your automated tests in Mocha with Java, you will have to write a good deal of custom code to update the test results in Azure DevOps.

 

Adrian Witas
SVP, Chief Architect • Viant

At adtech company Viant, engineers rely on endly for test automation for a few different reasons. The main one? While tools like Selenium and Protractor address user interface integration testing and DUnit focuses on databases, SVP Adrian Witas said his team wanted one tool that could work for the entire complex environment. 

 

What’s the best programming language to use for test automation, and why?

We use an open-source, fully declarative automation testing framework called endly. It’s developed in Golang. GitHub allows us to automate and build as well as deploy and organize testing workflows, which speeds up the development process. With endly, we test complex ETL integration and runtime systems.

The most advanced endly workflows allow us to run thousands of end-to-end test cases. Each case triggers an additional HTTP request to assert not only UI (the HTTP response) but all changes in logs.

 

Are you using the same language for testing as the developers use to write the software? What are the pros or cons of using a common programming language?

We use declarative workflows for end-to-end testing, which work with any stack. As a matter of fact, our advertising cloud platform is cross-stack with Java, Go, JavaScript and more.

Using a declarative approach does not require any coding skills. Developers can simply build automation and testing workflows, specifying datasets for case input and desired output. This ability allows them to focus on system input and desired output.

With multi-stack systems, many engineers feel strongly about one language versus another. But it’s important to remember that the common automated workflow methodology can be used to test Java, Go, JavaScript or serverless deliverables — all end to end.

 

End-to-end testing can be challenging without the right toolset.’’ 

What is the most important consideration when choosing a programming language to use for test automation?

End-to-end testing can be challenging without the right toolset. While many tools address individual or a subset of E2E challenges, like UI integration testing or database testing, we wanted one tool that could be used for the entire complex environment.

Endly can automate local, Dockerized or cloud dependencies, helping engineers build and deploy any stack on local or hybrid architecture. In addition, using one shared methodology for data management is key. We need to organize MySQL, Aerospike, BigQuery, DynamoDB, PostgreSQL and Firebase.

On top of that, your data organization must enable you to manage hundreds to thousands of use cases per application. We want to quickly identify, understand and troubleshoot potential issues in both input and output if a test case fails. 

Responses have been edited for length and clarity. Images via listed companies.

Hiring Now
City National Bank
Fintech • Payments • Professional Services • Software • Financial Services • Cybersecurity • Big Data Analytics