Download Fundamentals of Software Testing: The Test Process and more Lecture notes Software Engineering in PDF only on Docsity!
Chapter 1&2:
Introduction-Fundamentals of Testing
Software Testing
Lecture 2
Fundamental Test Process
Fundamental Test Process The fundamental test process divides into the following basic steps:
- Planning and Control
- Analysis and Design
- Implementation and Execution
- Evaluating exit criteria and Reporting
- Test Closure activities
- Planning and Control PLANNING: i. To determine the scope and risks and identify the objectives of testing. ii. To determine the test approach(A test approach is the test strategy implementation of a project, defines how testing would be carried out.). iii. To implement the test policy and/or the test strategy. iv. To determine the required test resources like people, test environments, PCs, etc. v. To schedule test analysis and design tasks, test implementation, execution and evaluation. vi. To determine the Exit criteria(The conditions that must be met before testing should be concluded.) for this we need to set criteria such as Coverage criteria (amount of testing performed by a set of test cases is Test Coverage).
Entry Criteria, Exit Criteria, Test Coverage
- (^) Entry Criteria: The prerequisites that must be achieved before commencing the testing process OR Specific conditions or on-going activities that must be present before a process can begin.
- (^) Exit Criteria: The conditions that must be met before testing should be concluded OR The specific conditions or on-going activities that should be fulfilled prior to completing the software testing life cycle.
- (^) Test Coverage: I t is a technique to ensure that your tests are actually testing your code or how much of your code you exercised by running the test. ->It helps in finding area of a requirement not implemented by a set of test cases. And also to create additional test cases to increase coverage.
- Analysis and Design i. To review the test basis (source of information or the document that is needed to write test cases and also for test analysis). ii. To identify test conditions. iii. To design the tests cases: determine ‘how’ the identified test conditions are going to be exercised.
iv. To check testability ( This process includes checking the ease with which
interfaces can be addressed (interface openness) and the ease with which the test object can be separated into smaller, more easily testable units. These issues need to be addressed during development and the test object should be designed and programmed accordingly. The results of this analysis are also used to state and prioritize the test conditions based on the general objectives of the test. The test
conditions state exactly what shall be tested. ) of the requirements and system.
v. To design the test environment set-up and identify and required infrastructure and tools
- Implementation and Execution Test Implementation: i. To develop and prioritize our test cases by using techniques and create test data for those tests. ii. To create test suites (It is a container that has a set of tests which helps testers in executing and reporting the test execution status. It can take any of the three states namely Active, In-progress and completed) from the test cases for efficient test execution. Test Scenario/Test Suites Vs Test Case
- Test scenarios are rather unclear and cover a wide range of possibilities. Testing is all about being very specific.
- (^) For a Test Scenario: Check Login Functionality there many possible test cases are: Test Case 1: Check results on entering valid User Id & Password Test Case 2: Check results on entering Invalid User ID & Password Test Case 3: Check response when a User ID is Empty & Login Button is pressed, and many more ) iii. To implement and verify the environment.
- Implementation and Execution Test Execution: i. To execute test suites and individual test cases following the test procedures. ii. To re-execute the tests that previously failed in order to confirm a fix. This is known as confirmation testing or re-testing. iii. To log the outcome of the test execution and record the identities and versions of the software under tests. iv. To Compare actual results with expected results. v. Where there are differences between actual and expected results, it report discrepancies as Incidents.
- Evaluating Exit criteria and Reporting Exit criteria come into picture, when:
- (^) Maximum test cases are executed with certain pass percentage.
- (^) Bug rate falls below certain level.
- (^) When achieved the deadlines. Evaluating exit criteria has the following major tasks: i. To check the test logs(The test log is the file containing the test execution result information tester name, date-time of execution, actual result, Test result (pass/fail). The test log is used to log the relevant details about the execution of each release version test. Its purpose is to share information among testers, users, developers, and others.) against the exit criteria specified in test planning. ii. To assess if more test are needed or if the exit criteria specified should be changed. iii. To write a test summary report for stakeholders.
Logical and concrete test cases Example: Using the sales software, the car dealer is able to define discount rules for his salespeople: With a price of less than $15.000, no discount shall be given. For price of $20.000, 5% is OK. If the price is below $25.000, a 7% discount is possible. For higher prices, 8.5% can be granted.
- (^) Price < 15.000 discount = 0%
- (^) 15.000 <= price >= 20.000 discount = 5%
- 20.000 < price < 25.000 discount = 7%
- (^) price <=25.000 discount = 8.5%
Logical and Concrete Tables
Concrete Test table
Logical Test Table
The Psychology of Testing
The Psychology of Testing
Thank you