Best Practices In Testing Software