What's the difference between project and product testing? what types of testing are very necessary in them?