DEV Community

Cover image for Software Testing
Mohd Hasan Rizvi
Mohd Hasan Rizvi

Posted on

Software Testing

Software Testing is carried on to ensure smooth and error free delivery of any product or prototype.It covers the boundary value cases and strength and robustness testing.Testing in layman terms helps to find flaws in design and development of any product.Testing helps to find bugs in a product from development till deployment and delivery.Testing covers all aspects –security,hardware dependency,upgrade etc.It requires a proactive approach to deal with all kinds of bugs and failures of a software.
Software testing is the key element for any quality deliverable to the end customer. It involves checking different parameters like system resources,dependencies,boundary checks,code quality checks to make it mark as effective.The testing are of various types –white box,black box and gray box testing.White box testing means to verify the internal structure or workings of a module or a program.Black box testing means to test the functionality of a software without knowing the internal details of it.Gray box testing means testing the software by privileges in the program/software.Software testing is involved at various levels.
1)Unit Testing-The testing done by developers on the code to test the functionality.
2)Integration Testing-Testing done to check and integrate modules,and how they respond in a particular environment.
3)System Testing-It tests the complete integrate system to verify the requirements.
4)Acceptance Testing-It is of various types-
I)User Acceptance Testing-(UAT)
ii)Operational Acceptance Testing(OAT)
iii)Contractual and Regulatory Acceptance Testing
iv)Alpha and Beta Testing
5)Compatibility Testing-A system is not compatible with other applications .
6)Smoke and Sanity Testing-Minimum tests to qualify the build/software.Sanity testing determines whether it’s reasonable to proceed with further testing.
7)Regression Testing-It focuses on finding defects after a major code change has occurred.
8)Alpha Testing-It is operational testing by users.
9)Beta Testing-It is an external user acceptance testing.

Functional vs Non-Functional
->Functional testing refers to activites that verify a specific action or function of code.Non-functional testing refers to testing from end users perspective.example-scalability and performance.
The relevance of software testing is to anaylse bugs and defects both during development,testing and till delivery phase. It helps both client and developers and managers to check for faults and raise the concerns post development through agile methodlogy.Agile methodlogy of testing is incremental and iterative.Each time a new feature or enhancement is done on a feature,it needs to be tested in regression.Testing of a product helps in following ways-
1)Raising the secondary issues before actual delivery.
2)Covering the corner cases
3)More robustness testing of small enchancements to feature or whole system
4)Performance and scalability testing helps in testing the system in any environment which promotes effortless delivery.

Top comments (0)