In this article, I will try to share some reasons, why a software will have bugs.
The reasons are based on my 20 years of experience.
There can be any other reason. Or multiple reasons for an application to have bugs. I am not denying it.
But these are my observations over different products testing.
A software is a product.
It is built or developed to solve some user problems. If nobody wants to use the product then what is the use of developing it?
So, we know that product should solve user problems.
Now, why software has bugs?
My 2 decades of experience says that software can have bugs due to many reasons. It is nearly impossible to deliver the product without any bugs !
It is a fact.
I have tried to list some common reasons for software bugs below.
The reasons can be bucketed in to 3 broad categories:
- Requirements issues
- SDLC issues
- Testing issues
Requirements are the pre-requisites.
They are required for any product to be developed. Well documented, clear and detailed requirements are required for any product to be successful and bug free.
But I have seen following issues related to requirements in software:
- Not capturing unspecified requirements
- Not understanding the requirements correctly
- Not capturing the user requirements completely
- Not developing the software as per the user requirements
- Not involving testers/developers in product discovery phase
- Not communicating the requirements correctly to engineering team
Software Development Life Cycle.
It is the process followed to develop and deliver a software product. You know it already. This process you follow greatly impact the quality of the software product.
You follow any type of SDLC.
It can be Waterfall, Incremental, Scrum, Kanban, Scrumban, SaFe etc. Each one has same goal. That is to build and deliver quality product.
If correct process is not followed, there can be number of issues.
This can lead to delivery of buggy software product.
I have observed following SDLC related reasons for the software to have bugs.
Bugs can be due to:
- Scope creep
- Skipping Backlog grooming
- Skipping retrospective meeting
- Introducing testing late in the SDLC
- No defined ‘Change Management Process’
- In accurate estimation at any/all phases of SDLC
- Improper environment configuration — Dev, QA & Prod
Quality is owned by testers?
No. Every stake holder of the product is the owner of quality. Developers strive to build quality software. Testers make sure that this product meets the quality.
But, testers are the custodians of quality.
It is you, a tester should be proud of.
You should drive testing and support stake holders in meeting quality.
So, there can be bug escapes to production, due to issues in testing.
I list down some of those issues in testing.
Defect escapes can be due to:
- Improper test plan
- Incomplete test data
- Insufficient time for testing
- Not doing proper risk analysis
- Not understanding user personas
- Not having proper testing strategy
- Not documenting the bug properly
- Focusing only on functional testing
- Going for 100 % automated testing
- Attempting automation without analysis
- Neglecting the importance of exploratory testing
- Lack of Unit testing and Regression testing efforts
- Lack of analysis & planning during regression testing
Above list is incomplete.
The reason can be anyone of these/more or combination of these reasons.
Product development is team activity. All stakeholders should actively participate in all the phases of product development.
Then only there are high chances of lesser bugs in software.
If you need additional details, feel free to reach out to me.
In my upcoming articles, I will dive deep in to these reasons.
Keep waiting !
That’s all for now !
Note : Follow me on Linkedin for more learning !