Software testing ni mchakato wa kuthibitisha kwamba software inafanya kazi kama ilivyokusudiwa — kuangalia kwamba inatenda sahihi, inakabili mahitaji, na haina kasoro. Ni muhimu sana kwa kufikia software yenye sifa nzuri na kuaminika, na kukamatia matatizo kabla ya kufikia watumiaji.
Kile kinachojumuisha testing
Testing = systematically VERIFYING software behaves correctly:
→ does it do what it's supposed to? (meets requirements)
→ does it handle edge cases, errors, and invalid input?
→ does a change break existing functionality? (regressions)
→ from manual testing (a person checks) to AUTOMATED tests (code that checks code)
Kwa nini testing ni muhimu
✓ CATCH BUGS — find defects BEFORE users do (cheaper/easier to fix early than in production)
✓ CONFIDENCE — change/refactor code knowing tests will catch regressions
✓ QUALITY — reliable software; fewer production failures, crashes, data issues
✓ DOCUMENTATION — tests show how code is meant to be used/behave
✓ FASTER long-term — automated tests catch issues quickly vs slow manual re-checking
→ The cost of a bug grows the later it's found (dev < test < production).
