|
|
|
|
Solution offered by Marimba, can overcome IT challenges of every organization. Typically every organization will have similar issues in managing their IT assets. These issues could be
- How to manage inventory of hardware and software resources
- How to distribute software and patches
- How to distribute software and patches
|
There are other challenges that can be overcome by using Marimba products, but for now we will concentrate on above three only as I was working on these components only.
There were three different modules to deal with these challenges
- Inventory Management
Inventory Management can be used to maintain hardware and software inventory of the entire organization. In inventory management client component will be installed on all the end points and it will be scanned periodically. During end point scanning, Inventory management will collect hardware information, software information, information about processes etc. This information will be sent to the centralized server and can be accessed from a single place.
- Application Packager and Subscription
This module will facilitate the process of software distribution in the entire organization. With the application packager, application can be packaged in a format that can be distributed using subscription module. Subscription module allows you to create software distribution policies and software can be distributed using these policies. For example, your organization might have policies that if a manager joins, he should get Microsoft Project Plan software. Now if any person joins your organization as manager, MPP will be delivered to him.
- Policy compliance
Policy compliance is the module to make sure that policies created in the subscription are enforced properly. This module will make sure that policies are enforced properly using end-point scanning mechanism of Inventory management module.
Risk/Challenges
- Data will not be collected properly using Inventory Management on different platforms.
Testing will be conducted on various platforms with different hardware and software configuration.
- Software packaging will corrupt installer and will not be able to install software on the end points.
Testing will be conducted with the packaging of different type of applications.
- Policy compliance will not be able to report variance between policy and software present on the end point.
End to end testing will be performed early to find defects in the policy compliance.
Test Cases
Test cases for these types of application are normally very complex and significant work is involved in setting up the testing environment itself. Typical test cases for this application looks like
- Install different type of applications , create lots of partitions, start processes and execute inventory scanner. Make sure that scanner is collecting proper data.
- Create a policy to distribute anti virus patch on all the end-points and make sure that it reboots after the installation of patch.
- Create a policy to distribute a java IDE on all the developers, distribute it then scan their system using Inventory management and make sure policy compliance properly report any variance in the policy.
There were different variant of these cases in terms of different application, configuration, different distribution policies etc. On top of these combination, this application was developed in Java and was supported on all the major platforms like AIX, HP-UX, Linux, Windows etc.
Apart from the normal functional testing we also did Scalability testing. This was done for directory server and database. All these scanner reports were getting stored in the database and user information was maintained in the directory server. We wrote some simple scripts to populate the directory server and used SQL Loader to populate the database. Data files for SQL loader were created using SilkTest.
Test Automation
It was very challenging experience as far as Test Automation goes. For GUI automation SilkTest was used for windows flavor. For GUI automation on Linux, we tried to use silkbean.jar but could not get the proper results so finally dropped the idea of GUI automation on Unix flavors. Fortunately, for all the activities, there was a command line interface and that allowed us to do automation on Unix flavor as well.
We started of with automation from Inventory module on Unix flavors as it was very easy to write shell scripts to get all the information from the system that Inventory module was collecting. Inventory scanner was storing this information in the central database which could be accessed from any web browser. Information of the scanner service could be obtained in the CSV format from this browser. So in a complete automation suite, we were following these steps :
- Start Inventory scanner on the Unix machine - Even this part was automated using one more module from Marimba called Server Management.
- Start Shell scripts on Unix machine to get the same information. - Again using Server Management
- Get file produced by shell scripts from Unix machine to Windows machine - This was done using a wrapper class on top of wininet.dll. This dll is used for any network operations in Windows. Wrapper class written in Silk is available freely for download.
- Access information produced by scanner service using a browser a store it in CSV format.
- Compare files produced by shell scripts and CSVs to get the result.
On Windows platform, instead of using Shell Scripts windump was used to get all the information about system.
In application packager, most of the cases were related to GUI. Complexity was present in the installation of software using application packager. In this case we were to automate the process of making sure that software installed properly. We did this for some applications and knew what kind of changes will be made in the system after installing this application. Typical operation was to get information from the file system and registry to make sure that application is installed properly.
For subscription manager and policy compliance, complete end-to-end automation was not possible. But still all the GUI related parts were handled properly. Since lots of dynamic content was there in the GUI of these applications proper framework was created to handle them as well. For example, In subscription manager you need to select user/group for which you can specify policy and this list will be different for different directory servers and users present in them.
But in and all, it was a wonderful experience automating this application.
Test Measurement
One of the toughest thing in this project was to make sure that all the combinations are covered. There was a provision to support three directory server, two databases and eleven platforms. Making sure that all the combinations are covered was a big task. For this we divided different combinations according to the priority. For example, Active directory with SQL on Windows 2003 was priority one and Active directory with Oracle on Windows NT was priority three. We specified in our release criteria that every major release has to be tested on all the combinations, for minor release all priority one and two issues and patches will be tested on priority one combinations. That way we could manage various combinations effectively.
Testing Skills
A lot, you need to know, learn a lot of things to test this type of application. You should have good knowledge of all the operating systems, directory servers how to use them, how to create domain controllers, primary and secondary database, shell scripting, SilkTest and what not. I guess working on this type of project can increase your knowledge two folds.
|
|
|
|
|
|