Despite its longevity and acceptance, there is very little free information available to support the test planning of SMI-S projects. This blog aims to share my experience as a QA and some best practices related to the testing of SMI-S Projects.
Before we begin, please ensure that the QA is co-located next to the development team (irrespective of the type of project). As you read this blog further, you would notice how important it is for the QA and Dev team to work closely with each other through all phases.
What is SMI-S?
The Storage Management Initiative Specification (SMI-S), is a storage standard developed and maintained by the Storage Networking Industry Association (SNIA). It is an initiative by SNIA, which is categorized into profiles and sub-profiles for Storage Arrays, Switches, Storage Virtualizers, Volume Management and many other domains. (Source: Wikipedia)
Some of the open source projects are OpenPegasus, StorageIM, SBLIM and CIM browsers. If you are using OpenPegasus, I would recommend CIM browser - WS WBEM workshop which can be used readily and is available here as free download or PyWBEM (a SNIA recommendation), if you could invest some effort.
How to Test SMI-S Provider for Array Devices?
Three best practices/guidelines to test Array devices.
- First and foremost is to gain an understanding of SNIA and DMTF standards for SMI-S. The best place to start would be SNIA as well as DMTF CIM specification. SNIA specification gives you an idea about profiles, sub-profiles, elements involved in it and also an overview of the related classes. DMTF CIM specification gives an overview of CIM repository. It shows you where the repository resides; how CIM server loads classes; how the namespaces are created and how CIM server get accessed, both the north bond communication protocols (CIM-XML, CIM-RS and etc.) and the south bond channel. It also explains access mechanisms, viz., Array APIs – it may be REST or SOAP. This understanding will help you in creating test plans and running those tests as per requirements from product team or array vendor.
- Secondly, QA needs a thorough understanding of the requirements and profiles to be tested. This might seem obvious but often the most overlooked as well. It is critically important for QA to know which profiles are mandatory and which are optional (as mentioned by SNIA). They need to explicitly ask product teams or array vendors for their plans to go for SNIA CTP** test. By going through requirement analysis, one can get an understanding of limitation of the storage array (if any) and suggest to solve it in advance (** for more details on Conformance Test Program (CTP) please visit SNIA official website ). Also, QA is expected to have good knowledge on Microsoft SCVMM as SMI-S provider can be easily integrated with SCVMM.
- Thirdly, consider what type of providers are we building? Is it an embedded provider or proxy provider? In my experience, initially a proxy is preferred and after a thorough testing, CTP is embedded in an array. We also need to understand which CIM server is used to create the provider. Though there are multiple options, OpenPegasus is popular among open source projects. There is a commercial offering from WS-Inc as well. The design/implementation for provider defines overall hardware requirement i.e. in case of embedded implementation provider, it resides in the firmware of storage array. However, in case of proxy provider, it is bundled in an appliance and deployed on different hypervisors mostly ESXi, Hyper-V and KVM.
The above discussion covers the scope of testing i.e. what profiles do we have to test; the area on which test cases to write for all classes; which CIM browser we need to use for testing each parameter of these classes. Also, it gives us clarity on the software and hardware requirements for testing i.e., which hypervisors are used to deploy SMI-S provider, SCVMM requirements etc.
Providing a quality SMI-S product to the client can help them pass SNIA SMI-S CTP test without any challenge. Certifying SMI-S from SNIA, the client can directly list their product on SNIA SMI-S certified list.
Understanding and knowing the above parameters before test planning can achieve all the goals – improve quality, increase productivity and better collaboration between the Dev and QA teams.
Check out our page to know more about our solution or connect with our test planning expert here.