120 likes | 248 Views
Software testing is the action focused at evaluating the quality or capability of a program and shaping that it meets its desired results. Although crucial to software quality and widely deployed by programmers and testers, software testing still remains an art, due to limited understanding of the principles of software.
E N D
SOFTWARE TESTING DALLAS TECHNOLOGIES
Why testing is Important • All Software has defects (bugs) • All software products are ‘prototypes’ (in my view) • Software products are getting larger and more complicated - Vista 40% larger than XP @ over 50 million LOC • Software Engineering is not as mature as other disciplines e.g. Civil Engineering • Software is written by people – people make mistakes • Software testing looks to find the most important defects as early as possible – increasing confidence that the software meets specification
Who’s involved in testing? • Requirements Analysts – Inspections, Peer Reviews • Developers – Code Inspection, Unit Testing • Testers – System & Integration Testing • Trainers – Training materials production • Users – User Acceptance Testing • Project Managers – Scheduling, Resourcing, Risks, Issues, Defect Stats • Everybody is responsible for quality - NASA
Plan Specify Execute Record Check Fundamentals of Software Testing • Software testing needs planning, tests need specifying, once executed they need results recording, and post completion should be easily auditable
The importance of a planned approach • Important to map out a strategy that will give the greatest level of confidence in the product • ‘Ad hoc’ testing may find errors, but may not be cost effective • Testing should focus on areas where defects are most likely • All testing should have a reason • Question “Is a test that doesn’t find an error a good test or not?” • Essential to plan what needs to be done and then itemise how it is to be achieved.
Testing Mantra • Mantra - Spiritual conduit, words or vibrations that instil concentration in the devotee. • Test as early as possible • Gather as much knowledge of the application under test as possible • Look for vulnerabilities • Build ‘Bug Taxonomies’ (Classification) • Use Quicktests (and publicise the fact)
Testing Mantra • You can always think of another test – but should you? • Concept of ‘Good enough Testing’ • Practicality over dogma • Everybody has responsibility for ‘shipping’ the product • Record all tests/defects/issues/recommendations • Testers are not the sole arbiters of quality • Testing only shows problems exist – not their absence • Never, ever, ever make it personal • Defects are issues with products and process not people • Good working relationship is essential for good products
What is a Test Plan - 1 • Test plan is • tool to help plan the testing activity • product to inform others of test process • Includes • Document control • Objectives • Scope • Approach – Schedule, Priorities, Deliverables, Resources, Responsibilities • Risks/Contingences • Sign-off/Approval
What is a Test Plan - 2 • Produced by Test Lead/Project Manager • Published to Project/Programme • Not constrained by format – living document • Enough information to be used by anyone to test the product
Review • Software Testing is important for increasing confidence that the software meets specification • To get the best results from testing certain fundamentals should be followed • Testing is part of software development • Different software testing techniques enhance our ability to test • Many different types of software testing exist – which we can combine into single test cases/scenarios