Developing the requirements needed seems to be a critical
aspect of engineering. When identifying the requirements, it also a good time
to think about test case that can cause the software to fail. Think about the
relationship between functional and non-functional requirements and where
issues can arise. Continual testing is needed as the software is developed and
maintained. In the Planning
for Failure in Cloud Applications article, the author mentions a tester
that simply removed the network cable to the test database server. This brought
out a new case to which had not been gracefully handled by an exception in the
code.
Also security in new technology should be properly tested,
especially if it is going to be mandated to be on all devices to which it deals
with. An unresolved security flaw can cause issues for all the user’s with that
device and allow for unwarranted access.
Test Driven Development is a good way of improving an application
from the beginning. Each code will incrementally resolve test cases. As the
software ultimately builds in complexity more and more test case will need to
be added. Documentation should also be updated and adjusted as changes are
made.