The Galil Software Validation Group consists of five collaborative teams, as follows:
Validation Team (VLD)
The VLD team consists of validation test developers. The role of this team is to download the UFS specification, and prepare test-plans for each of the product components. These plans are then implemented using Python.
Furthermore, the team writes and implements tests for each firmware feature that is being developed at the company. The tests are prepared to cover different environments, including various temperatures (using chambers), with interrupts, or with changing voltage.
This team is also responsible for Failure Analysis (FA). During this process, failures from the execution teams are analyzed – to identify and rectify the causes of events through RCA (Root Cause Analysis), or to route the failures to the relevant team for further action.
The VLD team uses software tools to simplify the test development process. These tools include proprietary frameworks for testing, which implement the interface with the hardware (driver layer), and other interfaces.
Used Technologies: Python
Software Tools Team (SWT)
The SWT is responsible for implementing the test frameworks mentioned above, working in different layers. The lower layers are implemented using C and C++, wrapped up in a Python layer, where some APIs are provided to the test developer. For example, if the test developer wishes to implement a test that writes 10 bytes to the flash memory, he will be able to use a function from the framework, instead of going to lower levels. This increases efficiency.
This team is also tasked with implementing the Model – the software version of the product. The Model is a software simulation of the hardware product, implementing the same UFS protocol. The firmware works with the Model in the same way that it works with the hardware. Tests can be run on the Model, and comparisons can be run between Model results and hardware results, to detect issues specific to the hardware.
Used Technologies: C/C++ and Python
The executions team is a team of engineers, responsible for preparing lab stations and running test cycles in the lab.
The engineers install and prepare the test environment, building test cycles that include the relevant tests to run on the corresponding hardware. During the test cycles, the engineers monitor the results of the tests and prevent malfunction or disaster in the lab. At the end of each test cycle, the engineers prepare the appropriate reports and send them to the relevant managers. These reports include pass rates (the percentage of tests passed), and failure buckets (how many failures occurred due to particular errors).
This team is in action from Monday to Friday, with one member on call on Saturdays.
This team is responsible for running automated tests in the labs. Every station in the lab is equipped with an engine. Each engine manages its station, deciding when it can run tests and when it cannot. The tests are matched to relevant environments, run, and monitored.
The automation team shares the same tools used by the execution team, for running lab tests. In addition, the team takes the tests implemented by the DVT team, running them on the corresponding stations, providing logs and reports.
Used Technologies: C#, Python, and SQL
This team supports the development process across different departments. It provides continuous integration of the products into the testing labs.
Used Technologies: Python, SQL, Jenkins, and Puppet
At Galil Software, most of our teams use Scrum, part of the Agile methodology. JIRA and iceScrum are used for task tracking.
According to our satisfied customers, working with Galil Software provides the following benefits:
• Strong, systematic view – thanks to the small size of the Galil Software site, our five teams have the opportunity to work closely with each other. Each engineer understands their own tasks and the accompanying expectations, supported by the test developers, SWT, and automation engineers sitting alongside them.
• High level of service – our engineers are especially service-oriented, providing superior customer service at all times. This is most apparent when a crisis occurs – our teams are the first to respond, even out-of-hours, or on weekends.
• Working throughout the year, even on Jewish holidays – this is a major benefit of working with Galil Software. The executions team was born after a crisis that occurred during the Jewish holiday of Passover. Our team arrived just on time, preventing a big crisis that could have created major disruption in the validation process.
• Local benefits for Israeli customers – as a local company, we understand the Israeli market and culture, speaking the same language and operating in the same time zone.