Evolving mutation from objects to the cloud

Size: px
Start display at page:

Download "Evolving mutation from objects to the cloud"

Transcription

1 Evolving mutation from objects to the cloud MUTATION workshop, Berlin, March 2011 Benoit Baudry 1

2 Outline A perspective on testing in evolving software construction paradigms A methodological pattern: question-learn-testfeedback An illustration: aspect-oriented programming 2

3 1. The scope of software testing practice and research is broadening 3

4 1. The scope of software testing practice and research is widening 4

5 purpose 1. The scope of software testing practice and research is widening 4

6 beta acceptance system unit purpose regression security integration usability performance 1. The scope of software testing practice and research is widening 4

7 beta acceptance system unit purpose regression security integration usability performance target 1. The scope of software testing practice and research is widening 4

8 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement state target requirements environment mutation The scope of software testing practice and research is widening 4

9 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement state target requirements environment mutation The scope of software testing practice and research is widening techniques 4

10 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement state target requirements environment mutation The scope of software testing practice and research is widening impact analysis test plan prioritization techniques selection data generation conformance 4

11 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software testing practice and research is jobs widening impact analysis test plan prioritization techniques selection data generation conformance 4

12 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4

13 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4

14 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4

15 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4

16 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 5

17 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 6

18 2. because of (i) new ways of building software systems to (ii) face the growing diversity of applications and requirements for software systems 7

19 2. because of (i) new ways of building software systems to 8

20 processes 2. because of (i) new ways of building software systems to 8

21 V-cycle Innovation factory processes CMMI spiral SCRUM 2. because of (i) new ways of building software systems to 8

22 V-cycle Innovation factory processes CMMI spiral SCRUM constraints 2. because of (i) new ways of building software systems to 8

23 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to 8

24 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to languages 8

25 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8

26 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to economics CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8

27 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8

28 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. environments because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8

29 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. environments because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8

30 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. environments because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8

31 (ii) face the growing diversity of applications and requirements for software systems 9

32 (ii) face the growing diversity of applications and requirements for software systems 9

33 (ii) face the growing diversity of applications and requirements for software systems 9

34 (ii) face the growing diversity of applications and requirements for software systems 9

35 (ii) face the growing diversity of applications and requirements for software systems 9

36 (ii) face the growing diversity of applications and requirements for software systems 9

37 (ii) face the growing diversity of applications and requirements for software systems 9

38 3. The identification of core principles underlying this apparent seething landscape is a major challenge for research in software engineering. 10

39 A visual representation Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli. Fundamentals of Software Engineering, 2nd edition

40 Key principles Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli. Fundamentals of Software Engineering, 2nd edition Rigor and formality Separation of concerns Modularity Abstraction Anticipation of change Generality Incrementality 12

41 Research in Software Engineering Peter J. Denning: Is computer science science?. Communications of the ACM, (4): p Science Maths Engineering 13

42 Research in Software Engineering Peter J. Denning: Is computer science science?. Communications of the ACM, (4): p Science Maths Engineering 13

43 Research in Software Engineering Peter J. Denning: Is computer science science?. Communications of the ACM, (4): p Science Maths Engineering 13

44 4. The confrontation of these core principles with the broadening scope of software leads to the emergence of new software construction paradigms 14

45 Software construction paradigms Object-oriented programming Aspect-oriented programming Model-driven development Aspect-oriented modelling Multi-paradigm modelling 15

46 Software testing research for emerging paradigms extends beyond error detection to analyze and include the context imposed by these paradigms 16

47 Agility and Test Driven Development Write unit test refactor Run test è fail Run test è pass Write code 17

48 MDD and MBT Requirements Design models Test model System Test cases 18

49 QLTF pattern Learn Questions tester test(t,j) ack SUT Test Software construction paradigm Feedback 19

50 Mutation in QLTF what can go wrong? what type of errors are we looking for? what can mitigate/increase error risks? Software construction paradigm te S st U er test(t,j) T ack Learn Test Feedback 20

51 Mutation in QLTF Questions Software construction paradigm what are the frequent faults? what usages trigger faults? what practices to detect faults? te S st U ertest(t,j) T ack Test Feedback 21

52 Mutation in QLTF Questions Software construction paradigm tes SU ter test(t,j) T ack how can we assist fault detection? do our techniques detect faults? are new adequacy criteria adequate? Feedback 22

53 Mutation in QLTF te S st test(t,j) U er ack T Learn Test Questions Software construction paradigm how can we prevent faults? how can testability be improved? how can test be integrated in dev. processes? 23

54 Aspect oriented programming 24

55 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); 25

56 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25

57 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... Pointcut descriptor (PCD) aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25

58 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... JoinPoint Pointcut descriptor (PCD) aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25

59 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... JoinPoint Pointcut descriptor (PCD) aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25

60 Bank + login(string, String): + deleteaccount(int); + createaccount(): Account + getaccount(int): Account accounts * Account - balance: int + withdraw(int): + deposit(int): void public aspect AccessControl { pointcut controlledaccess(): execution(* Account.*(int)); A fault in the PCD can have a ripple effect and result in many different before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 26

61 Withdraw 27

62 Faults in PCD Intended Matched 28

63 Faults in PCD correct PCD Intended Matched 28

64 Faults in PCD correct PCD both neglected and unintended Intended Matched 28

65 Faults in PCD correct PCD both neglected and unintended neglected joinpoints Intended Matched 28

66 Faults in PCD correct PCD both neglected and unintended neglected joinpoints unintended joinpoints Intended Matched 28

67 both neglected and unintended pointcut controlledaccess(): execution(* Bank.*(int)); matches deleteaccount() and getaccount() pointcut controlledaccess(): execution( Bank.*(int)); matches deleteaccount() and login() 29

68 neglected joinpoints pointcut controlledaccess(): execution(* Account.*(int)); matches withdraw() and deposit() pointcut controlledaccess(): execution( Account.*(int)); matches withdraw() 30

69 Mutant PCD A PCD where a fault has been inserted Selects a different set of joinpoints Equivalent mutant Mutant that matches the same set of joinpoint Equivalent mutants can be detected statically 31

70 Mutation Operators Operator PCCC PCCE PCGS PCLO PCTT POEC POPL PSWR PWAR PWIW Description Replaces a cflow by a cflowbelow, or the contrary Replaces a call by an execution, or the contrary Replaces a get by a set, or the contrary Changes the logical operators in a composition of PCDs Replaces a this by a target, or the contrary Adds, removes or changes throwing clauses Changes the parameter list Removes wildcards Removes annotation from type, field or method patterns Adds wildcards 32

71 Testing the PCD: an example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 33

72 Testing the PCD: an example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 33

73 Testing the PCD: an example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 33

74 Testing the PCD: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(void before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 34

75 Testing the PCD: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 34

76 Testing the PCD: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 34

77 Testing the PCD: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 35

78 Testing the PCD: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 35

79 Testing the PCD: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 35

80 Testing the PCD: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 36

81 Testing the PCD: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 36

82 Testing the PCD: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 36

83 Crosscutting aspects 38 open source projects: 479 aspects, 522 advices in join-points

84 AdviceTracer: writing PCD specific Oracles AdviceTracer: AspectJ library to write oracles that specifically target the PCD Oracles written with AdviceTracer for one PCD are: Independent from the advices Independent from other PCDs 38

85 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 39

86 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

87 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

88 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

89 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

90 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

91 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

92 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

93 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39

94 AdviceTracer: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(void before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 40

95 AdviceTracer: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 40

96 AdviceTracer: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 40

97 AdviceTracer: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 41

98 AdviceTracer: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 41

99 AdviceTracer: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 41

100 AdviceTracer: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 42

101 AdviceTracer: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 42

102 AdviceTracer: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 42

103 AdviceTracer: example 5 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); // System Test setadvicetraceroff(); assertadviceexecutionequals(4); 43

104 AdviceTracer: example 5 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); // System Test setadvicetraceroff(); assertadviceexecutionequals(4); 43

105 R. Delamare, B. Baudry, S. Ghosh, Y. Le Traon. «An approach for testing pointcut descriptors in AspectJ». Journal of Software Testing, Verification and Reliability,

106 QLTF for AOP usage of PCD Software construction paradigm which faults? tester test(t,j) ack SUT AdviceTracer mutation tool contracts for AOP 45

107 Cloud computing Build order of magnitude bigger systems with order of magnitude less efforts Distribution, communication and synchronization are hidden establish trust in these mechanisms Design applications as atoms and bits reason on pieces of programs understand the interactions between these pieces and the cloud framework 46

108 MapReduce 47

109 Word count 48

110 Word count 49

111 MapReduce application Two independents parts Mapper processes a bit of information; 1-to-1 input/ output sources Reducer processes n mapped bits of information in a global result; n-to-1 I/O sources + configuration, dispatch modules 50

112 Map and reduce modules rely on high level languages low level arithmetic, control, etc. are hidden from the programmer that have been heavily tested i.e., we can trust the iterator Java library framework that abstracts I/O and distribution operations all errors are handled by the framework (e.g., Hadoop) 51

113 MapReduce faults Some faults in map and reduce logic, arithmetic Most of them elsewhere cutting a function in map and reduce is a hard design task understanding the MapReduce framework is hard 52

114 Conclusion New ways of building software require new ways of testing it Mutation analysis can play a central role understanding faults in the methods and techniques focusing testing on relevant defects tailoring testing research questions 53

An Approach for Testing Pointcut Descriptors in AspectJ

An Approach for Testing Pointcut Descriptors in AspectJ An Approach for Testing Pointcut Descriptors in AspectJ Romain Delamare, Benoit Baudry, Sudipto Ghosh, Shashank Gupta, Yves Le Traon To cite this version: Romain Delamare, Benoit Baudry, Sudipto Ghosh,

More information

An AspectJ-enabled Eclipse Runtime Engine - Demonstration at AOSD 04 - Martin Lippert

An AspectJ-enabled Eclipse Runtime Engine - Demonstration at AOSD 04 - Martin Lippert An AspectJ-enabled Eclipse Runtime Engine - Demonstration at AOSD 04 - Martin Lippert lippert@acm.org www.martinlippert.com Motivation Use Eclipse 3.0 RCP to develop enterprise applications Use AspectJ

More information

Introduction to Aspect-Oriented Programming

Introduction to Aspect-Oriented Programming Introduction to Aspect-Oriented Programming Martin Giese Chalmers University of Technology Göteborg, Sweden AOP Course 2003 p.1/44 AspectJ Quick Tour AOP Course 2003 p.2/44 Reminder: Join Points A join

More information

GETTING STARTED WITH ASPECTJ

GETTING STARTED WITH ASPECTJ a GETTING STARTED WITH ASPECTJ An aspect-oriented extension to Java enables plug-and-play implementations of crosscutting. Many software developers are attracted to the idea of AOP they recognize the concept

More information

with Aspect/J 44. Aspect-Oriented Programming Literature [KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.

with Aspect/J 44. Aspect-Oriented Programming Literature [KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. 44. Aspect-Oriented Programming with Aspect/J Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 14-0.9, June 14, 2014

More information

with Aspect/J 24) Aspect-Oriented Programming Literature [KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.

with Aspect/J 24) Aspect-Oriented Programming Literature [KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. 24) Aspect-Oriented Programming with Aspect/J Prof. Dr. Uwe Aßmann Florian Heidenreich Technische Universität Dresden Institut für Software- und Multimediatechnik http//st.inf.tu-dresden.de Version 11-0.1,

More information

Aspect Oriented Programming

Aspect Oriented Programming 1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology

More information

Aspect-Oriented Programming and AspectJ

Aspect-Oriented Programming and AspectJ What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview

More information

AspectScope: An Outline Viewer for AspectJ Programs

AspectScope: An Outline Viewer for AspectJ Programs Vol. 6, No. 9, 2007 AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Tokyo Institute of Technology, Japan Shigeru Chiba, Tokyo Institute of Technology, Japan This paper presents the

More information

A Brief Introduction to Aspect-Oriented Programming. Historical View Of Languages. Procedural language Functional language Object-Oriented language

A Brief Introduction to Aspect-Oriented Programming. Historical View Of Languages. Procedural language Functional language Object-Oriented language A Brief Introduction to Aspect-Oriented Programming Historical View Of Languages Procedural language Functional language Object-Oriented language 1 Acknowledgements Zhenxiao Yang Gregor Kiczales Procedural

More information

A Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages"

A Brief Introduction to Aspect-Oriented Programming Historical View Of Languages A Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages" Procedural language" Functional language" Object-Oriented language" 1 Acknowledgements" Zhenxiao Yang" Gregor Kiczales"

More information

Using Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University

Using Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?

More information

Meta-Program and Meta-Programming

Meta-Program and Meta-Programming Meta-Program and Meta-Programming What is a Meta-Programming? The creation of procedures and programs that automatically construct the definitions of other procedures and programs. First example the Turing

More information

AJDT: Getting started with Aspect-Oriented Programming in Eclipse

AJDT: Getting started with Aspect-Oriented Programming in Eclipse AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten

More information

Study Goals. Evaluation Criteria. Problems with OO Solution. Design Pattern Implementation in Java and AspectJ

Study Goals. Evaluation Criteria. Problems with OO Solution. Design Pattern Implementation in Java and AspectJ DCC / ICEx / UFMG Study Goals Design Pattern Implementation in Java and AspectJ Develop and compare Java and AspectJ implementations of the 23 GoF patterns Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo

More information

Mapping Features to Aspects

Mapping Features to Aspects Mapping Features to Aspects The Road from Crosscutting to Product Lines (Work in Progress) Roberto E. Lopez-Herrejon Computing Laboratory Oxford University 1 Motivation Features Feature Informally: A characteristic

More information

Testing Aspect-Oriented Software

Testing Aspect-Oriented Software Project Report Testing Aspect-Oriented Software Fayezin Islam MSc in Advanced Software Engineering 2006/2007 School of Physical Sciences and Engineering King s College London Supervised by Professor Mark

More information

So, What is an Aspect?

So, What is an Aspect? Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join

More information

The AspectJTM Programming Guide

The AspectJTM Programming Guide Table of Contents The AspectJTM Programming Guide...1 the AspectJ Team...1 Preface...3 Chapter 1. Getting Started with AspectJ...3 Introduction...4 AspectJ Semantics...5 The Dynamic Join Point Model...6

More information

Modular software design with crosscutting interfaces

Modular software design with crosscutting interfaces Computer Science Publications Computer Science 1-2006 Modular software design with crosscutting interfaces W. G. Griswold University of California, San Diego M. Shonle University of California, San Diego

More information

A model-based framework for security policy specification, deployment and testing

A model-based framework for security policy specification, deployment and testing A model-based framework for security policy specification, deployment and testing Tejeddine Mouelhi 1, Franck Fleurey 3, Benoit Baudry 2 and Yves Le Traon 1 1 IT- Telecom Bretagne, France. 2 INRIA/IRISA,

More information

Manual Testing. Software Development Life Cycle. Verification. Mobile Testing

Manual Testing.  Software Development Life Cycle. Verification. Mobile Testing 10 Weeks (Weekday Batches) or 12 Weekends (Weekend batches) To become a Professional Software Tester To enable the students to become Employable Manual Testing Fundamental of Testing What is software testing?

More information

aspect-oriented programming Modular Software Design with Crosscutting Interfaces

aspect-oriented programming Modular Software Design with Crosscutting Interfaces focus aspect-oriented programming Modular Software Design with Crosscutting Interfaces William G. Griswold and Macneil Shonle, University of California, San Diego Kevin Sullivan, Yuanyuan Song, Nishit

More information

aspect-oriented programming Modular Software Design with Crosscutting Interfaces

aspect-oriented programming Modular Software Design with Crosscutting Interfaces focus aspect-oriented programming Modular Software Design with Crosscutting Interfaces William G. Griswold and Macneil Shonle, University of California, San Diego Kevin Sullivan, Yuanyuan Song, Nishit

More information

Motivation. Ability is what you're capable of doing. Motivation determines what you do. Attitude determines how well you do it.

Motivation. Ability is what you're capable of doing. Motivation determines what you do. Attitude determines how well you do it. Aspects in AspectJ Motivation Aspect Oriented Programming: a brief introduction to terminology Installation Experimentation AspectJ some details AspectJ things you should know about but we dont have time

More information

04/06/2013. Study Goals. Design Patterns in AspectJ. Evaluation Criteria. Problems with OO Solution

04/06/2013. Study Goals. Design Patterns in AspectJ. Evaluation Criteria. Problems with OO Solution DCC / ICEx / UFMG Study Goals Design Patterns in AspectJ Develop and compare Java and AspectJ implementations of the 23 GoF patterns Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Aim to keep the

More information

Test Architect A Key Role defined by Siemens

Test Architect A Key Role defined by Siemens Test Architect A Key Role defined by Siemens Siemens Munich, Germany January 30 February 3, 2017 http://www.oop-konferenz.de Agenda Why do we need a Test Architect? What are the responsibilities and tasks

More information

DISCUSSING ASPECTS OF AOP

DISCUSSING ASPECTS OF AOP a DISCUSSING ASPECTS OF AOP How would you define AOP? Gregor Kiczales: Aspect-oriented programming is a new evolution in the line of technology for separation of concerns technology that allows design

More information

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has

More information

Aspect-Oriented Programming and Modular Reasoning

Aspect-Oriented Programming and Modular Reasoning Copyright 2004 Gregor Kiczales, Mira Mezini. All rights reserved. 1 Aspect-Oriented Programming and Modular Reasoning Gregor Kiczales University of British Columbia gregork@acm.org Mira Mezini Technische

More information

LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus

LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus INTRODUCTION This five-day, instructor-led course provides students with the knowledge and skills to effectively

More information

Aspect-Oriented Programming and Modular Reasoning

Aspect-Oriented Programming and Modular Reasoning Aspect-Oriented Programming and Modular Reasoning Gregor Kiczales University of British Columbia 2366 Main Mall Vancouver, BC, Canada gregork@acm.org Mira Mezini Technische Universität Darmstadt Hochschulstrasse

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

Towards Regression Test Selection for AspectJ Programs

Towards Regression Test Selection for AspectJ Programs Towards Regression Test Selection for AspectJ Programs Jianjun Zhao Department of Computer Science and Engineering Shanghai Jiao Tong University 800 Dongchuan Road, Shanghai 200240, China zhao-jj@cs.sjtu.edu.cn

More information

Course 1 October, 9, Adrian Iftene

Course 1 October, 9, Adrian Iftene Course 1 October, 9, 2017 Adrian Iftene adiftene@info.uaic.ro SWEBOK: place and role of software engineering, knowledge areas (KAs), related disciplines Development and maintenance of the systems: model

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming Based on the Example of AspectJ Prof. Harald Gall University of Zurich, Switzerland software evolution & architecture lab AOP is kind of a complicated one for me ( ) the idea

More information

Testing in the Agile World

Testing in the Agile World Testing in the Agile World John Fodeh Solution Architect, Global Testing Practice 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Outline

More information

JML and Aspects: The Benefits of

JML and Aspects: The Benefits of JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for

More information

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info (Complete Package) WEB APP TESTING DB TESTING We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME

More information

Context-oriented Programming. Pascal Costanza (Vrije Universiteit Brussel, Belgium) Robert Hirschfeld (Hasso-Plattner-Institut, Potsdam, Germany)

Context-oriented Programming. Pascal Costanza (Vrije Universiteit Brussel, Belgium) Robert Hirschfeld (Hasso-Plattner-Institut, Potsdam, Germany) Context-oriented Programming Pascal Costanza (Vrije Universiteit Brussel, Belgium) Robert Hirschfeld (Hasso-Plattner-Institut, Potsdam, Germany) Programs are too static! Mobile devices Software agents

More information

Programming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003

Programming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003 Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,

More information

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

Course 7 25 November Adrian Iftene

Course 7 25 November Adrian Iftene Course 7 25 November 2013 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 6 AOP AOP Profiler Tracing Pooling PostSharp Spring Framework Runtime Verification Model Checking MOP Java MOP 2 Concern

More information

Language support for AOP

Language support for AOP Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming Anya Helene Bagge Department of Informatics University of Bergen LRDE Seminar, 26 Mar 2008 Anya Helene Bagge (UiB) Aspect-Oriented Programming LRDE Seminar, 26 Mar 2008 1 /

More information

Klocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect

Klocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect Klocwork Architecture Excavation Methodology Nikolai Mansurov Chief Scientist & Architect Overview Introduction Production of software is evolutionary and involves multiple releases Evolution of existing

More information

Specifying Pointcuts in AspectJ

Specifying Pointcuts in AspectJ Specifying Pointcuts in AspectJ Yi Wang Department of Computer Science Shanghai Jiao Tong University 800 Dongchuan Rd, Shanghai, 200240, China yi_wang@sjtu.edu.cn Jianjun Zhao Department of Computer Science

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming Harald Gall University of Zurich seal.ifi.uzh.ch/ase Source: http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html Programming paradigms Procedural programming

More information

Aspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC

Aspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC Aspect Oriented Programming with AspectJ Ted Leung Sauria Associates, LLC twl@sauria.com Overview Why do we need AOP? What is AOP AspectJ Why do we need AOP? Modular designs are not cut and dried Responsibilities

More information

Test-Driven Development for Aspect-Oriented Programming Progress Report

Test-Driven Development for Aspect-Oriented Programming Progress Report The University of Manchester School of Computer Science MSc in Advanced Computer Science (Software Engineering) Test-Driven Development for Aspect-Oriented Programming Progress Report Andreas Vlachou Supervisor:

More information

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.

More information

Towards A Metrics Suite for Aspect-Oriented Software

Towards A Metrics Suite for Aspect-Oriented Software Towards A Metrics Suite for Aspect-Oriented Software Jianjun Zhao Department of Computer Science and Engineering Fukuoka Institute of Technology 3-30-1 Wajiro-Higashi, Higashi-ku, Fukuoka 811-0295, Japan

More information

APTE: Automated Pointcut Testing for AspectJ Programs

APTE: Automated Pointcut Testing for AspectJ Programs APTE: Automated Pointcut Testing for AspectJ Programs Prasanth Anbalagan Department of Computer Science North Carolina State University Raleigh, NC 27695 panbala@ncsu.edu Tao Xie Department of Computer

More information

Separation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation

Separation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation Separation of Concerns and AspectJ EEC 625 Lecture #16 April 3, 2006 EEC 625: Software Design & Architecture Separation of Concerns Breaking a program into pieces that overlap in functionality as little

More information

JAVA. Aspects (AOP) AspectJ

JAVA. Aspects (AOP) AspectJ JAVA Aspects (AOP) AspectJ AOP Aspect-oriented programming separation of concerns concern ~ a part of program code related to a particular functionality typically understood as an extension of OOP solves

More information

CertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension

CertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension CertifiedAT - Version: 1 ISTQB Certified Agile Tester Foundation Level Extension ISTQB Certified Agile Tester Foundation Level Extension CertifiedAT - Version: 1 3 days Course Description: We are facing

More information

CS5233 Components Models and Engineering

CS5233 Components Models and Engineering CS5233 Components Models and Engineering - Komponententechnologien Master of Science (Informatik) Java Services Seite 1 Services Services Build-in technology Java 6 build-in technology to load services

More information

A CONFUSED TESTER IN AGILE WORLD

A CONFUSED TESTER IN AGILE WORLD A CONFUSED TESTER IN AGILE WORLD QA A LIABILITY OR AN ASSET THIS IS A WORK OF FACTS & FINDINGS BASED ON TRUE STORIES OF ONE & MANY TESTERS!! J Presented By Ashish Kumar, A STORY OF TESTING. WHAT S AHEAD

More information

1. Introduction. 2. Technology concepts

1. Introduction. 2. Technology concepts 1 Table of Contents 1. Introduction...2 2. Technology Concepts...3 2.1. Sharding...4 2.2. Service Oriented Data Architecture...4 2.3. Aspect Oriented Programming...4 3. Technology/Platform-Specific Features...5

More information

Final Paper/Best Practice/Tutorial Advantages OF BDD Testing

Final Paper/Best Practice/Tutorial Advantages OF BDD Testing Final Paper/Best Practice/Tutorial Advantages OF BDD Testing Preeti Khandokar Test Manager Datamatics Global Solutions Ltd Table of Contents Table of Contents... 2 Abstract... 3 Introduction... 3 Solution:...

More information

Refactoring Aspect Oriented Software

Refactoring Aspect Oriented Software Refactoring Aspect Oriented Software Jochem Rutgers rutgers@ewi.utwente.nl ABSTRACT Existing refactoring methods are able to rewrite object-oriented code to better object-oriented code or to aspect-oriented

More information

ISTQB Advanced Level (CTAL)

ISTQB Advanced Level (CTAL) ISTQB Advanced Level (CTAL) 2012 Syllabus - Overview Mike Smith Chairman, Advanced Level Working Group (ALWG) December 2012 Contents 1 2 3 4 5 6 Introduction to ISTQB CTAL 2012: What s changed? CTAL 2012:

More information

A Unit Testing Framework for Aspects without Weaving

A Unit Testing Framework for Aspects without Weaving A Unit Testing Framework for Aspects without Weaving Yudai Yamazaki l01104@sic.shibaura-it.ac.jp Kouhei Sakurai sakurai@komiya.ise.shibaura-it.ac.jp Saeko Matsuura matsuura@se.shibaura-it.ac.jp Hidehiko

More information

Lecture 16 & 17. Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc.

Lecture 16 & 17. Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc. Lecture 16 & 17 Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc. Spring 2009 EE 382V Software Evolution, Instructor Miryung Kim This week s Agenda Presentations:

More information

Information systems modeling. Tomasz Kubik

Information systems modeling. Tomasz Kubik Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components

More information

Systems Analysis and Design in a Changing World, Fourth Edition

Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, 4th Edition Learning Objectives Explain the purpose and various phases of the systems development

More information

Learn Well Technocraft

Learn Well Technocraft -This course includes Manual Testing aspects plus basic automation testing tools. The content included in the syllabus is sufficient for clearing the ISTQB certification. Note: We have combo course and

More information

Bringing QA Into the Agile Process

Bringing QA Into the Agile Process Quality Assurance - SCQAA-OC 2/17/09 Bringing QA Into the Process SCQAA Meeting 2/17/09 Speaker: Paul Hodgetts, Logic, www.logic.com Rev 090217 Your Speaker: Paul Hodgetts Team coach, trainer, consultant,

More information

Question-learn-test-feedback pattern to test emerging software construction paradigms

Question-learn-test-feedback pattern to test emerging software construction paradigms Question-learn-test-feedback pattern to test emerging software construction paradigms Benoit Baudry To cite this version: Benoit Baudry. Question-learn-test-feedback pattern to test emerging software construction

More information

Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming

Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming Fumiya Kato, Kazunori Sakamoto, Hironori Washizaki, and Yoshiaki Fukazawa

More information

Dynamic Aspect Composition using Logic Metaprogramming

Dynamic Aspect Composition using Logic Metaprogramming Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France and Universidad National de La Plata - Argentina 2001-2002 VRIJE UNIVERSITEIT BRUSSEL SCIENTIA

More information

What is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting

What is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting Aspect Oriented Programming Todd A. Whittaker Franklin University whittakt@franklin.edu What is AOP? Addresses crosscutting concerns Requirements analysis leads to identification of concerns in a software

More information

Aspect-Oriented Programming and Aspect-J

Aspect-Oriented Programming and Aspect-J Aspect-Oriented Programming and Aspect-J TDDD05 Ola Leifer Most slides courtesy of Jens Gustafsson and Mikhail Chalabine Outline: Aspect-Oriented Programming New concepts introduced Crosscutting concern

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Object-Oriented

More information

Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs

Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs Prasanth Anbalagan Tao Xie Department of Computer Science, North Carolina State University, NC 27695, USA panbala@ncsu.edu

More information

The Future of Testing: Continuous Enterprise Testing

The Future of Testing: Continuous Enterprise Testing The Future of Testing: Continuous Enterprise Testing ANZTB Test Conference, Canberra, 1 June 2018 Thomas Hadorn. Dev Ops Years Months Months Weeks Delivery Cycle Time Weeks Days Perceived Disruption Software

More information

Shift Left Testing: are you ready? Live Webinar, Sept 19

Shift Left Testing: are you ready? Live Webinar, Sept 19 Shift Left Testing: are you ready? Live Webinar, Sept 19 Guy Arieli CTO, Experitest 01 What exactly is Shift Left? Agenda 02 03 How Shift Left affects application development & testing organizational structures

More information

Automated Acceptance Testing

Automated Acceptance Testing Automated Acceptance Testing Björn Beskow Callista Enterprise AB bjorn.beskow@callista.se http://www.callista.se/enterprise CADEC 2004-01-28, Automated Acceptance Testing, Slide 1 Target audience and Objectives

More information

State-Based Incremental Testing of Aspect-Oriented Programs

State-Based Incremental Testing of Aspect-Oriented Programs State-Based Incremental Testing of Aspect-Oriented Programs Dianxiang Xu Department of Computer Science North Dakota State University Fargo, ND 58105, U.S.A dianxiang.xu@ndsu.edu Weifeng Xu Department

More information

Frustrated by all the hype?

Frustrated by all the hype? Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People

More information

Disciplined Reuse of Aspects State of the Art & Work Plan. André Restivo

Disciplined Reuse of Aspects State of the Art & Work Plan. André Restivo Disciplined Reuse of Aspects State of the Art & Work Plan André Restivo September 4, 2007 Contents 1 Aspect-Oriented Programming 5 1.1 Separation of Concerns........................ 5 1.2 Object-Oriented

More information

Enterprise Informatization LECTURE

Enterprise Informatization LECTURE Enterprise Informatization LECTURE Piotr Zabawa, PhD. Eng. IBM/Rational Certified Consultant e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa/en 07.10.2011 Lecture 7 Aspect-Oriented Programming

More information

More Refactoring s: Aspect Oriented Programming with AspectJ

More Refactoring s: Aspect Oriented Programming with AspectJ More Refactoring s: Aspect Oriented Programming with AspectJ 1 Geeta Bagade, 2 Dr. Shashank Joshi 1 Ph.D. Scholar, 2 Professor/Ph.D Guide Bharati Vidyapeeth, Pune, India ABSTRACT: Even though Object Oriented

More information

The Process of Software Architecting

The Process of Software Architecting IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation Agenda IBM Software Group Rational software Introduction Architecture,

More information

Course 6 7 November Adrian Iftene

Course 6 7 November Adrian Iftene Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP

More information

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016 About Us Incorporated in January, 2003 QA and QC in expertise focused on functional, performance and application security validation HPE Software Gold Partner, HPE Authorized Software Support Partner &

More information

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect How to Harvest Reusable Components in Existing Software Nikolai Mansurov Chief Scientist & Architect Overview Introduction Reuse, Architecture and MDA Option Analysis for Reengineering (OAR) Architecture

More information

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Topic 01. Software Engineering, Web Engineering, agile methodologies. Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,

More information

Parallel Code Smells: A Top 10 List

Parallel Code Smells: A Top 10 List Parallel Code Smells: A Top 10 List Luc Bläser Hochschule für Technik Rapperswil Multicore@Siemens 8 Feb. 2017, Nuremberg Code Smells Symptoms in code Indicators of potential design flaws Partly curable

More information

The software lifecycle and its documents

The software lifecycle and its documents The software lifecycle and its documents Supplementary material for Software Architecture course B. Meyer, May 2006 Lifecycle models Origin: Royce, 1970, Waterfall model Scope: describe the set of processes

More information

Manuel Oriol, CHCRC-C, Software Testing ABB

Manuel Oriol, CHCRC-C, Software Testing ABB Manuel Oriol, CHCRC-C, 08.11.2017 Software Testing Slide 1 About me 1998 2004 2005 2008 2011 Slide 2 Introduction Why do we test? Did you have to deal with testing in the past? Slide 3 Ariane 5 http://www.youtube.com/watch?v=kyurqduyepi

More information

Software Engineering

Software Engineering Software Engineering Lecture 13: Testing and Debugging Testing Peter Thiemann University of Freiburg, Germany SS 2014 Recap Recap Testing detect the presence of bugs by observing failures Recap Testing

More information

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Deepali A. Bhanage 1, Sachin D. Babar 2 Sinhgad Institute of Technology,

More information

Language Oriented Modularity: From Theory to Practice

Language Oriented Modularity: From Theory to Practice Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)

More information

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions Test Automation Strategies in Continuous Delivery Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions The world of application is going through a monumental shift.. Evolving

More information

Weaving Rewrite-Based Access Control Policies

Weaving Rewrite-Based Access Control Policies Weaving Rewrite-Based Access Control Policies Anderson Santana de Oliveira a, Eric Ke Wang ab, Claude Kirchner a, Hélène Kirchner a INRIA & LORIA The University of Hong Kong FMSE, 2007 Oliveira, Wang,

More information

AOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan

AOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan AOP Tutorial Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan Table of Contents 1.0 INTRODUCTION... 3 2.0 SCOPE AND OBJECTIVE... 4 3.0 MOTIVATION... 5 4.0 HISTORY...

More information

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Examples. Object Orientated Analysis and Design. Benjamin Kenwright Examples Object Orientated Analysis and Design Benjamin Kenwright Outline Revision Questions Group Project Review Deliverables Example System Problem Case Studey Group Project Case-Study Example Vision

More information

10. Software Testing Fundamental Concepts

10. Software Testing Fundamental Concepts 10. Software Testing Fundamental Concepts Department of Computer Science and Engineering Hanyang University ERICA Campus 1 st Semester 2016 Testing in Object-Oriented Point of View Error Correction Cost

More information

Lesson Plan for semester Started w.e.f (8 th Sem)

Lesson Plan for semester Started w.e.f (8 th Sem) Lesson Plan for semester Started w.e.f. 01.01.19 (8 th Sem) Subject: Cloud Computing Name of Institute: Seth Jai Parkash Mukand Lal Institute of Engineering & Technology, Radaur Name of teacher with designation:

More information