Software Testing : Software Testing
Introduction : Introduction
Slide 3 : Software Testing is evaluating an application with the intention of finding bugs either manually or through automation tools, to satisfy the customer requirements.
Why should software be tested? : Why should software be tested?
Slide 5 : Software failure may cause human fatalities
If not tested it may affect the data, the machinery, the people and the materials
The most critical the application, the more important it is to assess its quality
Software has penetrated into all walks of our life. Dependency on software has increased. So it is expected to behave in the way it is intended to.
What is meant by Quality Software? : What is meant by Quality Software?
Quality Software should be : Quality Software should be Bug free
Delivered on time
Complete
Within budget
Meet the requirements of the customer
Easy to maintain and upgrade whenever needed
Can be web enabled
Adaptable to various OS like Unix, Linux etc.,
Can run in notepads, PC’s, Mainframes as per customer requirements
Documented
Concise
Consistency
Secured
Why software gets bugs? : Why software gets bugs?
Bugs arise in software because of : Bugs arise in software because of Software specifications that is not thorough enough, that keeps constantly changing or that is not communicated well
Software design that is rushed or changed or not well communicated
Coding errors due to software complexity or poor documentation or schedule pressure or just plain dump mistakes or lack of proper skill set in programmers
Constantly changing customer requirements - modifications in requirements lead to change in coding which leads to errors
Time pressure
Developer Vs Tester : Developer Vs Tester
Roles and responsibilities of Developer : Roles and responsibilities of Developer Involvement in low level design
Convert low level design into a code
Write efficient codes, follow strictly coding guidelines, follow quality procedures and stick to time schedules
Responsible for carrying out unit testing
Fix bugs
Roles and responsibilities of a Tester : Roles and responsibilities of a Tester Study and understand Requirements and Designs
Prepare Test Plans, Test Scenarios and Test Cases, Bug Reports
Execute Test Cases
Prepare Test reports and maintain test records
Automate Test cases
Co-ordinate with development team for fixing bugs
Basic Types of Testing : Basic Types of Testing Black Box Testing
White Box Testing
White Box testing is done to ensure that : White Box testing is done to ensure that Code is simple
Easy to modify
Low memory consumption
Code is structured into manageable sections
Documented
Product Vs Project : Product Vs Project
CMMI Levels : CMMI Levels
Slide 17 : CMMI is an appraisal method developed by Software Engineering Institute in Pittsburg to develop and refine an organization’s processes.
CMMI is used as a benchmark for assessing different organizations for equivalent comparison.
CMMI describes the maturity of the company based upon the project the company is handling and the related clients.
CMMI Level 1 - Initial : CMMI Level 1 - Initial Processes are ad-hoc
Organizations does not provide a stable environment
Success depends upon the individuals
Frequently exceed budget and schedule
Over commit – abandon processes in time of crisis and do not have repeatable sucesses
CMMI Level 2 - Repeatable : CMMI Level 2 - Repeatable Successes are repeatable
Existing practices are retained during times of stress
Use some basic Project Management to track cost and schedule
Processes may not repeat for all the projects
Minimum process discipline is in place to repeat earlier successes with similar application
Still risk of exceeding cost and time
CMMI Level 3 - Defined : CMMI Level 3 - Defined Standard processes are established and improved over time
Effective project management system is implemented
CMMI Level 4 – Quantitatively Managed : CMMI Level 4 – Quantitatively Managed Use precise measurements
Set quantitative quality goals
Processes are controlled using statistical and other quantitative techniques
CMMI Level 5 - Optimizing : CMMI Level 5 - Optimizing Improve processes through innovative technological improvements