We started digging into details. What went wrong. Finally we came up with a list of details. I am just trying to put the extract what can go wrong..
1. Requirements are poorly written when requirements are unclear, incomplete, too general, or not testable; therefore there will be problems. Sometimes the requirement was not written always.In a meeting, customer just says the requirement.
2. The schedule is unrealistic.Sometimes the managers just gives the date to get the project or the task.(I understand their pain) again sometimes the technological difference between the resources and managers create this problem.
During Cross functional working the problem goes high.The other manager does not understand the pain of other track's resources's problem.
3. Software testing is inadequate if none knows whether or not the software is any good until customers complain or the system crashes. Nobody understands 100% testing is not possible.Nobody can predict that there is no bug in the system.
4. It's extremely common that new features are added after development is underway. Miscommunication either means the developers don't know what is needed, or customers have unrealistic expectations and therefore problems are guaranteed.
5.Communication is the most important problem in our day to day Testing life.Yo...you got it correct.Even everything is perfectly fine communication can spoil a software testing viz dev!!!
let me share an experience with you ....
I was working in a typical project where my customer is from a country where english is not that popular.I dont have enough knowledge how to talk to a customer who is from that country--(guys I am serious on this..pls. prepare yourself before any call).While I was taking the call the english they said is very difficult for me to understand.I along with my team assume something ...understand something and testing has been done accordingly.It created a mess.Later again we need to take the knowledge transfer.which is nothing but rework.