Software Testing: Presented By: Priyanka Kulkarni Himanshu Markam Pradeep Bhardwaj
Software Testing: Presented By: Priyanka Kulkarni Himanshu Markam Pradeep Bhardwaj
Learning Objectives
What is Testing
Testing Methods
Software Testing
Definition:
Software Testing is the process of exercising S/W with the intent of ensuring that the S/W meets its requirements and user expectations and does not fail in an unacceptable manner.
Methods:
1. White box Testing 2. Black box Testing 3. Grey box Testing
V-V Model
Testing Types
Functional Testing
Ad Hoc Testing Exploratory Testing Acceptance Testing
Alpha Testing
Beta Testing Integration Testing Performance Testing Load Testing Stress Testing Regression Testing
Equivalence Partitioning -:
Equivalence partitioning is a class of object having equivalent property. It is a software testing related technique with the goal: To reduce the number of test cases to a necessary minimum.
A decision table lists causes and effects in a matrix. Each column represents a unique combination. Purpose is to structure logic.
Causes Effects
Error Guessing :
Test cases can be developed based upon the intuition and experience of the Test Engineer. Purpose is to focus the testing activity on areas that have not been handled by the other more formal techniques. For example if an input is the date, a test engineer may try February 29, 2000 or 9/9/0099.
Advantages
Disadvantages
Only a small number of possible inputs can actually be tested, to test every possible input stream would take early forever.
Without clear and concise specifications, test cases are hard to design. There may be unnecessary repetition of test inputs if the tester is not informed of test cases the programmer has already tried. May leave many program paths untested.
Thank You!
Scripted Testing
Agenda
Test Plan Test Design Test Script Introduction of Scripted Testing Generic Script Pattern Script Advantages Of Scripted Testing Disadvantages Of Scripted Testing
Test design involves creation of high-quality tests to help you discover and interpret the information that you want to discover.
The most important consideration in software testing is the design or invention of effective test cases. The reason for the importance of test-case design stems from the fact that complete testing is impossible. Given constraints on time, cost etc., the key issue of testing becomes What subset of all possible test cases has the highest probability of detecting the most errors?
A Test script is a short program written in a programming language used to test part of the functionality of a software system.
A written set of steps that should be performed automatically can also be called a test script. Test scripts may be created or automatically generated using test automation tools, or programming language (such as C++, C#, Tcl, Expect, Java, Perl, Python, or more recently, Ruby)
Scripted, or Planned testing has a test planning and design phase, followed by test execution.
In scripted testing, tests are first designed and recorded. Then they may be executed at some later time or by a different tester. Scripted testing is about controlling test execution.
Test Scripts
How to script and test this login? (Functional tests only not security!)
Sample test script 1: Launch the Login screen Enter User-id: xyz Enter Password: pqr Press <Enter> Expected result: login ok Sample test script 2: Launch the Login screen Enter User-id: xyz Enter Password: pqr Click the Login button Expected result: login ok
Sample test script 3: Launch the Login screen Enter User-id: Enter Password: pqr Press <Enter> Expected: login rejected
Sample test script 4: Launch the Login screen Enter User-id: Enter Password: pqr Click the Login button Expected: login rejected
Sample generic test script 1: Launch the Login screen Enter valid User-id Enter valid Password Press <Enter> or click button Expected result: login ok
Sample generic test script 2: Launch the Login screen Enter invalid User-id Enter valid Password Press <Enter> or click button Expected result: login rejected
Input fields: Valid data Invalid data Length > max Length = max +1 Length = max Length = max 1 Combinations of above
Actions: Keyboard Buttons Operations: Add, Modify, Inquiry, Delete What to test for each
Questions?
Thank You!
Exploratory Testing
Do you know me ?
Do you know yourself ?
Explore yourself !
No body is perfect ?
To qualify as exploration a journey had to be credible Had to involve hardship and risk Had to include the novelty of discovery
Exploratory testing is any testing to the extent that the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests
Heuristics
Knowledge Training Explorers
mental packrats who horde memories of every bug theyve seen
Interactive Concurrence of cognition and execution Creativity Drive towards fast results De-emphasize archived testing materials
Test Scripts
In exploratory testing, tests are designed and executed at the same time, and they are not necessarily recorded, but may be.
Test Ideas
Product
Test Scripts
Test Ideas
Product
Test Scripts
Test Ideas
Product
A common goal of exploration is to probe for weak areas of the program When there is little or no specifications and / or requirements When you have little or no domain knowledge When you dont have time to specify, script and test
continued
When the programmer reports that the bug has been fixed
When the tester first gets the product, with or without a specification
It allows more time for testing interesting and complex cases. Its greater efficiency enables the tester to find more bugs in a shorter time period and make a faster assessment It demonstrates an applications ease of use It is adaptable and flexible
Intermittent Bug
Repeating the exact sequence of actions that caused the problem in the first place doesn't cause the failure to reoccur
People
Tools & Techniques
Thank You!