Dallas Techologies
-
Upload
dallastechnologies -
Category
Technology
-
view
100 -
download
0
Transcript of Dallas Techologies
SOFTWARE TESTINGSOFTWARE TESTINGDALLAS EDUCATION
Why testing is ImportantWhy testing is Important• All Software has defects (bugs)All Software has defects (bugs)• All software products are ‘prototypes’ (in my view)All software products are ‘prototypes’ (in my view)• Software products are getting larger and more Software products are getting larger and more
complicated - Vista 40% larger than XP @ over 50 complicated - Vista 40% larger than XP @ over 50 million LOCmillion LOC
• Software Engineering is not as mature as other Software Engineering is not as mature as other disciplines e.g. Civil Engineeringdisciplines e.g. Civil Engineering
• Software is written by people – people make mistakesSoftware is written by people – people make mistakes• Software testing looks to find the most important defects Software testing looks to find the most important defects
as early as possible – increasing confidence that the as early as possible – increasing confidence that the software meets specificationsoftware meets specification
Who’s involved in testing?Who’s involved in testing?• Requirements Analysts – Inspections, Peer ReviewsRequirements Analysts – Inspections, Peer Reviews• Developers – Code Inspection, Unit TestingDevelopers – Code Inspection, Unit Testing• Testers – System & Integration TestingTesters – System & Integration Testing• Trainers – Training materials productionTrainers – Training materials production• Users – User Acceptance TestingUsers – User Acceptance Testing• Project Managers – Scheduling, Resourcing, Risks, Project Managers – Scheduling, Resourcing, Risks,
Issues, Defect StatsIssues, Defect Stats• Everybody is responsible for quality - NASAEverybody is responsible for quality - NASA
Fundamentals of Software TestingFundamentals of Software Testing
• Software testing needs planning, tests need specifying, Software testing needs planning, tests need specifying, once executed they need results recording, and post once executed they need results recording, and post completion should be easily auditablecompletion should be easily auditable
Plan Specify
Execute Record Check
The importance of a planned approachThe importance of a planned approach
• Important to map out a strategy that will give the greatest Important to map out a strategy that will give the greatest level of confidence in the product level of confidence in the product
• ‘‘Ad hoc’ testing may find errors, but may not be cost Ad hoc’ testing may find errors, but may not be cost effectiveeffective
• Testing should focus on areas where defects are most Testing should focus on areas where defects are most likely likely
• All testing should have a reasonAll testing should have a reason• Question “Is a test that doesn’t find an error a good test or not?”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 Essential to plan what needs to be done and then itemise how it is to be achieved.itemise how it is to be achieved.
Testing MantraTesting Mantra• Mantra - Spiritual conduit, words or vibrations that instil Mantra - Spiritual conduit, words or vibrations that instil
concentration in the devotee.concentration in the devotee.
• Test as early as possibleTest as early as possible
• Gather as much knowledge of the application under test as possibleGather as much knowledge of the application under test as possible
• Look for vulnerabilitiesLook for vulnerabilities
• Build ‘Bug Taxonomies’ (Classification)Build ‘Bug Taxonomies’ (Classification)
• Use Quicktests (and publicise the fact)Use Quicktests (and publicise the fact)
Testing MantraTesting Mantra• You can always think of another test – but should youYou can always think of another test – but should you??
• Concept of ‘Good enough Testing’Concept of ‘Good enough Testing’• Practicality over dogmaPracticality over dogma• Everybody has responsibility for ‘shipping’ the productEverybody has responsibility for ‘shipping’ the product
• Record all tests/defects/issues/recommendationsRecord all tests/defects/issues/recommendations
• Testers are not the sole arbiters of qualityTesters are not the sole arbiters of quality• Testing only shows problems exist – not their absenceTesting only shows problems exist – not their absence
• Never, Never, ever, everever, ever make it personal make it personal• Defects are issues with products and process not peopleDefects are issues with products and process not people• Good working relationship is essential for good productsGood working relationship is essential for good products
Document Hierarchy - Test PlanDocument Hierarchy - Test Plan
TestPolicy
Test Strategy
Project Test Plan
UnitPhase
IntegrationPhase
Acceptance Phase
What is a Test Plan - 1What is a Test Plan - 1 Test plan isTest plan is
tool to help plan the testing activitytool to help plan the testing activity product to inform others of test processproduct to inform others of test process
IncludesIncludes Document controlDocument control ObjectivesObjectives ScopeScope Approach – Schedule, Priorities, Deliverables, Approach – Schedule, Priorities, Deliverables,
Resources, ResponsibilitiesResources, Responsibilities Risks/ContingencesRisks/Contingences Sign-off/ApprovalSign-off/Approval
What is a Test Plan - 2What is a Test Plan - 2
• Produced by Test Lead/Project ManagerProduced by Test Lead/Project Manager• Published to Project/ProgrammePublished to Project/Programme• Not constrained by format – living documentNot constrained by format – living document• Enough information to be used by anyone to test Enough information to be used by anyone to test
the productthe product
ReviewReview• Software Testing is important for increasing confidence that the Software Testing is important for increasing confidence that the
software meets specificationsoftware meets specification• To get the best results from testing certain fundamentals should be To get the best results from testing certain fundamentals should be
followedfollowed• Testing is part of software developmentTesting is part of software development• Different software testing techniques enhance our ability to testDifferent software testing techniques enhance our ability to test• Many different types of software testing exist – which we can Many different types of software testing exist – which we can
combine into single test cases/scenarioscombine into single test cases/scenarios