Download presentation
Presentation is loading. Please wait.
1
Module A Fundamentals of Testing
by K.N.Sasidhar
2
Fundamentals of Testing
Why is Testing necessary? What is Testing? General Testing Principles Fundamental Test Process The Psychology of Testing Re-testing and Regression testing Expected Results Prioritisation of Tests
3
Why is testing necessary?
Software systems context Define errors/mistake,faults,failures and reliability Errors and how they occur Cost of errors Exhaustive testing is impossible Testing and risk Testing and quality Testing and contractual, legal,regulatory requirements How much testing is enough
4
Software Systems context
Software systems are an increasing part of life, from business applications to healthcare systems to consumer products etc… Software that does not work correctly can lead to many problems including loss of money, time or business reputation, and could even cause injury or death.
5
Define Errors, Fault,Failures
According to BS Error: A human action that produces an incorrect result. Fault: Manifestation of an error in software or in implementation. Failure: Deviation of the software from its expected delivery or service. A human being can make an error(mistake),which produces a defect (fault,bug) in the code, in software system.If a defect in code is executed , the system will fail to do what it should do, causing a failure. Bug – Generic term for defect,fault,failure
6
Errors and How they occur - Can be introduced at any stage of SDLC
We are all prone to making simple human errors Miscommunication, Poor requirements Working under pressures such as tight deadlines, budget restrictions,conflicting priorities Complexity of technologies / infrastructure Poorly documented code Due to environmental conditions
7
Cost of Errors May vary from nothing at all to large amount of money loss and even loss of life. A single failure can cost nothing or a lot. Software in safety-critical systems can cause death or injury if it fails. Ex: Online trading systems: $100,000 per minute revenue loss
8
Exhaustive Testing is impossible
“ Executing a program with all possible combinations of inputs or values for program variables “ Only exhaustive testing can show a program is free from defects. - It is practically impossible due to time and resources - It is not cost effective It is much better to : - use testing techniques to give confidence - Base the testing on the risks to be contained
9
Testing and Risk - Testing is a risk reduction process
“ The amount of testing performed depends on the risks involved ( Failure / Loss) Risks - As a basis for allocating the test time that is available and for selecting what to test and where to place emphasis. A priority must be assigned to each test so that most important tests are run first. The objective is to always “ minimise risk”
10
Testing and Quality Testing increases software quality
“ Testing identifies faults and whose removal increases software quality by increasing the software’s potential reliability “. Testing is the measurement of software quality “ We measure how closely we have achieved quality by testing the relevant factors such as Correctness,Reliability,Usability, Maintainability etc.”
11
Quality Control : “ is the activity performed to ensue that a Product is ‘fit for Purpose’ “. Quality Assurance: “is the activity performed to test the process is being followed” Quality Management: Responsible choosing the correct process to ensure that the product is ‘fit for purpose’.
12
Testing and Contractual,Legal,Regulatory requirements
Other factors that may determine the testing performed may be: Legal Contractual Normally defined industry specific standards Ex: FSA, US FAA, OFTEL
13
How much testing is enough ?
Testing is a matter of judging risks against the cost of extra testing efforts. Planning testing effort before you begin and setting completion criteria ensure that testing is properly prioritised.
14
What is Testing ? Definition Common objectives of testing
Purpose of testing at different phases of SDLC
15
Testing – Definition “ The Process of exercising software to verify that it satisfies specified requirements and to detect errors” BS Testing is : - a Risk reduction process - aimed at discovering faults - an iterative process - the measurement of quality
16
General Testing Principles
Principle 1- Testing shows presence of defects Principle 2- Exhaustive testing is impossible Principle 3- Early testing Principle 4- Defect clustering Principle 5- Pesticide Paradox Principle 6- Testing is context dependent Principle 7- Absence-of-errors fallacy
17
Fundamental Test Process
Test Planning Test Analysis and Design Test implementation and execution Test Recording Checking for test completion(Exit criteria)
18
The Psychology of Testing
Why do we test? Tester-Developer relationships Test Independence
19
Why do we test ? Primarily to find faults in the software This can be perceived as being a destructive process,not constructive How does this fit with the mind set of the developer and tester ?
20
Developer characteristics ?
Specialized Creative Valued by the organisation Trained Sensitive to criticism
21
Testers characteristics:
Methodical Happy when they are finding faults Under-valued by the organisation Not always intended to be a tester Good communicators Need to be multi-talented Tact & diplomacy are essential
22
Is this true always ? Do Developers & Testers contribute to their problems ?
23
Developer – Tester Relationship
-Communication is the Key !! - must be constructive not destructive - Developers must inform testers of any changes made to the system - Testers must report problems to developers clearly and concisely. - It is a two-way process !!
24
Test Independence Independent testing is more effective. The author should not test their own work -Assumptions made are carried into testing -People see what they want to see -There can be emotional attachment with the product - We’re human
25
Levels of Independence
Where test cases are - designed by the person who writes the software under test - designed by another person - designed by people from another department - designed by people from another organisation - not chosen by a person
26
Re-Testing and Regression Testing
Fault-fixing and re-testing Regression testing and automation Selecting regression test cases
27
Fault-fixing and Re-testing
When ever a fault is detected and fixed,then the software should be re-tested to ensure that the original fault has been successfully removed. “The re-run of tests to show that what was not working has been corrected and is now working satisfactorily. - Make your tests repeatable Normally performed when a fault has been fixed. Can occur at any level of testing Should consider testing for similar or related faults
28
What is Regression testing ?
“The re-run of tests with the intention of checking that what was working is still working” i.e modification have not caused unintended adverse side defects in the unchanged software It is performed whenever the software or its environment is changed When a major modification to the software is done, then the entire regression pack is likely to be run. For a minor changes. Test manager must be selective in identifying regression tests Regression tests are good candidates for test automation
29
Expected Results What are expected results ?
-They are expected outcome of a test -The outcome may include output -It is the identification of the desired behavior of a test -They are determined before a test is executed Outcome is everything you expect to happen and output is physical output ( ex:Database changes and table changes) Outcome of a test may include a physical output.
30
Why do we need expected results ?
To ensure that the outcome of a test is as expected To make a judgment as to whether to Pass or Fail a test How do we derive expected results? From documentation: From existing system From specialized user knowledge Also known as the “Oracle assumption” Should never be derived from the delivered system What if we don’t have them? -Testers can make the wrong judgment as to Pass/Fail -Go back to the Oracle
31
Prioritisation of tests
Why do we need to Prioritise? How do we Prioritise? What is the Criteria?
32
Why do we need to Prioritise ?
Time constraints Resource Constraints We need to get the best done in the time available How do we Prioritise? Identification of the Most Important Tests first(MITs)
33
Prioritisation basis:
- Business criticality - Severity of potential failure - Visibility of failure - Likelihood of error - User requirements and priorities - Technical criticality and complexity - contractual requirements / Compliance requirement
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.