SlideShare a Scribd company logo
Motivation
               Design Test
             DesignWizard
                Evaluation
               Conclusion




              Design Tests

                  João Brunet

        Dalton Guerrero and Jorge Figueiredo




Federal University of Campina Grande (UFCG), Brazil.


                   09/28/2011




              João Brunet    1/ 26
Motivation
                          Design Test
                        DesignWizard
                           Evaluation
                          Conclusion


Agenda


  1   Motivation

  2   Design Test

  3   DesignWizard

  4   Evaluation
        API Usability

  5   Conclusion



                         João Brunet    2/ 26
Motivation
                               Design Test
                             DesignWizard
                                Evaluation
                               Conclusion


Motivation




      Check code against design rules is an important activity to
      guarantee quality on source code
             Design Review
                 Manual Process
                 Error-prone
                 Does not scale




                              João Brunet    3/ 26
Motivation
                               Design Test
                             DesignWizard
                                Evaluation
                               Conclusion


Motivation




      Check code against design rules is an important activity to
      guarantee quality on source code
             Design Review
                 Manual Process
                 Error-prone
                 Does not scale




                              João Brunet    3/ 26
Motivation
                             Design Test
                           DesignWizard
                              Evaluation
                             Conclusion


The Problem




     Gap between state-of-the-art and the state-of-the-practice
          Approaches from the state-of-the-art require learning different
          languages to express design rules




                            João Brunet    4/ 26
Motivation
                             Design Test
                           DesignWizard
                              Evaluation
                             Conclusion


The Problem




  Lack of structural conformance checking
  Design decisions are violated




                            João Brunet    5/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Design Test




  Design Test
  A test that checks whether an implementation complies with a given
  design rule expressed as an algorithm.




                           João Brunet    6/ 26
Motivation
                           Design Test
                         DesignWizard
                            Evaluation
                           Conclusion


What’s the big deal?




      It is written in the target programming language
      Automated test




                          João Brunet    7/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Example of Design Rule

  Only controller package shall access dao package of a given
  component.




                           João Brunet    8/ 26
Motivation
                      Design Test
                    DesignWizard
                       Evaluation
                      Conclusion


Example of Design Test




                     João Brunet    9/ 26
Motivation
                           Design Test
                         DesignWizard
                            Evaluation
                           Conclusion


Example of Design Test




      Facts about the code (an API)




                          João Brunet    10/ 26
Motivation
                             Design Test
                           DesignWizard
                              Evaluation
                             Conclusion


Example of Design Test




      Facts about the code (an API)
      Assertion routines



                            João Brunet    11/ 26
Motivation
                 Design Test
               DesignWizard
                  Evaluation
                 Conclusion


DesignWizard




                João Brunet    12/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Some methods of DesignWizard’s API




     getAllPackages()
     getAllSubClasses()
     getStaticMethods()
     getImplementedInterfaces()
     ...




                           João Brunet    13/ 26
Motivation
            Design Test
          DesignWizard
             Evaluation
            Conclusion


Process




           João Brunet    14/ 26
Motivation
            Design Test
          DesignWizard
             Evaluation
            Conclusion


Process




           João Brunet    15/ 26
Motivation
                              Design Test
                            DesignWizard    API Usability
                               Evaluation
                              Conclusion


Methodology




  “It is the comparison between what developers expect and what the
  API provides that is interesting when evaluating the usability of an API
  (Steven Clarke)”
       Think Aloud Protocol For APIs to capture expectations, goals,
       difficulties and strategies




                             João Brunet    16/ 26
Motivation
                           Design Test
                         DesignWizard    API Usability
                            Evaluation
                           Conclusion


Experiment



     11 developers
     5 real design tests (selected by the designer of the OurGrid)
     OurGrid
     Eclipse
     API
     Pseudocode vs. Code




                          João Brunet    17/ 26
Motivation
               Design Test
             DesignWizard    API Usability
                Evaluation
               Conclusion


Experiment




              João Brunet    18/ 26
Motivation
                             Design Test
                           DesignWizard    API Usability
                              Evaluation
                             Conclusion


Experiment


  Only one developer did not write one instance of design test.




                            João Brunet    19/ 26
Motivation
                               Design Test
                             DesignWizard    API Usability
                                Evaluation
                               Conclusion


Experiment

  ...but, 10 tests were incorrectly written. The good news is that all
  developers found the right method, but used it incorrectly.




                              João Brunet    20/ 26
Motivation
                             Design Test
                           DesignWizard    API Usability
                              Evaluation
                             Conclusion


Results



  Two weaknesses of API:
      getAllClasses()
           We decided to follow the Java Reflection API pattern

      getDeclaredMethod (String name)
           An appropriated name of the parameter would be signature




                            João Brunet    21/ 26
Motivation
                            Design Test
                          DesignWizard    API Usability
                             Evaluation
                            Conclusion


Results




      Think Aloud Protocol revealed that devolopers had no difficulties
      to find the right method to achieve a given task
      Results suggested changes to DesignWizard API and
      documentation.




                           João Brunet    22/ 26
Motivation
                             Design Test
                           DesignWizard    API Usability
                              Evaluation
                             Conclusion


Threats to validity




       Coding and designing expertise of developers
       More complex design rules may produce different observations
       The API was not fully evaluated




                            João Brunet    23/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Final Remarks




     Approach to check conformance between code and design rules
     Evaluation regarding its usability
     Design Tests and maintenance
          Executable documentation of design rules
          Enables developers changing functionality keeping in mind
          structural constraints




                           João Brunet    24/ 26
Motivation
                Design Test
              DesignWizard
                 Evaluation
                Conclusion


Thank you




        www.designwizard.org



               João Brunet    25/ 26
Motivation
                         Design Test
                       DesignWizard
                          Evaluation
                         Conclusion


Related Work




     ArchJava
     Reflexion Models
     FindBugs
     ...




                        João Brunet    26/ 26

More Related Content

PDF
GenericFrame Prototyping Tool
PPTX
Scct2013 topic6-integrative mediaprojectdevelopment
PDF
Test Driven Development by Denis Lutz
PDF
Why Test Driven Development?
PDF
Test driven development
PPT
Software Prototyping
PPT
Open Source as a an attitude and the approach of OSGeo
PPTX
Practices of agile developers
GenericFrame Prototyping Tool
Scct2013 topic6-integrative mediaprojectdevelopment
Test Driven Development by Denis Lutz
Why Test Driven Development?
Test driven development
Software Prototyping
Open Source as a an attitude and the approach of OSGeo
Practices of agile developers

What's hot (20)

DOC
PPT
Designing and prototyping
PDF
software Prototyping
PPTX
PDF
Test driven development
PPTX
Software prototyping
PDF
Make it or Break It: Evolutionary or Throwaway Prototyping
PPT
Informed Rural Passenger Geovation Camp Pecha Kucha
PPT
Software Life Cylce Model
PDF
Agile Testing
PPT
Software testing concepts
PDF
Practical Guide to Unit Testing
PPTX
Test Driven Development
PDF
Lo fi prototyping
KEY
Effective Prototyping Process for Software Creation
PDF
Analysis of the interaction between practices for introducing XP effectively
PDF
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
PDF
Pragmatic notdogmatictdd
PPTX
Types of Software life cycle
Designing and prototyping
software Prototyping
Test driven development
Software prototyping
Make it or Break It: Evolutionary or Throwaway Prototyping
Informed Rural Passenger Geovation Camp Pecha Kucha
Software Life Cylce Model
Agile Testing
Software testing concepts
Practical Guide to Unit Testing
Test Driven Development
Lo fi prototyping
Effective Prototyping Process for Software Creation
Analysis of the interaction between practices for introducing XP effectively
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic notdogmatictdd
Types of Software life cycle
Ad

Viewers also liked (20)

PDF
Lionel Briand ICSM 2011 Keynote
PDF
Reliability and Quality - Predicting post-release defects using pre-release f...
PDF
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
PDF
ICSM'01 Most Influential Paper - Rainer Koschke
PDF
Industry - Testing & Quality Assurance in Data Migration Projects
PDF
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
PDF
Natural Language Analysis - Mining Java Class Naming Conventions
PDF
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
PDF
Richard Kemmerer Keynote icsm11
PDF
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
PDF
ERA - Clustering and Recommending Collections of Code Relevant to Task
PDF
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
PDF
Components - Graph Based Detection of Library API Limitations
PDF
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
PDF
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
PDF
ERA - Tracking Technical Debt
PDF
ERA - Measuring Maintainability of Spreadsheets in the Wild
PDF
Faults and Regression Testing - Fault interaction and its repercussions
PDF
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
PDF
Postdoc Symposium - Abram Hindle
Lionel Briand ICSM 2011 Keynote
Reliability and Quality - Predicting post-release defects using pre-release f...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
ICSM'01 Most Influential Paper - Rainer Koschke
Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Natural Language Analysis - Mining Java Class Naming Conventions
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
Richard Kemmerer Keynote icsm11
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
ERA - Clustering and Recommending Collections of Code Relevant to Task
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Components - Graph Based Detection of Library API Limitations
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
ERA - Tracking Technical Debt
ERA - Measuring Maintainability of Spreadsheets in the Wild
Faults and Regression Testing - Fault interaction and its repercussions
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
Postdoc Symposium - Abram Hindle
Ad

Similar to Traceability - Structural Conformance Checking with Design Tests: An Evaluation of Usability and Scalability (20)

PDF
UX Beyond UCD (Peter Boersma, UXCE12)
PDF
How product designer work in agile scrum team
PPTX
Study of solution development methodology for small size projects.
PDF
Agile Project Management
PPTX
The Agile PMP v2
PDF
UX Beyond UCD (Seattle)
PDF
Power Up - Your Influence on Non-Design Deliverables
PPT
Why every Tester should also aspire to be a Developer on his project!-Sandee...
PDF
UX-Lx -a tour of non-design deliverables
ODP
xUnit and TDD: Why and How in Enterprise Software, August 2012
DOC
Manual Testing
PDF
Amee product development workflow
DOC
1stclass
DOC
Testing
XLS
Schedule for Year 4 '10 '11
PPTX
ISD MODEL
PDF
Design Thinking for Social Innovation RossNetImpact_Oct2011
PPTX
Solution Validation & Assessments - A practical Approach
PDF
Look Around You - Influences on UX (UX Sofia)
PPTX
Agile Testing by Example
UX Beyond UCD (Peter Boersma, UXCE12)
How product designer work in agile scrum team
Study of solution development methodology for small size projects.
Agile Project Management
The Agile PMP v2
UX Beyond UCD (Seattle)
Power Up - Your Influence on Non-Design Deliverables
Why every Tester should also aspire to be a Developer on his project!-Sandee...
UX-Lx -a tour of non-design deliverables
xUnit and TDD: Why and How in Enterprise Software, August 2012
Manual Testing
Amee product development workflow
1stclass
Testing
Schedule for Year 4 '10 '11
ISD MODEL
Design Thinking for Social Innovation RossNetImpact_Oct2011
Solution Validation & Assessments - A practical Approach
Look Around You - Influences on UX (UX Sofia)
Agile Testing by Example

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
cuic standard and advanced reporting.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
Teaching material agriculture food technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Approach and Philosophy of On baking technology
PPTX
MYSQL Presentation for SQL database connectivity
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
KodekX | Application Modernization Development
cuic standard and advanced reporting.pdf
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Teaching material agriculture food technology
Empathic Computing: Creating Shared Understanding
Approach and Philosophy of On baking technology
MYSQL Presentation for SQL database connectivity
“AI and Expert System Decision Support & Business Intelligence Systems”
Network Security Unit 5.pdf for BCA BBA.
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MIND Revenue Release Quarter 2 2025 Press Release
Dropbox Q2 2025 Financial Results & Investor Presentation
Review of recent advances in non-invasive hemoglobin estimation
20250228 LYD VKU AI Blended-Learning.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
The Rise and Fall of 3GPP – Time for a Sabbatical?
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton

Traceability - Structural Conformance Checking with Design Tests: An Evaluation of Usability and Scalability

  • 1. Motivation Design Test DesignWizard Evaluation Conclusion Design Tests João Brunet Dalton Guerrero and Jorge Figueiredo Federal University of Campina Grande (UFCG), Brazil. 09/28/2011 João Brunet 1/ 26
  • 2. Motivation Design Test DesignWizard Evaluation Conclusion Agenda 1 Motivation 2 Design Test 3 DesignWizard 4 Evaluation API Usability 5 Conclusion João Brunet 2/ 26
  • 3. Motivation Design Test DesignWizard Evaluation Conclusion Motivation Check code against design rules is an important activity to guarantee quality on source code Design Review Manual Process Error-prone Does not scale João Brunet 3/ 26
  • 4. Motivation Design Test DesignWizard Evaluation Conclusion Motivation Check code against design rules is an important activity to guarantee quality on source code Design Review Manual Process Error-prone Does not scale João Brunet 3/ 26
  • 5. Motivation Design Test DesignWizard Evaluation Conclusion The Problem Gap between state-of-the-art and the state-of-the-practice Approaches from the state-of-the-art require learning different languages to express design rules João Brunet 4/ 26
  • 6. Motivation Design Test DesignWizard Evaluation Conclusion The Problem Lack of structural conformance checking Design decisions are violated João Brunet 5/ 26
  • 7. Motivation Design Test DesignWizard Evaluation Conclusion Design Test Design Test A test that checks whether an implementation complies with a given design rule expressed as an algorithm. João Brunet 6/ 26
  • 8. Motivation Design Test DesignWizard Evaluation Conclusion What’s the big deal? It is written in the target programming language Automated test João Brunet 7/ 26
  • 9. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Rule Only controller package shall access dao package of a given component. João Brunet 8/ 26
  • 10. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Test João Brunet 9/ 26
  • 11. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Test Facts about the code (an API) João Brunet 10/ 26
  • 12. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Test Facts about the code (an API) Assertion routines João Brunet 11/ 26
  • 13. Motivation Design Test DesignWizard Evaluation Conclusion DesignWizard João Brunet 12/ 26
  • 14. Motivation Design Test DesignWizard Evaluation Conclusion Some methods of DesignWizard’s API getAllPackages() getAllSubClasses() getStaticMethods() getImplementedInterfaces() ... João Brunet 13/ 26
  • 15. Motivation Design Test DesignWizard Evaluation Conclusion Process João Brunet 14/ 26
  • 16. Motivation Design Test DesignWizard Evaluation Conclusion Process João Brunet 15/ 26
  • 17. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Methodology “It is the comparison between what developers expect and what the API provides that is interesting when evaluating the usability of an API (Steven Clarke)” Think Aloud Protocol For APIs to capture expectations, goals, difficulties and strategies João Brunet 16/ 26
  • 18. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment 11 developers 5 real design tests (selected by the designer of the OurGrid) OurGrid Eclipse API Pseudocode vs. Code João Brunet 17/ 26
  • 19. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment João Brunet 18/ 26
  • 20. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment Only one developer did not write one instance of design test. João Brunet 19/ 26
  • 21. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment ...but, 10 tests were incorrectly written. The good news is that all developers found the right method, but used it incorrectly. João Brunet 20/ 26
  • 22. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Results Two weaknesses of API: getAllClasses() We decided to follow the Java Reflection API pattern getDeclaredMethod (String name) An appropriated name of the parameter would be signature João Brunet 21/ 26
  • 23. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Results Think Aloud Protocol revealed that devolopers had no difficulties to find the right method to achieve a given task Results suggested changes to DesignWizard API and documentation. João Brunet 22/ 26
  • 24. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Threats to validity Coding and designing expertise of developers More complex design rules may produce different observations The API was not fully evaluated João Brunet 23/ 26
  • 25. Motivation Design Test DesignWizard Evaluation Conclusion Final Remarks Approach to check conformance between code and design rules Evaluation regarding its usability Design Tests and maintenance Executable documentation of design rules Enables developers changing functionality keeping in mind structural constraints João Brunet 24/ 26
  • 26. Motivation Design Test DesignWizard Evaluation Conclusion Thank you www.designwizard.org João Brunet 25/ 26
  • 27. Motivation Design Test DesignWizard Evaluation Conclusion Related Work ArchJava Reflexion Models FindBugs ... João Brunet 26/ 26