Deploying board resource depot for large scale semiconductor companies having multi-geographical teams

Deploying board resource depot for large scale semiconductor companies having multi-geographical teams

DevOps has evolved over the last decade as a combination of practices that combine software development and IT operations. Because of its utility, flexibility and sophistication, DevOps has become an essential ingredient of success in supporting basic software engineering principles such as CI/CD (continuous integration/continuous deployment) and the exploratory iterations of Agile development.

Organizations that follow DevOps practices create a reusable development pipeline and overarching methodology for software development. These frameworks include highly automated workflows that facilitate rapid and repeatable coding efforts, experimentation, test automation and production-level deployment. New software products can be conceptualized, created and then stored systematically with archived and auditable data, code versions, documentation, toolchain configurations/dependencies and scripts. These archives serve purposes such as re-creating original SW development environments, tracking changes, ensuring version reproducibility, and facilitating further enhancement & evolution of software products.

However, the interplay between embedded software stacks and underlying hardware provides an unexpected and highly salutary effect stemming from DevOps with respect to the development of system hardware solutions. This blog explores just such an example – the definition, development, and deployment of the Board Resource Depot for large semiconductor companies. The Board Resource Depot is a cluster arrangement of servers intended to be a shared, remotely accessible application, for the development groups scattered globally.

Board-resource

To explain, semiconductor industry vendors offer a vast selection of product families, along with supporting IDEs, embedded IP, and many reference designs. A major component of the support portfolio consists of development boards, and there is a plethora of such boards for those semiconductor vendor’s devices.

Despite the tremendous variety of such boards, every design share general software commonality. Among them are the device bootup code, JTAG boundary scan testing, application stack installation, OS implementation and IDE/toolchain access. The same scenario follows for other large semiconductor manufacturers as well. Here, Continuous Integration Continuous Deployment would save time and effort for their engineering teams, permitting those teams to focus on the application stack development for which the board was intended.

The first choice for building the DevOps pipeline is always, an open-source product – specifically, the Jenkins automation server. A multi-OS, java-based server that automates the creation and deployment of DevOps flows for CI/CD software development. The server supports a wide variety of versioning and software build automation tools thru a library of plugins, making Jenkins highly flexible and extensible.

Jenkins also lends itself easily and effectively to server hardware cluster deployments in order to support larger development organizations and parallelization of projects. The IBM Spectrum Load Sharing Facility (LSF) software can be used to configure a server cluster to support the Board Resource Depot. LSF is a multi-OS compatible, scalable, and fault-tolerant job scheduler that distributes and load-balances HPC workloads across hardware platforms. An administrator can manage the hosting hardware hierarchically, set policies and leave the LSF to control hardware resources, queue jobs and execute them in accordance with those policies while the administrator monitors activity.

Based on java servlet containers, Jenkins uses a web interface for setup and configuration and creates a CI/CD pipeline from user-chosen plug-ins. The pipeline provides multiple build, test and deployment stages that are codified in a Jenkins-specific coding language & syntax and automatically stored in a text file as part of the project archive. The pipeline architecture offers a high degree of flexibility to developers, including the ability to fork an existing project, workflow loops for A/B testing or Agile development, and task parallelization to accelerate code module development.

The Board Resource Depot enables globally scattered development teams/users to create a new application from a range of boards available across the board resource depot.
There is a cascade of benefits accrued to semiconductor companies’ board developers. Some of the major benefits included:

  1. Increased board re-use
  2. The ability to reserve boards in advance
  3. Real-time notification of board release to production, along with a time stamp
  4. Automated email notifications for the completion of tasks or milestones in new board development via Jenkins server
  5. A regular schedule of ‘health checks’ for boards to alert users of boards that were experiencing functional problems
  6. Automation of new board additions to the Farm resource reserve through a set of dedicated scripts

The board support software can be tested by creating a library of Python-coded test modules. This test module library is developed using Pytest, a unit testing framework available with its own library of over 300 plug-ins that help developers quickly develop testing regimens for their python code. Tests can be simple (unit) or complex, and the test setup is flexible, modular, and scalable. Tests can be re-used, repeated (with results logged) and multiple test fixtures can be set up at the same time.

The final piece of the puzzle is finding a way to implement a robust, repeatable, and automated board testing schema. The Robot framework, an open-source framework available under Apache license is widely used for such scenarios of test automation and robotic process automation. Implemented in Python, it nonetheless supports multiple object-oriented and procedural languages. The framework is keyword-driven and can be extended using available libraries.

Using Robot, a full JTAG Boundary Scan-based test suite can be created in Python for scanning the Power Management (PM) Bus, FPGA I/O and board level peripherals (UART, I2C, clocks and so forth.) This board test suite was integrated into the Jenkins pipeline to facilitate re-use, traceability, and versioning. MySQL scripts are used to produce statistics involving reports and graphs on archive activity and the operations of the server cluster. The Board Resource Depot also helps to plot the real time usage statistics per user, per user-group, per board.

Huge semiconductor companies like Xilinx, Lattice, Microsemi, etc. has over 1,000 development boards to offer its customers, all of which can be a part of such Board Resource Depot and its Jenkins server pipeline. The key to the success of Board Resource Depot is its reformulation as a DevOps pipeline. By streamlining the building, testing and deployment, the Board Resource Depot DevOps pipeline has provided engineering teams the means of continuous and efficient application/product lifecycle management which, in the end, accelerates embedded software development cycle.

Softnautics enable semiconductors to bring in next-gen products with its semiconductor design, embedded software development and end-to-end test automation services with custom and inhouse framework STAF. Our team of experts also have in-depth experience working on DevOps, Agile, device security and compliance testing. We enabled semiconductor companies with geographically separate teams to access and work on various development boards through Board Resource Depot management.

Read our success stories related to Machine Learning expertise to know more about our services for accelerated AI solutions.

Contact us at business@softnautics.com for any queries related to your solution or for consultancy.

[elementor-template id=”12006″]

Deploying board resource depot for large scale semiconductor companies having multi-geographical teams Read More »

IoT-1-scaled

AI Driven Evolution of Test Automation Frameworks To Be ML Ready

Today test automation is constantly evolving to deliver better quality results with sufficient validation, and the testing lifecycle has become lightning-fast. A major shift has been happening from Manual testing processes towards Agile and DevOps as they are now crucial for every project, so test automation frameworks have become a necessity.

With the software development industry growing at a faster pace, it has become vital for every organization to have a reliable and stable test automation framework. All these test automation frameworks ensure an optimum testing speed along with perks like higher ROI. So, to skyrocketing revenue, organizations have started deploying test automation frameworks for all their hardware and software products.
Faster test cycles, improved test coverage, and higher-quality software do not come without a cost.

Let Us Dive Into What Exactly Is A Test Automation Framework

A Test Automation Framework is a set of protocols that provides a platform to Develop, Execute & Analyze test cases.

Benefits of Using Test Automation Framework

All these test automation frameworks are built by integrating various DevOps opensource/ licensed tools like Appium, Selenium, Jenkins, JUnit, Locust & is one of the essential parts of an automated testing process. Various advantages like:

• Reusability of test scripts
• Execution on multiple devices
• Minimal manual intervention
• Capture debug logs

Top 4 Features of Test Automation Framework

Test automation framework Benefits

So, What’s Next In The Test Automation Framework?

Testing is slowly conversing to higher automation to ensure the best accuracy and precision in the drive towards digital transformation. Soon, we can expect our two friends — Artificial Intelligence and Machine Learning to take care of most of the work today’s software engineers do. The shift is moving away from the functional testing and the testing, Artificial Intelligence (AI) & Machine Learning much change with it. This signifies that instead of manual testing and human interference, we are moving towards machine control solutions. Adoption in IoT Testing has significantly increased due to security flaws and risks in IoT apps and devices, which ensures the need for IoT Testing. A spike in the adoption of automated testing with the maturation of Agile methodologies and the adoption of DevOps is undoubtedly the future of the software and hardware testing industry. Today organizations have also realized that as complexity increases, automation is the only way to keep pace with the changing trends.

Know how Softnautics can automate your test cases using automation framework.

Read our success stories related to Machine Learning expertise to know more about our services for accelerated AI solutions.

Contact us at business@softnautics.com for any queries related to your solution or for consultancy.

[elementor-template id=”12007″]

 

AI Driven Evolution of Test Automation Frameworks To Be ML Ready Read More »

Scroll to Top