AMI, is an international company, reimagining firmware for modern computing, providing secure, manageable solutions across on-premises, cloud, and edge platforms. Its technology and support drive innovation and lasting partnerships with top tech brands.
Tell us more about AMI's product lines
AMI delivers firmware and management solutions for servers, data centers, and embedded systems. Key products include:
- Aptio V®: A next-gen UEFI/BIOS solution enabling dynamic processor and peripheral management for Cloud, Edge, and IoT environments.
- MegaRAC®: Advanced BMC solutions like SP-X and OneTree for remote, OS-independent server management, including power control, KVM redirection, and virtual media.
- TektagonTM: A Platform Root of Trust ensuring secure and validated firmware boot processes.
- AMI® Data Center Manager (DCM): Software for managing multi-vendor data centers, offering insights on health, power, thermal performance, and sustainability metrics to optimize operations and efficiency.
AMI develops products at all levels of the technology hierarchy, starting with low level firmware to cloud based applications. For boot firmware, it's mostly assembly and C. For manageability firmware, it's a combination of C, C++, Linux Shell scripting. Our products have web interfaces so the HTML/CSS/JavaScript stack is also very common. Python is extensively used as the backend language of choice for cloud applications.
How about AMI's relation to open source
AMI has forged a robust partnership with the Open Compute Project, driving innovation and collaboration in open source firmware solutions. As one of the key proponents of open source technologies in this space, AMI integrates EDK2 and embedded Linux into firmware solutions. We are a major sponsor of the Open Compute Project and a key contributor.
What makes testing at AMI challenging
At AMI, the Test team plays a pivotal role in ensuring the reliability and excellence of our product lines. Given the dynamic nature of our projects, the team frequently transitions between tasks to accommodate multiple ongoing initiatives. This adaptability is crucial in maintaining rigorous standards across diverse firmware and management solutions.
Additionally, the Test team is committed to delivering valuable insights by analyzing quality trends and producing detailed reports. These analyses equip leadership with actionable data, fostering informed decision-making and continuous improvement across all development efforts.
Constantly changing priorities combined with the need to provide accurate reporting make testing at AMI challenging!
Since we are a black box/acceptance test group, our System Under Test are actual hardware platforms. And since we do boot firmware and manageability firmware solutions, we have to test on early revision hardware, which is unstable. This makes test automation challenging. And even for automation, we have to rely on hardware tooling like IP controlled AC power strips, firmware programming devices and single board computers like Raspberry Pi for controlling various aspects of the system under test. We also support multiple hardware architectures, which increases the breadth of what we need to test.
How do teams at AMI approach testing? Can you walk us through the process
Our black-box user acceptance testing (UAT) team ensures end-user expectations align with product functionality, performance, and usability. Collaborating with developers and studying standards and specifications, we create detailed test scenarios covering positive, negative, performance, and usability aspects.
Using a hybrid agile-like model, we test features as they're ready and conduct a final integration cycle to assess system readiness. Given that we work with firmware and embedded solutions, achieving 100% test automation is a significant challenge. As a result, our approach includes a considerable amount of manual testing to ensure thorough coverage and reliability. This process ensures seamless component interactions, uncovers overlooked issues, and delivers actionable insights so we can ship high-quality systems that exceed user expectations.
AMI is committed to upholding rigorous standards in testing, including a strict test exit criterion that mandates zero high severity bugs before product release. This ensures that all solutions delivered to clients meet the highest levels of reliability and performance. Our testing methodologies are designed to identify and resolve any critical issues at an early stage, preventing them from affecting the functionality of end products.
What other technologies does testing at AMI involve
At AMI, testing leverages tools like Python for automation scripting and Robot Framework for test case creation and execution. Previously, AMI utilized a custom-built test management system to organize test cases and generate actionable reports.
AMI uses GitLab CI for triggering test jobs. We have CI workflows that execute daily and weekly runs of our automated tests. We would like to get to a point where our systems can analyse what features a code change impacts and then it selects the test cases needed to execute to test that changeset.
Why did you decide to use Kiwi TCMS
The legacy homegrown tool faced significant limitations as it struggled to keep up with the scaling demands of AMI's growing testing infrastructure. It was slow and could no longer support our evolving need for real-time reporting, lacked flexibility, and was unable to accommodate new features, primarily due to the absence of dedicated personnel to maintain and upgrade it. These constraints led the QA team to seek modern solutions capable of addressing their evolving requirements effectively.
We conducted extensive research into alternative solutions, but many tools we evaluated were either overly complex or prohibitively expensive. Kiwi TCMS emerged as the perfect choice, seamlessly aligning with our requirements for affordability and functionality.
Where does Kiwi TCMS fit into AMI's overall testing infrastructure
Kiwi TCMS has become a mission-critical tool for us, drastically reducing latency while maintaining a lightweight and responsive design. Its versatility ensures widespread use across AMI's testing infrastructure, benefiting not just testers but also project managers and developers. The integration with JIRA further enhances our workflow efficiency.
Additionally, the Kiwi TCMS API and the tcms-api client-side library are a great foundation which enables us to create custom integrations, allowing the AMI team to develop tailored workflows that fit their unique requirements.
For example, we have built a custom web application which provides data visualizations and reporting capabilities that are tailored to meet the needs of our stakeholders and customers. These custom solutions empower the QA team to provide actionable insights into testing quality, enhancing transparency and fostering trust across all levels of collaboration within our organization.
In the words of Utpal Patel, Senior Director, Global Test Engineering:
After a highly successful two-year run with Kiwi TCMS, we have transitioned to a Managed Hosting subscription to better accommodate the rapid growth at AMI. This move underscores our commitment to leveraging Kiwi TCMS as a cornerstone of our testing infrastructure. We're excited about collaborating closely with the Kiwi TCMS development team to refine it further, introducing features and capabilities that not only strengthen our own workflows but also contribute valuable enhancements for the broader testing community.
If you like what we're doing please help us grow and sustain development!
- Give ⭐ on GitHub;
- Give 👍 on GitLab;
- Join our newsletter and follow all news;
- Become a contributor and an awesome open source hacker;
- Become a subscriber and help us sustain development