Q&A with the Deacom Automated Testing Team

Deacom has invested significant resources into bolstering its automated testing over the past few years. Building automated tests may not have the same glamor as building a new feature in the software, but its importance cannot be stressed enough. I recently had an opportunity to sit down with the Deacom automated testing team to talk about what they have been up to.

What is the advantage of automated testing over manual testing?

Pete McIlwee: Efficiency. There are so many different ways you can configure DEACOM that automated testing is the only way to efficiently validate the business logic within the system.

Kyle Conlon: Repeatability. Automated testing consistently runs through the same test scenario with the same configuration options. That said, at the end of the day, you need to think of automated testing as a compliment to manual testing. Automated testing focuses on validating the business logic which allows the manual testing team to turn their focus to usability and optimizing business processes.

That leads us nicely to our next question. What can manual testing validate that automated testing cannot?

Pete McIlwee: The user-interface layer. Automated testing only validates the business logic layer. Manual testing is still necessary to validate the user inputs to the software.

Scott Gordon: Deacom has multiple user interfaces that must be validated during the manual testing processes such as the main Web application, the mobile application, and the warehouse management solution. The business logic is shared across each application and is tested in automated testing. However, a user still needs to confirm the behavior of each interface through manual testing prior to the final release of a version.

Kyle Conlon: One of the big challenges we face with manual testing is validating that DEACOM works in a Web browser consistently across all the Web browser options. Google Chrome and Mozilla Firefox often play pretty nicely but the Microsoft Edge and Apple Safari browsers often have unique nuances.

Deacom TeamCity

What development tools is Deacom currently using to support automated testing practices? 

Pete McIlwee: NUnit and TeamCity are the two main tools we utilize today. NUnit is the unit testing framework we chose to build the DEACOM testing framework around. This is a testing framework for the Microsoft .Net platform that was spawned from the JUnit platform. NUnit allows you to build a test that validates a certain output given a consistent input.

Scott Gordon: We also utilize TeamCity which is a tool that automatically runs our automated testing library after each dev commit. The testing library takes three hours to run from end to end. TeamCity enables the full testing library to run in the background and informs the developer if a test failed due to the dev commit.

How is automated testing built into the current development process?

Pete McIlwee: We take a modified approach to test-driven development where one developer completes a code change and another developer writes the supporting automated tests. For example, if a system bug is found, a developer will fix the fault and another developer will write a test to ensure that this problem does not repeat again in the future.

How does the testing strategy for an ERP application like DEACOM differ from the testing strategy for a social media application such as Facebook?

Kyle Conlon: An ERP application like DEACOM is probably going to have a more complicated business logic layer. Last I checked, Facebook does not have features for MRP, master production scheduling, or warehouse directed putaway. These features rely on some pretty intense calculations that occur within the business logic layer. While I imagine Facebook has some complicated logic for determining news feed order, preferred ads by user and photo recognition, the logic in these features is not as mission critical as DEACOM ERP is for a manufacturing company.

What’s next for Deacom from a testing perspective?

Pete McIlwee: We are looking at advancing our loading testing practices. Our current customers are processing tens of thousands of sales orders and production jobs on a monthly basis. As the size of Deacom’s typical customer continues to grow, we need to improve our load testing platform to continuously validate system performance.