Software Testing By: tim pengajar 2010/2011 Testing Definition To tell somebody that he is wrong is called criticism. To do so officially is called testing. (softwarefundamentals.com) Signs That You're Dating A Tester Your love letters get returned to you marked up with red ink, highlighting your grammar and spelling mistakes. When you ask him how you look in a dress, he'll actually tell you. He won't help you change a broken light bulb because his job is simply to report and not to fix. He'll keep bringing up old problems that you've since resolved just to make sure that they're truly gone. (http://ajoysingha.info/jokes.aspx) Is this worthed ? Experience Counts There was a software tester who had an exceptional gift for finding bugs. After serving his company for many years, he happily retired. Several years later, the company contacted him regarding a bug in a multi- million-dollar application which no one in the company was able to reproduce. They tried for many days to replicate the bug but without success. In desperation, they called on the retired software tester and after much persuasion he reluctantly took the challenge. He came to the company and started studying the application. Within an hour, he provided the exact steps to reproduce the problem and left. The bug was then fixed. Later, the company received a bill for $50,000 from the software tester for his service. The company was stunned with the exorbitant bill for such a short duration of service and demanded an itemized accounting of his charges. The software tester responded with the itemization: Bug Report: $1 Knowing where to look: $49,999 Software Testing Definition To check the quality of software by performing experiments in controlled way Why are we testing ? spec construction deliver accept exploit & use destroy system acceptance test test quality? test it ! Testing as measurement for software quality Software quality as a measure to predict future operation: ◦ reliability, dependability ◦ expected value, expected costs, probability of failure ◦ Risk probability of failure expected cost of failure Who test the software ? A Strategic Approach to SW Testing Verification and validation (V&V) Verifications: Are we building the product right? Validation: Are we building the right product? More on V & V Validation The process of checking whether the system being built is what the customer expects or needs Verification The process of checking any deliverable of the software process meets defined needs or requirements Organizing for SW Testing A software testing strategy for conventional software architectures V model Spiral model V-Model Testing Unit testing Spiral Model •Code Integration Testing •Design Validation Testing •Requirement System Testing •System Engine Testing Strategy Webegin by ‘testing-in-the-small’ and move toward ‘testing-in-the-large’ For conventional software The module (component) is our initial focus Integration of modules follows Types of Testing Level of detail system integration module unit Accessibility security robustness white box black box performance usability reliability functional behaviour Characteristics Unit Testing Unit Testing Unit Testing Process Test Test Test Test Cases Data Reports Results Prepare Test Run Compare Results Design Test Data Program to test cases Cases with Test Data From Textbook: Ian Sommerville, Software Engineering, 6th Edition Goals of unit testing Verifycode against interface and functional specifications Check both “good” and “bad” inputs against design and code implementation Check all possible paths of execution through code Example of unit testing Integration Testing Integration Testing Tests complete systems or subsystems composed of integrated components Integration testing should be black-box testing with tests derived from the specification Main difficulty is localising errors Incremental integration testing reduces this problem Top Down Integration Bottom-up Integration Sandwich Testing Validation Testing Validation test criteria All functional, all nonfunctional Configuration review (auditing) Ensures that all system elements have been properly documented Alpha/beta testing System Testing Recovery testing Forces the software to crash and shows the adequacy of recovery E.g., use the back bottom after submitting the credit card information Security testing Tests adequacy of system protection mechanisms E.g., how does the website authenticate users? System Testing (2) Stress testing/load testing Subjecting the system to varying and maximum loads to evaluate the resulting performance E.g., how can you overwhelm the system? Performance testing Used to evaluate system performance under normal and heavy usage E.g., how long should a task take? More on Stress testing Exercises the system beyond its maximum design load. ◦ Stressing the system often causes defects to come to light Stressing the system test failure behaviour. ◦ Systems should not fail catastrophically. ◦ checks for unacceptable loss of service or data Particularly relevant to distributed systems ◦ exhibit severe degradation as a network becomes overloaded Who is who ? A Project Manager is the one who thinks 9 women can deliver a baby in 1 month. An Onsite Coordinator is the one who thinks 1 woman can deliver 9 babies in 1 month. A Developer is the one who thinks it will take 18 months to deliver 1 baby. A Marketing Manager is the one who thinks he can deliver a baby even if no man and woman are available. A Client is the one who doesn't know why he wants a baby. A Tester is the one who always tells his wife that this is not the right baby. Thank You..
Pages to are hidden for
"Software Testing - IT Telkom"Please download to view full document