Why does Software have bugs?

Why does Software have bugs?

A million Dollar question!!!
Why does Software have bugs?

There are many reasons for Bug in software, Most are man introduced
and some are machine oriented.

Here is the the broad list:

1. Miscommunication or no communication -
As to specifics of what an application should or shouldn't do (the
application's requirements).

2. Software complexity -
The complexity of current software applications can be difficult to
comprehend for anyone without experience in modern-day software
development. Windows-type interfaces, client-server and distributed
applications, data communications, enormous relational databases, and
sheer size of applications have all contributed to the exponential
growth in software/system complexity. And the use of object-oriented
techniques can complicate instead of simplify a project unless it is

3. Programming errors -
Programmers, like anyone else, can make mistakes.

4. Changing requirements -
The customer may not understand the effects of changes, or may
understand and request them anyway - redesign, rescheduling of
engineers, effects on other projects, work already completed that may
have to be redone or thrown out, hardware requirements that may be
affected, etc. If there are many minor changes or any major changes,
known and unknown dependencies among parts of the project are likely
to interact and cause problems, and the complexity of keeping track of
changes may result in errors. Enthusiasm of engineering staff may be
affected. In some fast-changing business environments, continuously
modified requirements may be a fact of life. In this case, management
must understand the resulting risks, and QA and test engineers must
adapt and plan for continuous extensive testing to keep the inevitable
bugs from running out of control.

More Details Testing JOBS, Interview questions at