Testing of LDAP Server is no different than any other Software Application (Did I say, OS is an application Software .. Oops ..). Functionality Testing must be done as per the standards and the design requirements. Non-Functionality Testing Must be done based on Customer (Direct/Indirect) Usage pattern.
For Ldap servers, the standards are written in RFC 2251-2256 (For Details Link1 Link2)
To test the functionality, there are several tools available like QTP, STAF, C/JAVA LDAP SDK, Perl/Python/Ruby Modules for LDAP etc ..
One should write LDAP Enabled application for testing the functionality As the Available tools may not cater to all the needs of a specific Ldap server. It is quite possible that your LDAP server has some features which are not documented in RFCs and hence no tool vendor has testing for that feature .. Its always advisable to have Test Automation Suites Written for basic operations like connecting, Performing LDAP add, modify etc .. to Do Partition, To backup etc .. And Later Have scripted Test Case, which should call these Test-Automation-Framework-API (Which infact is the wrapper over C/JAVA LDAP SDK.). Again, Though, I have not developed any application using C till yet, But I have used DirectoryMark (C based) and SLAMD/DSRK (Java based), and I know, C based tool for testing is better and gives more accurate result from Server point of view. Its like Server could have done more processing but the client itself got bottlenecked due to JAVA VM issues)
For Non-functional testing, tools like SLAMD, DirectoryMark, LoadRunner, DSRK etc.. can be used.
While developing test case, There should at least be clear objective (What is the expected result, If you perform these steps?. How will your test result will look like..? Can we have the output result template please?) and Do you see any chance for getting a bug? and why do you think bug may arise out of this step? (Depending upon the objective, for example, If your objective is to get the performance number of Adding users, then, Adding a step to create a users and assign this to a group makes no sense, as this must have been verified by Functional testing)