What are the testing the developer needs to do when he is done with the coding?
1) Whether it is better to follow TDD or BDD?
2) Apart from functional & unit testing what are the testing he should do from his side?
3) From the QA side, what are the testing they needs to do, apart from system & regression testing?
1) Neither is better. They are different. Plus it isn't just the developer's choice. To do BDD, you are probably working with users. Or a different form of requirements.
2) Regression, performance, browser, etc
3) Usability, exploratory, etc