I will have to second Yevhen on that. Until now your query was related to TestNG. But your test openig up multiple instances of browser for each test is NOT TestNG related. Please post this on the selenium-users forum.
That being said your test seems to create a FirefoxDriver instance for each test class which probably is the reason.
There are multiple ways of dealing with this.
1. Having a common base class, instantiating it in a BeforeSuite/BeforeTest.
2. Creating the Webdriver instance in a singleton and then just using it in all your tests.
3. Creating the webdriver in a separate class via listener invocation and using it.
Its upto you on how you want to use it. To begin with I suggest that you please spend sometime playing around with TestNG and use ordinary ovjects and see how things can be shared/re-used in your tests.
--
Thanks & Regards
Krishnan Mahadevan
"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"
My Scribblings @
http://wakened-cognition.blogspot.com/