Software testing is an art that's often misunderstood by those who are outside the field - and sometimes even within the realm. Software testing myths have arisen primarily due to the following: - Lack of authoritative facts. - Evolving nature of the industry. - General flaws in human logic.
Software testing begins post-development
Testing after development (TAD) has an increased likelihood of delaying project delivery. Reversely, testing driven development (TDD) caters to greater efficiency during the project development lifecycle and an excellent customer experience in the end product.
Automate All Tests - Manual Testing is Obsolete
Test automation is another operational concept that has suffered from too much binary conversation. It has been hailed as the solution to the bottleneck of functional verification and condemned as an endless sinkhole for development talent that could be producing value-generating code. Once again, there is a spectrum of value to be gained from test automation.
There are test processes that are repetitive, require large scale environment setups and have many minutely detailed steps that beg for automation. Exploratory tests where each test result is used to design and guide the next test are where manual testing shines and automation costs way more than it is worth. While DevOps depends on automating as much test work as possible, user acceptance testing requires a human perspective that cannot yet be economically automated.
Testing is very expensive
Well, so is car insurance. But we need car insurance. Sometimes it is believed and said that, pay less for the testing during the software development and we should pay more for the maintenance or may be correction later. Early testing can save both time and cost in many aspects. However reducing the cost without testing may result in improper design of a software application rendering the product useless. The reality is harsh but true, most projects that cut costs on quality assurance have to spend twice (or more) as much later. Testing during the project gives more information to the team, and it's widely known that data is incredibly important. Launching a product that hasn't been fully tested can have a huge impact on its popularity, it can crash, freeze, some functionalities can stop working, all kinds of issues are possible. But most importantly, if you find bugs after the project is finished you will have to employ developers again to fix them.
Automate All Tests - Manual Testing is Obsolete
The main problem here is that some may think that everything can and should be automated. In fact, we should only automate most boring tests, those that are repeated numerous times with only a small variation, those that can be used with a lot of data as an input - not everything needs to be automated and must not be automated. Don't forget that each test has a cost in development, running and maintenance.