It really depends on the project – but primarily we use Python or C/C++ for development. These are the primary options for test framework development on embedded platforms and both provide unique opportunities and challenges.
Python is a versatile language, supports C-types library through which we can call into C code directly. It also has a lot of messaging libraries, and it is straightforward to develop a custom messaging library with Python. Due to these reasons, our personal preference is to use Python whenever possible.
In some cases, especially unit test framework development, it makes more sense to use C/C++ for test framework development. These could be for applications and test frameworks that reside on the embedded instrument, or if the embedded instrument has very little memory to support a large interpreter program like Python. For C/C++ we have our own unit test framework which is based on Gtest and check libraries. It also supports mock objects within the unit tests. GTest only supports C++, so our unit test framework was written ground up to support C libraries and vast number of assertions.
Since we are a third party developer, our projects are mostly end-to-end test framework development, though we have worked on few unit test frameworks in the past. End-to-end frameworks provide us with an opportunity to dive into the development by treating the application as a black-box, and using our testing skills to come up with different scenarios covering all types of use-cases. This results in quicker project completion and higher ROI for our clients.
Absolutely! We have implemented few BDD test frameworks for embedded platforms and we highly recommend it. One of the primary advantages of BDD is higher collaboration between product, dev and test teams. This, along with rich testing reports covering features and scenarios provide a great reason to use BDD for embedded testing.
If you are not familiar with BDD testing, check our knowledge base for BDD Testing to get more information. One more resource is our medium articles on BDD testing walkthrough and BDD Testing reports.
Yes, absolutely! Python test frameworks are easy to integrate with most CI/CD systems including Jenkins, Travis and Bamboo.
We follow a few different paradigms in our Test Framework development to make them more robust and extensible to application changes. Some of these paradigms are applicable to only web or mobile applications, but others are applicable to any type of test framework.
Page Objects: These form an integral part of the test framework modularization – by allowing each page of the web-application provide an abstraction on the functionality of that page. This allows us to have the test framework resistant to changes to underlying UI. As long as the behavior of page is constant, we can localize the UI change impact to a single page object.
Data Driven Testing: We use sample data generated on real-time use as input to our UI automation scenarios. This allows us to write test cases or scenarios in a data-agnostic way, thus reducing the number of repetitive test scenarios to implement.
Configuration (JSON) based Testing: We have implemented a few proprietary tools for running test scenarios through different configurations. This allows us to focus on building test cases on a single configuration and then expand it to cover different configurations. An example of this approach is the different testing for different personas the application might support.
It depends on a few things, so let’s take a step back and talk through it.
Is your IOT application using Linux based platform? Or it is using an RTOS platform like ESP32?
For Linux based IOT platforms, we have good amount of memory to install Python, and different libraries to communicate with a HTTP server or with other REST APIs. For an RTOS platform, we have some custom C libraries that we can use to communicate with an HTTP server. In either scenarios, we can help your app connect to network, simulate network connections, provide http mock functionality etc., to test your application thoroughly.
It depends on the type and scope of the application under test. Most test frameworks that we have worked on in the past two years, including many complex application test frameworks, have been completed under 3 months. We provide accurate estimates and fixed price quotes for most Python based test framework development, contact us to learn more. We also work on a Managed QA Services SLA, or through T&M basis.
Our most common engagement model is an on-demand project for Test Automation Framework development. Usually client is aware of what they need, and we help implement the solution for them. We have onsite Software Architect and/or Project manager to drive the project requirements. Depending on the client and project needs, actual project development can happen onsite or at our offshore offices.
We also provide Managed QA Services which allow us to work in a more dynamic Agile/Scrum environment – where the requirements are changing frequently or the software product is changing frequently. We provide managed QA services either through T&M basis or through a fixed monthly costs model.
Our typical hourly rates are between $60-$80 per hour. This rate depends upon the automation engineer experience, test framework language, framework complexity and whether the resource is offshore or onsite. The rates mentioned above is a average hourly rate considering all these factors.
Our goal is to make sure that you are 100% satisfied with our project delivery and will re-engage with us in future for further projects. That’s why we provide complete and immediate support after the project is complete. Our support turnaround is within 24 hours.
We also offer Managed QA Services SLA, which support not only to fix any test framework related issues – but also to keep adding new test scenarios, test cases and work on improving test automation process enhancements on a continuous basis.
Our Team worked with the client to create a web-application and corresponding QA Automation Framework for an embedded sensors device. The web-app was developed with Angular5, HTML/BootStrap; and corresponding QA Automation Framework was developed using Python, Selenium and BDD. More.
This is one of our pet projects – that has been fully open-sourced and provides access to an embedded C library with which you can write xUnit type of test frameworks. The library supports test cases, test suites and XML report generation similar to junit or py.test. It can be easily integrated into CI system allowing to reuse existing test report plugins. More.