Software testing is not easy. It requires the right mindset in order to be a great software tester. You must be someone who pays attention to every critical detail when you are testing. Software testing really requires a unique skill set. Not everyone is going to have an eye for detail, therefore, not all technical people are going to make great software testers. I have seen many instances where developers try to convert over and become a software tester, but they end up being an average tester at best. Software testing requires the individual to see the big picture. It requires a high level of focus and it can be a highly stressful job. Software testers have to keep the end customer in mind. Software testing requires a broad understanding of what the customer wants and what they expect. Without the understanding that the customer is always right, you will never be a successful software tester. Also, you must have thick skin and learn to negotiate effectively with developers and project managers. Let’s face it, no developer wants to be told their code is junk. They will go to the end of the earth to prove that your software defect is not valid. They will even bring in their manager, peers, and anyone they can think of in order to convince you otherwise. Therefore it requires someone who has a high passion for quality and someone who is willing to stand their ground. This requires years of practice. In the end, you will gain the respect of those developers and they will actually want you “the software tester” to test their code to make sure that it works properly. That is the ultimate complement. While I have moved away from testing on a day to day basis, I still have the ability to find code defects that nobody else can find.