I have a license master with two pools, one pool is for my production instances and the second is for my testing environment.
Recently my test environment had breached its own pool as well as the whole license and caused my searches to be blocked on all instances (production and test), how can i avoid my test instance from violating and causing searching capabilities to be blocked for my production instance?
You should in fact get a warning each day to allocate more license to the offending pool, however if your test pool is violating your whole license then you will not be able to (as there will be no license you can allocate). In this case you can either:
1) Set up a license usage report: http://docs.splunk.com/Documentation/Splunk/latest/Admin/LicenseUsageReportViewexamples
and once you see that you have got a violation from day one stop the issue causing the violation (by using the SOS app or the in built feature on Splunk 6>) and then you will not violate on the following days meaning your search will not be blocked. If you cannot track down what is causing the violation then contact Splunk Support to investigate further.
2) Contact Splunk Support to split your license and have two license master, one master for your production environment and the other for your test environment. Each will have a separate license and therefore if your test environment breaches its limit it will not effect your production environment. And then if you would like to use both licenses in production you can add this license to your license stack on the productions license master.