View
7
Download
0
Category
Preview:
Citation preview
Barbara RussoSwSE - Software and Systems Engineering Research Group
1
Basic Principles of analysis and testing software
2
Basic principles of analysis and testing
3
Sensitivity
4
Sensitivity
5
Example in Java
6
Example in Java
7
Fail fast
8
Two scenarios
9
/* import what you need*/public class FailFastExample{
public static void main(String[] args){Map<String,String> premiumPhone = new HashMap<String,String>();premiumPhone.put("Apple", "iPhone");premiumPhone.put("HTC", "HTC one");premiumPhone.put("Samsung","S5");Iterator iterator = premiumPhone.keySet().iterator();while (iterator.hasNext()){
System.out.println(premiumPhone.get(iterator.next()));premiumPhone.put("Sony", "Xperia Z");
}} }
Example
10
iPhone Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)at java.util.HashMap$KeyIterator.next(Unknown Source)at FailFastExample.main(FailFastExample.java:xx)
Output
11
Fail safe
12
Fail safe
13
/* import what you need*/public class FailSafeExample{
public static void main(String[] args{ ConcurrentHashMap<String,String> premiumPhone = new
ConcurrentHashMap<String,String>();premiumPhone.put("Apple", "iPhone");premiumPhone.put("HTC", "HTC one");premiumPhone.put("Samsung","S5");Iterator iterator = premiumPhone.keySet().iterator();while (iterator.hasNext()) {
System.out.println(premiumPhone.get(iterator.next()));premiumPhone.put("Sony", "Xperia Z"); }
}
Example
14
Output
15
Differences
Fail Fast Iterator Fail Safe Iterator
Throw ConcurrentModification Exception
Yes No
Clone object No Yes
Memory Overhead No Yes
Examples HashMap,Vector,ArrayList,HashSet
CopyOnWriteArrayList,ConcurrentHashMap
16
Other examples in testing
17
Redundancy
18
Redundancy
19
Examples
20
Restriction
21
Substituting principle
22
Examples
24
static void questionable(){int k; for(int i=0; i<10;i++){
if(someCondition(i)){ k=0;
} }
}
Example
25
Example
26
Example
27
Partition
28
Example
29
Example
30
userqueries
numericaldata
output format requests
responsesto prompts
command key input
mouse picks on menuPartitioning is basedon input conditions
Equivalence partitioning
32
Visibility
33
Models
34
Control Flow Graphs
35
Feedback
36
Examples
37
Examples
Recommended