SlideShare a Scribd company logo
Amin Milani Fard
Directed Model Inference for Testing
and Analysis of Web Applications
University of British Columbia
Oct 2015
http://www.knowdiff.net/
Modern Web Applications
2
3
4
Manual Testing and Maintenance
5
Incomplete
6
Test Model
Generation
Test Case
Generation
Unit Test Fixture
Generation
Code
Maintenance
P1. Test Model Generation
• In model-based testing, models of program behaviour are
used to generate test cases.
• Dynamic analysis and exploration (crawling) derives test
models for many automated testing techniques.
7
Most industrial web applications have a huge state-space.
Exhaustive crawling (BFS, DFS, or random search), can
cause the state explosion problem.
Given a limited time, exhaustive crawlers can become mired
in specific parts of the application, yielding poor coverage.
8
Covering the whole app is infeasible in a limited time, so …
RQ1. How can we derive test models for web applications
more effectively compared to exhaustive exploration
methods?
9
Amin Milani Fard, Ali Mesbah
Feedback-Directed Exploration of Web
Applications to Derive Test Models
24th IEEE International Symposium on
Software Reliability Engineering (ISSRE), 2013
Test Model Generation
We consider 4 properties for a test model:
• Functionality Coverage: The amount of code coverage
• Navigational Coverage: The amount of covering different
navigational branches
• Page Structural Coverage: The amount of covering heterogeneous
DOM structures
• Size: The number of edges in the SFG
How can we infer a model satisfying all these?
11
Feedback-directed Exploration
• FeedEx uses the feedback obtained to predict
(1) which states should be expanded next
(2) in which order events should be executed
• Repeat until a time/state limit
• Take the crawler to state s with highest state score
• Execute the fittest event on s based on event score
12
State score is a combination of
• Code Coverage Impact: The amount of code coverage
increase
• Path Diversity: The diversity (not sharing) of two paths
• DOM Diversity: The diversity (dissimilarity) of two DOM trees
Event Score
• Event Productivity Ratio: Unexecuted events first. Penalize
events that result in an already discovered state, e.g. self-
loops.
13
Evaluation and Results
• Objects: 6 open-source JavaScript web apps
• Fixed time: 5 minutes, no limitations on: depth, number of states
17
0%
12%
24%
36%
48%
60%
Coverage
0
0
0
0
0
DOM Diversity
0
0
0
0
1
Path Diversity
0
150
300
450
600
750
Test Model Size Test Suite Size
DFS BFS RND FeedEx
10-28% imp 7-4000% imp 23-130% imp
38-86% imp 42-61% imp
18
DOM-based Testing
19
Crawling automates testing by exploring more states, but is limited in:
• Proper input values
• Choosing paths to explore
• Generating effective assertions
RQ2. Can we utilize the knowledge in existing tests to generate new
tests?
20
P2. Test Case Generation
Amin Milani Fard, Mehdi Mirzaaghaei, Ali Mesbah
Leveraging Existing Tests in
Automated
Test Generation for Web Applications
29th IEEE/ACM International Conference on
Automated Software Engineering (ASE), 2014
Combining Manual and Automated Tests
- Input data and sequence
- DOM elements to be
asserted
23
- Automated crawling
- Automated test case
generation
24
Generated
test cases
Testilizer idea
Extended State-Flow
Graph
Initial State-Flow Graph
Human-written
test cases
Exploring Alternative Paths
25
• Remain close to the manual-test paths
Initial State-Flow
Graph
Extended State-Flow
Graph
Regenerating Assertions
27
(1) Reusing the same assertion
(2) Regenerating assertions for exact DOM element/region
match
(3) Generating assertions for similar DOM region match
Assertion Reuse
An assertion on a shared state can be reused for a new test
case.
28
Assertion Regeneration
Repetition-based assertion regeneration
1. exact element-based assertions
2. exact region-based assertions
29
Checked Element
Checked Element Region
Generating Similar Region Assertions
Inexact element/region repetition of a checked element/region can also
be important for testing.
A classification problem:
• Is a block level DOM element important to be checked by an assertion?
30
<div id="header">
<div id="nav">
<div id="footer">
<div id="article"> <div
id="sidebar"
><div id="section">
<div id="header">
<div id="nav">
<div id="footer">
<span id="main"> <span
id="menu
e">
<span id="content">
33
• 150% imp over the original test suite
• 170% imp over the random assertion (RND) & exploration (RAND)
• 37% imp over the random assertion (RND)
While code coverage was not our main goal
• 30% imp over the original test suite
• 18% imp over the random exploration
0%
7%
13%
20%
26%
33%
Fault Detection Rate
ORIG RAND + RND EXND + RND Testilizer
Evaluation and Results
P3. Unit Test Fixture Generation
If an expected DOM element (test fixture) is not present, a
JavaScript unit test may throw an exception or produce an
incorrect result.
36
Test fixtures define states of the test
environment before the test.
38
Proper DOM-based fixtures are required to achieve high
coverage.
RQ3. How can we automate fixture generation for unit
testing?
Challenges
(1) DOM-related variables
(2) Hierarchical DOM relations
40
Amin Milani Fard, Ali Mesbah, Eric Wohlstadter
Generating Fixtures for JavaScript
Unit Testing
30th IEEE/ACM International Conference on
Automated Software Engineering (ASE), 2015
Apply the new
fixture on DOM
Unit Test
42
ConFix idea
Instrument the code Instrumented Code
JavaScript Code
+
Function under
test (FUT)
Solve constraints and
generate a fixture
Collect exec trace
and deduce DOM-
based constraints
Execute the FUT
Instrumentation
trace = [];
function confixWrapper(statementType, statement, varList, varValueList, enclosingFunction, actualStatement) {
trace.push({statementType: statementType, statement: statement, varList: varList, varValueList: varValueList, enclosingFunction:
enclosingFunction, actualStatement: actualStatement});
return actualStatement;
}
function getConfixTrace() {
return trace;
}
function dg(x) {
return confixWrapper("return", "return confixWrapper("functionCall", "document.getElementById(x)", ["x"], [x], "dg",
document.getElementById(x));", [""], [], "dg", confixWrapper("functionCall", "document.getElementById(x)", ["x"], [x], "dg",
document.getElementById(x)));
}
function sumTotalPrice() {
sum = confixWrapper("infix", "sum = 0", [""], [], "sumTotalPrice", 0);
itemList = confixWrapper("infix", "itemList = confixWrapper("functionCall", "dg('items')", ["items"], ['items'],
"sumTotalPrice", dg('items'))", [""], [], "sumTotalPrice", confixWrapper("functionCall", "dg('items')", ["items"], ['items'],
"sumTotalPrice", dg('items')));
if (confixWrapper("condition", "itemList.children.length === 0", [""], [], "sumTotalPrice", itemList.children.length === 0))
confixWrapper("functionCall", "dg('message')", ["message"], ['message'], "sumTotalPrice", dg('message')).innerHTML =
confixWrapper("infix", "confixWrapper("functionCall", "dg('message')", ["message"], ['message'], "sumTotalPrice",
dg('message')).innerHTML = "Item list is empty!"", [""], [], "sumTotalPrice", "Item list is empty!"); else {
for (i = confixWrapper("infix", "i = 0", [""], [], "sumTotalPrice", 0); confixWrapper("loopCondition", "i <
itemList.children.length", ["i", "itemList"], [i, itemList], "sumTotalPrice", i < itemList.children.length); i++)
{
p = confixWrapper("infix", "p = itemList.children[i].value", ["itemList.children[i]"], [itemList.children[i]],
"sumTotalPrice", itemList.children[i].value);
if (confixWrapper("condition", "p > 0", [""], [], "sumTotalPrice", p > 0))
sum += p; else confixWrapper("functionCall", "dg('message')", ["message"], ['message'], "sumTotalPrice",
dg('message')).innerHTML += " Wrong value for item " + i;
}
confixWrapper("functionCall", "dg('total')", ["total"], ['total'], "sumTotalPrice", dg('total')).value = confixWrapper("infix",
"confixWrapper("functionCall", "dg('total')", ["total"], ['total'], "sumTotalPrice", dg('total')).value = sum", [""], [],
"sumTotalPrice", sum);
}
44
45
(1) Extract DOM-based
Constraints
(2) Transform them into XPath
(3) Solve it using an available
XML XPath solver
46
47
Evaluation and Result
• Up to 67% imp in statement
coverage
• Up to 300% imp in branch
coverage
P4. Code Maintenance
• JavaScript is challenging to maintain.
• Code smells adversely influence
program comprehension and
maintainability.
• Code smells detection is time
consuming.
49
RQ4. Which JavaScript code smells are prevalent in practice
and how can we support automated code refactoring?
Amin Milani Fard, Ali Mesbah
JSNose: Detecting JavaScript Code
Smells
13th IEEE International Conference on Source Code
Analysis and Manipulation (SCAM), 2013
JavaScript Code Smell Detection
51
Static and dynamic code analysis is
used to monitor and infer information
about objects, functions, and code
blocks.
54
Evaluation and Results
• Evaluated 11 JavaScript/Ajax web applications.
• Effective code smells detection (93% precision, 98% recall)
• Lazy object, long method/function, closure smells,
JS/HTML/CSS coupling, and excessive global variables, are
the most prevalent smells.
• Strong, and significant +correlation between {LOC, #
functions, # JS files, and CC} and the types of smells, and
weaker correlation with the # smell instances.
55
Some topics to work on
• Applying learned tests on similar applications
• Generating unit tests based on client-side code similarity
and DOM-based tests based on DOM sate similarity
• JavaScript code refactoring
• Suggesting and applying refactoring for code smells
• Understanding test failures and root causes
• Generating integrated tests using existing unit tests
56
Test Model
Generation
Test Case
Generation
Unit Test Fixture
Generation
Code
Maintenance
Ad

More Related Content

What's hot (20)

Software testing lab manual
Software testing lab manualSoftware testing lab manual
Software testing lab manual
Tanzeem Syed
 
First QTP Tutorial
First QTP TutorialFirst QTP Tutorial
First QTP Tutorial
tjdhans
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talk
Abhik Roychoudhury
 
Towards a Better Understanding of the Impact of Experimental Components on De...
Towards a Better Understanding of the Impact of Experimental Components on De...Towards a Better Understanding of the Impact of Experimental Components on De...
Towards a Better Understanding of the Impact of Experimental Components on De...
Chakkrit (Kla) Tantithamthavorn
 
QTP Power Point Presentation
QTP Power Point PresentationQTP Power Point Presentation
QTP Power Point Presentation
SVRTechnologies
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth Round
Annibale Panichella
 
TBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program RepairTBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program Repair
Dongsun Kim
 
Multi-Objective Cross-Project Defect Prediction
Multi-Objective Cross-Project Defect PredictionMulti-Objective Cross-Project Defect Prediction
Multi-Objective Cross-Project Defect Prediction
Sebastiano Panichella
 
Qtp 9.5 Tutorials by www.onsoftwaretest.com
Qtp 9.5 Tutorials by www.onsoftwaretest.comQtp 9.5 Tutorials by www.onsoftwaretest.com
Qtp 9.5 Tutorials by www.onsoftwaretest.com
onsoftwaretest
 
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Lionel Briand
 
What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.
Confiz
 
QTP Slides Presentation.
QTP Slides Presentation.QTP Slides Presentation.
QTP Slides Presentation.
tjdhans
 
Hp Quick Test Professional
Hp Quick Test ProfessionalHp Quick Test Professional
Hp Quick Test Professional
sunny.deb
 
Unit tests and TDD
Unit tests and TDDUnit tests and TDD
Unit tests and TDD
Roman Okolovich
 
Impact of Tool Support in Patch Construction
Impact of Tool Support in Patch ConstructionImpact of Tool Support in Patch Construction
Impact of Tool Support in Patch Construction
Dongsun Kim
 
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
Sung Kim
 
LSRepair: Live Search of Fix Ingredients for Automated Program Repair
LSRepair: Live Search of Fix Ingredients for Automated Program RepairLSRepair: Live Search of Fix Ingredients for Automated Program Repair
LSRepair: Live Search of Fix Ingredients for Automated Program Repair
Dongsun Kim
 
Automock: Interaction-Based Mock Code Generation
Automock: Interaction-Based Mock Code GenerationAutomock: Interaction-Based Mock Code Generation
Automock: Interaction-Based Mock Code Generation
Sabrina Souto
 
10 software testing_technique
10 software testing_technique10 software testing_technique
10 software testing_technique
University of Computer Science and Technology
 
Interview questions in qtp
Interview questions in qtpInterview questions in qtp
Interview questions in qtp
Ramu Palanki
 
Software testing lab manual
Software testing lab manualSoftware testing lab manual
Software testing lab manual
Tanzeem Syed
 
First QTP Tutorial
First QTP TutorialFirst QTP Tutorial
First QTP Tutorial
tjdhans
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talk
Abhik Roychoudhury
 
Towards a Better Understanding of the Impact of Experimental Components on De...
Towards a Better Understanding of the Impact of Experimental Components on De...Towards a Better Understanding of the Impact of Experimental Components on De...
Towards a Better Understanding of the Impact of Experimental Components on De...
Chakkrit (Kla) Tantithamthavorn
 
QTP Power Point Presentation
QTP Power Point PresentationQTP Power Point Presentation
QTP Power Point Presentation
SVRTechnologies
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth Round
Annibale Panichella
 
TBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program RepairTBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program Repair
Dongsun Kim
 
Multi-Objective Cross-Project Defect Prediction
Multi-Objective Cross-Project Defect PredictionMulti-Objective Cross-Project Defect Prediction
Multi-Objective Cross-Project Defect Prediction
Sebastiano Panichella
 
Qtp 9.5 Tutorials by www.onsoftwaretest.com
Qtp 9.5 Tutorials by www.onsoftwaretest.comQtp 9.5 Tutorials by www.onsoftwaretest.com
Qtp 9.5 Tutorials by www.onsoftwaretest.com
onsoftwaretest
 
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Lionel Briand
 
What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.
Confiz
 
QTP Slides Presentation.
QTP Slides Presentation.QTP Slides Presentation.
QTP Slides Presentation.
tjdhans
 
Hp Quick Test Professional
Hp Quick Test ProfessionalHp Quick Test Professional
Hp Quick Test Professional
sunny.deb
 
Impact of Tool Support in Patch Construction
Impact of Tool Support in Patch ConstructionImpact of Tool Support in Patch Construction
Impact of Tool Support in Patch Construction
Dongsun Kim
 
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
Sung Kim
 
LSRepair: Live Search of Fix Ingredients for Automated Program Repair
LSRepair: Live Search of Fix Ingredients for Automated Program RepairLSRepair: Live Search of Fix Ingredients for Automated Program Repair
LSRepair: Live Search of Fix Ingredients for Automated Program Repair
Dongsun Kim
 
Automock: Interaction-Based Mock Code Generation
Automock: Interaction-Based Mock Code GenerationAutomock: Interaction-Based Mock Code Generation
Automock: Interaction-Based Mock Code Generation
Sabrina Souto
 
Interview questions in qtp
Interview questions in qtpInterview questions in qtp
Interview questions in qtp
Ramu Palanki
 

Viewers also liked (20)

DOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web ApplicationsDOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web Applications
SALT Lab @ UBC
 
Dompletion: DOM-Aware JavaScript Code Completion
Dompletion: DOM-Aware JavaScript Code CompletionDompletion: DOM-Aware JavaScript Code Completion
Dompletion: DOM-Aware JavaScript Code Completion
SALT Lab @ UBC
 
Understanding JavaScript Event-based Interactions
Understanding JavaScript Event-based InteractionsUnderstanding JavaScript Event-based Interactions
Understanding JavaScript Event-based Interactions
SALT Lab @ UBC
 
Mining Questions Asked by Web Developers
Mining Questions Asked by Web DevelopersMining Questions Asked by Web Developers
Mining Questions Asked by Web Developers
SALT Lab @ UBC
 
DWTT Quiet Achiever of the Year 2015
DWTT Quiet Achiever of the Year 2015DWTT Quiet Achiever of the Year 2015
DWTT Quiet Achiever of the Year 2015
Alfredo Jr. Hurtado
 
Hidden-Web Induced by Client-Side Scripting: An Empirical Study
Hidden-Web Induced by Client-Side Scripting: An Empirical StudyHidden-Web Induced by Client-Side Scripting: An Empirical Study
Hidden-Web Induced by Client-Side Scripting: An Empirical Study
SALT Lab @ UBC
 
The Engineering World Of Thermoplastic Piping
The Engineering World Of Thermoplastic PipingThe Engineering World Of Thermoplastic Piping
The Engineering World Of Thermoplastic Piping
blenrayaust
 
Modal Analysis
Modal AnalysisModal Analysis
Modal Analysis
vaibhavd85
 
6. Thermal behaviour (heat exchange in buildings)
6. Thermal behaviour (heat exchange in buildings)6. Thermal behaviour (heat exchange in buildings)
6. Thermal behaviour (heat exchange in buildings)
Rohit Kumar
 
ISTQB / ISEB Foundation Exam Practice - 4
ISTQB / ISEB Foundation Exam Practice - 4ISTQB / ISEB Foundation Exam Practice - 4
ISTQB / ISEB Foundation Exam Practice - 4
Yogindernath Gupta
 
ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5
Yogindernath Gupta
 
Fracture Mechanics & Failure Analysis: Griffith theory of brittle fracture
Fracture Mechanics & Failure Analysis: Griffith theory of brittle fractureFracture Mechanics & Failure Analysis: Griffith theory of brittle fracture
Fracture Mechanics & Failure Analysis: Griffith theory of brittle fracture
NED University of Engineering and Technology
 
3. Principles of thermal design
3. Principles of thermal design3. Principles of thermal design
3. Principles of thermal design
Rohit Kumar
 
Fracture Mechanics & Failure Analysis: Lecture Fatigue
Fracture Mechanics & Failure Analysis: Lecture FatigueFracture Mechanics & Failure Analysis: Lecture Fatigue
Fracture Mechanics & Failure Analysis: Lecture Fatigue
NED University of Engineering and Technology
 
DIFFERENTIAL THERMAL ANALYSIS (DTA), ppt
DIFFERENTIAL THERMAL ANALYSIS (DTA),  pptDIFFERENTIAL THERMAL ANALYSIS (DTA),  ppt
DIFFERENTIAL THERMAL ANALYSIS (DTA), ppt
shaisejacob
 
Difference between code, standard & Specification
Difference between code, standard & SpecificationDifference between code, standard & Specification
Difference between code, standard & Specification
Varun Patel
 
Fatigue testing
Fatigue testing Fatigue testing
Fatigue testing
BIPIN KUMAR MISHRA
 
Thermal analysis
Thermal analysisThermal analysis
Thermal analysis
Prof. Dr. Basavaraj Nanjwade
 
Thermogravimetry Analysis (TGA)
Thermogravimetry Analysis (TGA)Thermogravimetry Analysis (TGA)
Thermogravimetry Analysis (TGA)
Kalsoom Mohammed
 
Differential thermal analysis & Differential Scanning Calorimetry
Differential thermal analysis & Differential Scanning CalorimetryDifferential thermal analysis & Differential Scanning Calorimetry
Differential thermal analysis & Differential Scanning Calorimetry
samira mohammadpour
 
DOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web ApplicationsDOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web Applications
SALT Lab @ UBC
 
Dompletion: DOM-Aware JavaScript Code Completion
Dompletion: DOM-Aware JavaScript Code CompletionDompletion: DOM-Aware JavaScript Code Completion
Dompletion: DOM-Aware JavaScript Code Completion
SALT Lab @ UBC
 
Understanding JavaScript Event-based Interactions
Understanding JavaScript Event-based InteractionsUnderstanding JavaScript Event-based Interactions
Understanding JavaScript Event-based Interactions
SALT Lab @ UBC
 
Mining Questions Asked by Web Developers
Mining Questions Asked by Web DevelopersMining Questions Asked by Web Developers
Mining Questions Asked by Web Developers
SALT Lab @ UBC
 
DWTT Quiet Achiever of the Year 2015
DWTT Quiet Achiever of the Year 2015DWTT Quiet Achiever of the Year 2015
DWTT Quiet Achiever of the Year 2015
Alfredo Jr. Hurtado
 
Hidden-Web Induced by Client-Side Scripting: An Empirical Study
Hidden-Web Induced by Client-Side Scripting: An Empirical StudyHidden-Web Induced by Client-Side Scripting: An Empirical Study
Hidden-Web Induced by Client-Side Scripting: An Empirical Study
SALT Lab @ UBC
 
The Engineering World Of Thermoplastic Piping
The Engineering World Of Thermoplastic PipingThe Engineering World Of Thermoplastic Piping
The Engineering World Of Thermoplastic Piping
blenrayaust
 
Modal Analysis
Modal AnalysisModal Analysis
Modal Analysis
vaibhavd85
 
6. Thermal behaviour (heat exchange in buildings)
6. Thermal behaviour (heat exchange in buildings)6. Thermal behaviour (heat exchange in buildings)
6. Thermal behaviour (heat exchange in buildings)
Rohit Kumar
 
ISTQB / ISEB Foundation Exam Practice - 4
ISTQB / ISEB Foundation Exam Practice - 4ISTQB / ISEB Foundation Exam Practice - 4
ISTQB / ISEB Foundation Exam Practice - 4
Yogindernath Gupta
 
ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5
Yogindernath Gupta
 
3. Principles of thermal design
3. Principles of thermal design3. Principles of thermal design
3. Principles of thermal design
Rohit Kumar
 
DIFFERENTIAL THERMAL ANALYSIS (DTA), ppt
DIFFERENTIAL THERMAL ANALYSIS (DTA),  pptDIFFERENTIAL THERMAL ANALYSIS (DTA),  ppt
DIFFERENTIAL THERMAL ANALYSIS (DTA), ppt
shaisejacob
 
Difference between code, standard & Specification
Difference between code, standard & SpecificationDifference between code, standard & Specification
Difference between code, standard & Specification
Varun Patel
 
Thermogravimetry Analysis (TGA)
Thermogravimetry Analysis (TGA)Thermogravimetry Analysis (TGA)
Thermogravimetry Analysis (TGA)
Kalsoom Mohammed
 
Differential thermal analysis & Differential Scanning Calorimetry
Differential thermal analysis & Differential Scanning CalorimetryDifferential thermal analysis & Differential Scanning Calorimetry
Differential thermal analysis & Differential Scanning Calorimetry
samira mohammadpour
 
Ad

Similar to Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Applications (20)

Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0
Lars Albertsson
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
LogeekNightUkraine
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
Droidcon Berlin
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
Test strategy for web development
Test strategy for web developmentTest strategy for web development
Test strategy for web development
alice yang
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Ukraine
 
Static Analysis
Static AnalysisStatic Analysis
Static Analysis
alice yang
 
Software testing mtech project in ludhiana
Software testing mtech project in ludhianaSoftware testing mtech project in ludhiana
Software testing mtech project in ludhiana
deepikakaler1
 
Software testing mtech project in jalandhar
Software testing mtech project in jalandharSoftware testing mtech project in jalandhar
Software testing mtech project in jalandhar
deepikakaler1
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applications
Porfirio Tramontana
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
ersanbilik
 
Unit testing - A&BP CC
Unit testing - A&BP CCUnit testing - A&BP CC
Unit testing - A&BP CC
JWORKS powered by Ordina
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
Lionel Briand
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017
XavierDevroey
 
Software testing
Software testingSoftware testing
Software testing
Enamul Haque
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Pavneet Singh Kochhar
 
Enabling Automated Software Testing with Artificial Intelligence
Enabling Automated Software Testing with Artificial IntelligenceEnabling Automated Software Testing with Artificial Intelligence
Enabling Automated Software Testing with Artificial Intelligence
Lionel Briand
 
Shuvam dutta
Shuvam duttaShuvam dutta
Shuvam dutta
Shuvam Dutta
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Engineering Software Lab
 
Shuvam dutta | Performance tester
Shuvam dutta | Performance testerShuvam dutta | Performance tester
Shuvam dutta | Performance tester
Shuvam Dutta
 
Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0
Lars Albertsson
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
LogeekNightUkraine
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
Droidcon Berlin
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
Test strategy for web development
Test strategy for web developmentTest strategy for web development
Test strategy for web development
alice yang
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Ukraine
 
Static Analysis
Static AnalysisStatic Analysis
Static Analysis
alice yang
 
Software testing mtech project in ludhiana
Software testing mtech project in ludhianaSoftware testing mtech project in ludhiana
Software testing mtech project in ludhiana
deepikakaler1
 
Software testing mtech project in jalandhar
Software testing mtech project in jalandharSoftware testing mtech project in jalandhar
Software testing mtech project in jalandhar
deepikakaler1
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applications
Porfirio Tramontana
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
ersanbilik
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
Lionel Briand
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017
XavierDevroey
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Pavneet Singh Kochhar
 
Enabling Automated Software Testing with Artificial Intelligence
Enabling Automated Software Testing with Artificial IntelligenceEnabling Automated Software Testing with Artificial Intelligence
Enabling Automated Software Testing with Artificial Intelligence
Lionel Briand
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Engineering Software Lab
 
Shuvam dutta | Performance tester
Shuvam dutta | Performance testerShuvam dutta | Performance tester
Shuvam dutta | Performance tester
Shuvam Dutta
 
Ad

More from knowdiff (17)

Ut talk feb 2017
Ut talk   feb 2017Ut talk   feb 2017
Ut talk feb 2017
knowdiff
 
Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...
Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...
Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...
knowdiff
 
Scheduling for cloud systems with multi level data locality
Scheduling for cloud systems with multi level data localityScheduling for cloud systems with multi level data locality
Scheduling for cloud systems with multi level data locality
knowdiff
 
Knowledge based economy and power of crowd sourcing
Knowledge based economy and power of crowd sourcing Knowledge based economy and power of crowd sourcing
Knowledge based economy and power of crowd sourcing
knowdiff
 
Amin tayyebi: Big Data and Land Use Change Science
Amin tayyebi: Big Data and Land Use Change ScienceAmin tayyebi: Big Data and Land Use Change Science
Amin tayyebi: Big Data and Land Use Change Science
knowdiff
 
Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...
Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...
Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...
knowdiff
 
Sara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time Systems
Sara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time SystemsSara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time Systems
Sara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time Systems
knowdiff
 
Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...
Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...
Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...
knowdiff
 
Narjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objectsNarjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objects
knowdiff
 
Computational methods applications in air pollution modeling (Dr. Yadghar)
Computational methods applications in air pollution modeling (Dr. Yadghar)Computational methods applications in air pollution modeling (Dr. Yadghar)
Computational methods applications in air pollution modeling (Dr. Yadghar)
knowdiff
 
Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...
Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...
Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...
knowdiff
 
Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)
Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)
Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)
knowdiff
 
Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...
Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...
Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...
knowdiff
 
Mehran Shaghaghi: Quantum Mechanics Dilemmas
Mehran Shaghaghi: Quantum Mechanics DilemmasMehran Shaghaghi: Quantum Mechanics Dilemmas
Mehran Shaghaghi: Quantum Mechanics Dilemmas
knowdiff
 
Hossein Taghavi : Codes on Graphs
Hossein Taghavi : Codes on GraphsHossein Taghavi : Codes on Graphs
Hossein Taghavi : Codes on Graphs
knowdiff
 
Dr. Amir Nejat
Dr. Amir NejatDr. Amir Nejat
Dr. Amir Nejat
knowdiff
 
Alborz
AlborzAlborz
Alborz
knowdiff
 
Ut talk feb 2017
Ut talk   feb 2017Ut talk   feb 2017
Ut talk feb 2017
knowdiff
 
Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...
Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...
Ali khalili: Towards an Open Linked Data-based Infrastructure for Studying Sc...
knowdiff
 
Scheduling for cloud systems with multi level data locality
Scheduling for cloud systems with multi level data localityScheduling for cloud systems with multi level data locality
Scheduling for cloud systems with multi level data locality
knowdiff
 
Knowledge based economy and power of crowd sourcing
Knowledge based economy and power of crowd sourcing Knowledge based economy and power of crowd sourcing
Knowledge based economy and power of crowd sourcing
knowdiff
 
Amin tayyebi: Big Data and Land Use Change Science
Amin tayyebi: Big Data and Land Use Change ScienceAmin tayyebi: Big Data and Land Use Change Science
Amin tayyebi: Big Data and Land Use Change Science
knowdiff
 
Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...
Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...
Mehdi Rezagholizadeh: Image Sensor Modeling: Color Measurement at Low Light L...
knowdiff
 
Sara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time Systems
Sara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time SystemsSara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time Systems
Sara Afshar: Scheduling and Resource Sharing in Multiprocessor Real-Time Systems
knowdiff
 
Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...
Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...
Seyed Mehdi mohaghegh: Modelling material use within the low carbon energy pa...
knowdiff
 
Narjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objectsNarjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objects
knowdiff
 
Computational methods applications in air pollution modeling (Dr. Yadghar)
Computational methods applications in air pollution modeling (Dr. Yadghar)Computational methods applications in air pollution modeling (Dr. Yadghar)
Computational methods applications in air pollution modeling (Dr. Yadghar)
knowdiff
 
Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...
Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...
Somaz Kolahi : Functional Dependencies: Redundancy Analysis and Correcting Vi...
knowdiff
 
Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)
Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)
Uncalibrated Image-Based Robotic Visual Servoing (knowdiff.net)
knowdiff
 
Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...
Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...
Knowdiff visiting lecturer 140 (Azad Shademan): Uncalibrated Image-Based Robo...
knowdiff
 
Mehran Shaghaghi: Quantum Mechanics Dilemmas
Mehran Shaghaghi: Quantum Mechanics DilemmasMehran Shaghaghi: Quantum Mechanics Dilemmas
Mehran Shaghaghi: Quantum Mechanics Dilemmas
knowdiff
 
Hossein Taghavi : Codes on Graphs
Hossein Taghavi : Codes on GraphsHossein Taghavi : Codes on Graphs
Hossein Taghavi : Codes on Graphs
knowdiff
 
Dr. Amir Nejat
Dr. Amir NejatDr. Amir Nejat
Dr. Amir Nejat
knowdiff
 

Recently uploaded (20)

How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025
younisnoman75
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Foundation Models for Time Series : A Survey
Foundation Models for Time Series : A SurveyFoundation Models for Time Series : A Survey
Foundation Models for Time Series : A Survey
jayanthkalyanam1
 
Top 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdfTop 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdf
AffinityCore
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Odoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education ProcessOdoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education Process
iVenture Team LLP
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by stepImplementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025
younisnoman75
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Foundation Models for Time Series : A Survey
Foundation Models for Time Series : A SurveyFoundation Models for Time Series : A Survey
Foundation Models for Time Series : A Survey
jayanthkalyanam1
 
Top 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdfTop 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdf
AffinityCore
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Odoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education ProcessOdoo ERP for Education Management to Streamline Your Education Process
Odoo ERP for Education Management to Streamline Your Education Process
iVenture Team LLP
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by stepImplementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 

Amin Milani Fard: Directed Model Inference for Testing and Analysis of Web Applications

  • 1. Amin Milani Fard Directed Model Inference for Testing and Analysis of Web Applications University of British Columbia Oct 2015 http://www.knowdiff.net/
  • 3. 3
  • 4. 4
  • 5. Manual Testing and Maintenance 5 Incomplete
  • 6. 6 Test Model Generation Test Case Generation Unit Test Fixture Generation Code Maintenance
  • 7. P1. Test Model Generation • In model-based testing, models of program behaviour are used to generate test cases. • Dynamic analysis and exploration (crawling) derives test models for many automated testing techniques. 7
  • 8. Most industrial web applications have a huge state-space. Exhaustive crawling (BFS, DFS, or random search), can cause the state explosion problem. Given a limited time, exhaustive crawlers can become mired in specific parts of the application, yielding poor coverage. 8
  • 9. Covering the whole app is infeasible in a limited time, so … RQ1. How can we derive test models for web applications more effectively compared to exhaustive exploration methods? 9
  • 10. Amin Milani Fard, Ali Mesbah Feedback-Directed Exploration of Web Applications to Derive Test Models 24th IEEE International Symposium on Software Reliability Engineering (ISSRE), 2013
  • 11. Test Model Generation We consider 4 properties for a test model: • Functionality Coverage: The amount of code coverage • Navigational Coverage: The amount of covering different navigational branches • Page Structural Coverage: The amount of covering heterogeneous DOM structures • Size: The number of edges in the SFG How can we infer a model satisfying all these? 11
  • 12. Feedback-directed Exploration • FeedEx uses the feedback obtained to predict (1) which states should be expanded next (2) in which order events should be executed • Repeat until a time/state limit • Take the crawler to state s with highest state score • Execute the fittest event on s based on event score 12
  • 13. State score is a combination of • Code Coverage Impact: The amount of code coverage increase • Path Diversity: The diversity (not sharing) of two paths • DOM Diversity: The diversity (dissimilarity) of two DOM trees Event Score • Event Productivity Ratio: Unexecuted events first. Penalize events that result in an already discovered state, e.g. self- loops. 13
  • 14. Evaluation and Results • Objects: 6 open-source JavaScript web apps • Fixed time: 5 minutes, no limitations on: depth, number of states 17 0% 12% 24% 36% 48% 60% Coverage 0 0 0 0 0 DOM Diversity 0 0 0 0 1 Path Diversity 0 150 300 450 600 750 Test Model Size Test Suite Size DFS BFS RND FeedEx 10-28% imp 7-4000% imp 23-130% imp 38-86% imp 42-61% imp
  • 16. 19
  • 17. Crawling automates testing by exploring more states, but is limited in: • Proper input values • Choosing paths to explore • Generating effective assertions RQ2. Can we utilize the knowledge in existing tests to generate new tests? 20 P2. Test Case Generation
  • 18. Amin Milani Fard, Mehdi Mirzaaghaei, Ali Mesbah Leveraging Existing Tests in Automated Test Generation for Web Applications 29th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2014
  • 19. Combining Manual and Automated Tests - Input data and sequence - DOM elements to be asserted 23 - Automated crawling - Automated test case generation
  • 20. 24 Generated test cases Testilizer idea Extended State-Flow Graph Initial State-Flow Graph Human-written test cases
  • 21. Exploring Alternative Paths 25 • Remain close to the manual-test paths Initial State-Flow Graph Extended State-Flow Graph
  • 22. Regenerating Assertions 27 (1) Reusing the same assertion (2) Regenerating assertions for exact DOM element/region match (3) Generating assertions for similar DOM region match
  • 23. Assertion Reuse An assertion on a shared state can be reused for a new test case. 28
  • 24. Assertion Regeneration Repetition-based assertion regeneration 1. exact element-based assertions 2. exact region-based assertions 29 Checked Element Checked Element Region
  • 25. Generating Similar Region Assertions Inexact element/region repetition of a checked element/region can also be important for testing. A classification problem: • Is a block level DOM element important to be checked by an assertion? 30 <div id="header"> <div id="nav"> <div id="footer"> <div id="article"> <div id="sidebar" ><div id="section"> <div id="header"> <div id="nav"> <div id="footer"> <span id="main"> <span id="menu e"> <span id="content">
  • 26. 33 • 150% imp over the original test suite • 170% imp over the random assertion (RND) & exploration (RAND) • 37% imp over the random assertion (RND) While code coverage was not our main goal • 30% imp over the original test suite • 18% imp over the random exploration 0% 7% 13% 20% 26% 33% Fault Detection Rate ORIG RAND + RND EXND + RND Testilizer Evaluation and Results
  • 27. P3. Unit Test Fixture Generation If an expected DOM element (test fixture) is not present, a JavaScript unit test may throw an exception or produce an incorrect result. 36 Test fixtures define states of the test environment before the test.
  • 28. 38
  • 29. Proper DOM-based fixtures are required to achieve high coverage. RQ3. How can we automate fixture generation for unit testing? Challenges (1) DOM-related variables (2) Hierarchical DOM relations 40
  • 30. Amin Milani Fard, Ali Mesbah, Eric Wohlstadter Generating Fixtures for JavaScript Unit Testing 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2015
  • 31. Apply the new fixture on DOM Unit Test 42 ConFix idea Instrument the code Instrumented Code JavaScript Code + Function under test (FUT) Solve constraints and generate a fixture Collect exec trace and deduce DOM- based constraints Execute the FUT
  • 32. Instrumentation trace = []; function confixWrapper(statementType, statement, varList, varValueList, enclosingFunction, actualStatement) { trace.push({statementType: statementType, statement: statement, varList: varList, varValueList: varValueList, enclosingFunction: enclosingFunction, actualStatement: actualStatement}); return actualStatement; } function getConfixTrace() { return trace; } function dg(x) { return confixWrapper("return", "return confixWrapper("functionCall", "document.getElementById(x)", ["x"], [x], "dg", document.getElementById(x));", [""], [], "dg", confixWrapper("functionCall", "document.getElementById(x)", ["x"], [x], "dg", document.getElementById(x))); } function sumTotalPrice() { sum = confixWrapper("infix", "sum = 0", [""], [], "sumTotalPrice", 0); itemList = confixWrapper("infix", "itemList = confixWrapper("functionCall", "dg('items')", ["items"], ['items'], "sumTotalPrice", dg('items'))", [""], [], "sumTotalPrice", confixWrapper("functionCall", "dg('items')", ["items"], ['items'], "sumTotalPrice", dg('items'))); if (confixWrapper("condition", "itemList.children.length === 0", [""], [], "sumTotalPrice", itemList.children.length === 0)) confixWrapper("functionCall", "dg('message')", ["message"], ['message'], "sumTotalPrice", dg('message')).innerHTML = confixWrapper("infix", "confixWrapper("functionCall", "dg('message')", ["message"], ['message'], "sumTotalPrice", dg('message')).innerHTML = "Item list is empty!"", [""], [], "sumTotalPrice", "Item list is empty!"); else { for (i = confixWrapper("infix", "i = 0", [""], [], "sumTotalPrice", 0); confixWrapper("loopCondition", "i < itemList.children.length", ["i", "itemList"], [i, itemList], "sumTotalPrice", i < itemList.children.length); i++) { p = confixWrapper("infix", "p = itemList.children[i].value", ["itemList.children[i]"], [itemList.children[i]], "sumTotalPrice", itemList.children[i].value); if (confixWrapper("condition", "p > 0", [""], [], "sumTotalPrice", p > 0)) sum += p; else confixWrapper("functionCall", "dg('message')", ["message"], ['message'], "sumTotalPrice", dg('message')).innerHTML += " Wrong value for item " + i; } confixWrapper("functionCall", "dg('total')", ["total"], ['total'], "sumTotalPrice", dg('total')).value = confixWrapper("infix", "confixWrapper("functionCall", "dg('total')", ["total"], ['total'], "sumTotalPrice", dg('total')).value = sum", [""], [], "sumTotalPrice", sum); } 44
  • 33. 45 (1) Extract DOM-based Constraints (2) Transform them into XPath (3) Solve it using an available XML XPath solver
  • 34. 46
  • 35. 47 Evaluation and Result • Up to 67% imp in statement coverage • Up to 300% imp in branch coverage
  • 36. P4. Code Maintenance • JavaScript is challenging to maintain. • Code smells adversely influence program comprehension and maintainability. • Code smells detection is time consuming. 49 RQ4. Which JavaScript code smells are prevalent in practice and how can we support automated code refactoring?
  • 37. Amin Milani Fard, Ali Mesbah JSNose: Detecting JavaScript Code Smells 13th IEEE International Conference on Source Code Analysis and Manipulation (SCAM), 2013
  • 38. JavaScript Code Smell Detection 51 Static and dynamic code analysis is used to monitor and infer information about objects, functions, and code blocks.
  • 39. 54 Evaluation and Results • Evaluated 11 JavaScript/Ajax web applications. • Effective code smells detection (93% precision, 98% recall) • Lazy object, long method/function, closure smells, JS/HTML/CSS coupling, and excessive global variables, are the most prevalent smells. • Strong, and significant +correlation between {LOC, # functions, # JS files, and CC} and the types of smells, and weaker correlation with the # smell instances.
  • 40. 55 Some topics to work on • Applying learned tests on similar applications • Generating unit tests based on client-side code similarity and DOM-based tests based on DOM sate similarity • JavaScript code refactoring • Suggesting and applying refactoring for code smells • Understanding test failures and root causes • Generating integrated tests using existing unit tests
  • 41. 56 Test Model Generation Test Case Generation Unit Test Fixture Generation Code Maintenance

Editor's Notes

  • #3: Modern web applications have changed our life in the last decade.
  • #4: Modern web apps are composed of multiple languages such as HTML, JS, CSS, and server-side code which get rendered by a web browser to show the application’s runtime Document Object Model (DOM). To avoid dealing with these interactions separately, developers test the correct behaviour of a web app through its manifested DOM, using testing frameworks such as Selenium or CasperJS.
  • #5: Because of the considerable impact of these applications on social and economic activities, it is important to ensure their quality through testing and maintenance.
  • #6: Manual testing and maintenance is time consuming and the result is incomplete. Our goal in this thesis is to provide automated techniques and tools to reduce this manual effort.
  • #7: Towards this goal we consider 4 prongs that are complementary to each other.
  • #19: Modern web apps are composed of multiple languages such as HTML, JS, CSS, and server-side code which get rendered by a web browser to show the application’s runtime Document Object Model (DOM). To avoid dealing with these interactions separately, developers test the correct behaviour of a web app through its manifested DOM, using testing frameworks such as Selenium or CasperJS.
  • #24: Using the human domain knowledge in tests: provide valid input data know what DOM elements should be asserted and how. We propose to 1) mine the human knowledge existing in manually-written test cases 2) combine that knowledge with the power of automated crawling 3) extend the test suite for uncovered/unchecked portions of the app
  • #28: Regenerating assertions is a major contribution of this work. These assertions basically checks the existence of a DOM element or its attribute and textual values. Based on the concept of matching, partial matching, and similar matching, We generate new assertions by leveraging DOM patterns in test suites.
  • #29: s1 is shared among many other paths from Index to s5. Assertions on s1 can be exactly reused for generated test cases exercising alternative paths.
  • #30: Full exact match vs partial exact match region-based assertions
  • #33: Avoiding redundant assertions: Assertions that are subsumed by other assertions are redundant and safely eliminated Prioritizing assertions: We prioritize assertions in each state in the order of specification/constraint: the original assertions the reused, the exact element/region assertion assertions similar region assertions
  • #35: Compared test suite generated by 1. human tester (ORIG) 2. Testilizer: traversing the extended SFG and generating assertions (EXND+AR) 3. traversing the extended SFG and random assertion generation (EXND+RND) 4. random exploration and random assertion generation (RAND+RND)
  • #37: Why JS Unit testing? Unit tests can detect code-level bugs that do not propagate to the DOM.
  • #38: Why JS Unit testing? Unit tests can detect code-level bugs that do not propagate to the DOM.
  • #48: To evaluate our approach we answer three research questions.
  • #57: Towards this goal we consider 4 prongs that are complementary to each other.