Software testing is an essential part for software development
process and must not be neglected. Below are key points why testing
is vital.
- To assure functionally correct software: Let's suppose that our
software gives incorrect result for some cases. Or maybe the
developer team missed out on implementing a critical functionality.
Testing can be helpful to correct these blind spots.
- Security: Secure software engineering is highly important and
often neglected. Many times the software is vulnerable due to
unintentional human errors or due to some library/framework
dependencies. Security testing can help fix the major known issues
with software.
- Quality of code: The goal of good software engineering practice
is to make code base that is readable, extensible and maintainable.
There are many well defined software engineering practices that
developers should follow. Testing can point out if the best
practices are missing.
- Avoid monetary loss: There is huge cost for production of
software. Once software is produced and distributed, it is very
difficult, if not impossible to make changes. It may cost company
huge sums of money if the shipped software is incomplete or
incorrect. It can harm the reputation of company.
- Measure performance: Testing is also useful to measure
performance of software at early stage before production. We can
asses the current performance with the required performance. The
cost can be drastically reduced if team can come up with more
efficient, high performance software.
I would try to convey above points to my sponsor. If the
constraints are still tight, some testing can be automated. Ever
further, tests can be assigned risk score and the ones with
relative lesser risk can be skipped. In any case testing must not
be skipped.