A Taxonomy of Testable HTML5 Canvas Issues (2201.07351v5)
Abstract: The HTML5 <canvas> is widely used to display high quality graphics in web applications. However, the combination of web, GUI, and visual techniques that are required to build <canvas> applications, together with the lack of testing and debugging tools, makes developing such applications very challenging. To help direct future research on testing <canvas> applications, in this paper we present a taxonomy of testable <canvas> issues. First, we extracted 2,403 <canvas>-related issue reports from 123 open-source GitHub projects that use the HTML5 <canvas>. Second, we constructed our taxonomy by manually classifying a random sample of 332 issue reports. Our manual classification identified five broad categories of testable <canvas> issues, such as Visual and Performance issues. We found that Visual issues are the most frequent (35%), while Performance issues are relatively infrequent (5%). We also found that many testable <canvas> issues that present themselves visually on the <canvas> are actually caused by other components of the web application. Our taxonomy of testable <canvas> issues can be used to steer future research into <canvas> issues and testing.
- AbhiThakare “Fatal Error On Hover”, 2018 URL: https://github.com/timdream/wordcloud2.js/issues/132
- Adobe “Flash & the Future of Interactive Content”, 2017 URL: https://blog.adobe.com/en/publish/2017/07/25/adobe-flash-update.html
- Adobe “Adobe Flash Player EOL General Information Page”, 2021 URL: https://www.adobe.com/products/flashplayer/end-of-life.html
- Emil Alégroth, Robert Feldt and Pirjo Kolström “Maintenance of automated test suites in industry: An empirical study on Visual GUI Testing” In Information and Software Technology 73 Elsevier, 2016, pp. 66–80
- John Anvik, Lyndon Hiew and Gail C Murphy “Coping with an open bug repository” In Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange, 2005, pp. 35–39
- John Anvik, Lyndon Hiew and Gail C Murphy “Who should fix this bug?” In Proceedings of the 28th international conference on Software engineering, 2006, pp. 361–370
- John Anvik and Gail C Murphy “Determining implementation expertise from bug reports” In Fourth International Workshop on Mining Software Repositories (MSR’07: ICSE Workshops 2007), 2007, pp. 2–2 IEEE
- “Inter-coder agreement for computational linguistics” In Computational linguistics 34.4 MIT Press One Rogers Street, Cambridge, MA 02142-1209, USA journals-info …, 2008, pp. 555–596
- asela-wijesinghe “not accepting image url’s without CORS headers”, 2017 URL: https://github.com/Vibrant-Colors/node-vibrant/issues/43
- aSqrd-eSqrd “Nodes outside view port when physics layout enabled”, 2016 URL: https://github.com/Netflix/vizceral/issues/44
- Kartik Bajaj, Karthik Pattabiraman and Ali Mesbah “Mining questions asked by web developers” In Proceedings of the 11th Working Conference on Mining Software Repositories, 2014, pp. 112–121
- “Web canvas testing through visual inference” In 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST), 2018, pp. 193–203 IEEE
- “A survey on the use of computer vision to improve software engineering tasks” In IEEE Transactions on Software Engineering IEEE, 2020
- Kayce Basques “Analyze runtime performance”, 2017 URL: https://developer.chrome.com/docs/devtools/evaluate-performance/
- boardfish “Objects clipping over each other”, 2019 URL: https://github.com/metafizzy/zdog/issues/20
- “To Type or Not to Type? A Systematic Comparison of the Software Quality of JavaScript and TypeScript Applications on GitHub” In arXiv preprint arXiv:2203.11115, 2022
- “Lessons from applying the systematic literature review process within the software engineering domain” In Journal of systems and software 80.4 Elsevier, 2007, pp. 571–583
- “Not all bugs are the same: Understanding, characterizing, and classifying bug types” In Journal of Systems and Software 152 Elsevier, 2019, pp. 165–181
- cbranje “errorBars causing graph not to render”, 2015 URL: https://github.com/danvk/dygraphs/issues/671
- chirotaq “WebGlRenderer does not draw multiple lines well.”, 2015 URL: https://github.com/pixijs/pixijs/issues/1843
- cnatis “Cross Origin Image Requests”, 2017 URL: https://github.com/tsayen/dom-to-image/issues/112
- Jacob Cohen “A coefficient of agreement for nominal scales” In Educational and psychological measurement 20.1 Sage Publications Sage CA: Thousand Oaks, CA, 1960, pp. 37–46
- CRLbazin “Display problem when importing a workflow saved on a screen with another resolution”, 2020 URL: https://github.com/alyssaxuu/flowy/issues/101
- danpalmer “Bug: Renders canvas elements visible on the page”, 2017 URL: https://github.com/Vibrant-Colors/node-vibrant/issues/36
- danvk “Drag-zoom over left or right edge of canvas results in aborted zoom”, 2014 URL: https://github.com/danvk/dygraphs/issues/323
- Serdar Doğan, Aysu Betin-Can and Vahid Garousi “Web application testing: A systematic literature review” In Journal of Systems and Software 91 Elsevier, 2014, pp. 174–201
- emirozer “filling half circle”, 2013 URL: https://github.com/Leimi/drawingboard.js/issues/9
- erickne “Knob creates a 200px height canvas”, 2012 URL: https://github.com/aterrien/jQuery-Knob/issues/51
- Erwin4 “Scaling problem”, 2016 URL: https://github.com/joewalnes/smoothie/issues/70
- fadedyellowroses “Piskel is very slow with Chrome 65 and OSX 10.11.6”, 2018 URL: https://github.com/piskelapp/piskel/issues/796
- frostbytedata “Node click event firing when mouse is released after dragging”, 2018 URL: https://github.com/vasturiano/3d-force-graph/issues/67
- Rama C Hoetzlein “Graphics performance in rich internet applications” In IEEE computer graphics and applications 32.5 IEEE, 2012, pp. 98–104
- iKrushYou “Legend ‘itemTextColor‘ no longer works 0.63+”, 2020 URL: https://github.com/plouc/nivo/issues/1321
- Ayman Issa, Jonathan Sillito and Vahid Garousi “Visual testing of Graphical User Interfaces: An exploratory study towards systematic definitions and approaches” In 2012 14th IEEE International Symposium on Web Systems Evolution (WSE), 2012, pp. 11–15 IEEE
- jordyvandomselaar “When scrolling down the line is above the cursor”, 2016 URL: https://github.com/jakubfiala/atrament.js/issues/12
- “PySStuBs: Characterizing Single-Statement Bugs in Popular Open-Source Python Projects” In 2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR), 2021, pp. 520–524 IEEE
- “How often do single-statement bugs occur? the manysstubs4j dataset” In Proceedings of the 17th International Conference on Mining Software Repositories, 2020, pp. 573–577
- kartojal “[BUG] [Firefox] _.debounce + 2.5.0 Chart.js + events not working”, 2017 URL: https://github.com/chartjs/Chart.js/issues/4090
- lamego “Distorted and fuzzy bubbles on canvas”, 2018 URL: https://github.com/tipsy/bubbly-bg/issues/22
- Davy Landman, Alexander Serebrenik and Jurgen J Vinju “Challenges for static analysis of java reflection-literature review and empirical study” In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE), 2017, pp. 507–518 IEEE
- “An exploratory study of the state of practice of performance testing in java-based open source projects” In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering, 2017, pp. 373–384
- Valéria Lelli, Arnaud Blouin and Benoit Baudry “Classifying and qualifying GUI defects” In 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST), 2015, pp. 1–10 IEEE
- Maksims “‘maxPixelRatio‘ is not respected in screenToWorld, and bugged on iOS initial load”, 2015 URL: https://github.com/playcanvas/engine/issues/328
- marcbruederlin “Detect device pixel ratio”, 2017 URL: https://github.com/marcbruederlin/particles.js/issues/9
- Alessandro Marchetto, Filippo Ricca and Paolo Tonella “An empirical validation of a web fault taxonomy and its usage for web testing” In Journal of Web Engineering, 2009, pp. 316–345
- mathiastiberghien “Damage/redraw boundary issue for Canvas renderer”, 2020 URL: https://github.com/vega/vega/issues/2425
- Rafael Maiani Mello, Pedro Corrêa Da Silva and Guilherme Horta Travassos “Investigating probabilistic sampling approaches for large-scale surveys in software engineering” In Journal of Software Engineering Research and Development 3.1 SpringerOpen, 2015, pp. 1–26
- michaelgrc “How to draw a straight line before and after a wave using siriwave.js”, 2015 URL: https://github.com/kopiro/siriwave/issues/8
- Kevin Moot “Handling user input in HTML5 Canvas-based games”, 2012 URL: https://developer.ibm.com/tutorials/wa-games/?mhsrc=ibmsearch_a&mhq=induction
- Mozilla “Allowing cross-origin use of images and canvas”, 2021 URL: https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image
- Mozilla “Canvas: The Graphics Canvas element”, 2021 URL: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas
- Mozilla “CanvasRenderingContext2D.arc()”, 2021 URL: https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/arc
- Mozilla “Cross-Origin Resource Sharing (CORS)”, 2021 URL: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
- Mozilla “Introduction to the DOM”, 2021 URL: https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction
- newerton “Calculation of bytes”, 2014 URL: https://github.com/blueimp/JavaScript-Canvas-to-Blob/issues/20
- nicoladaoud “Blocks don’t snap correctly after flowchart becomes large in size (blocks do not update positions correctly)”, 2019 URL: https://github.com/alyssaxuu/flowy/issues/31
- NisSAM “saveImage returns image with the black background”, 2012 URL: https://github.com/HumbleSoftware/Flotr2/issues/173
- Nokitoo “Entities destruction memory leak”, 2018 URL: https://github.com/playcanvas/engine/issues/1299
- Nur Nurmuliani, Didar Zowghi and Susan P Williams “Using card sorting technique to classify requirements change” In Proceedings. 12th IEEE International Requirements Engineering Conference, 2004., 2004, pp. 240–248 IEEE
- “A study of causes and consequences of client-side JavaScript bugs” In IEEE Transactions on Software Engineering 43.2 IEEE, 2016, pp. 128–144
- Rebecca Passonneau “Measuring agreement on set-valued items (MASI) for semantic and pragmatic annotation”, 2006
- paulmasson “Documentation pages with iframe unreadable on iOS”, 2016 URL: https://github.com/mrdoob/three.js/issues/9195
- pdfowler “Continued CORS Issues”, 2018 URL: https://github.com/mosch/react-avatar-editor/issues/268
- pdincubus “0% in IE8 shows full pie chart”, 2013 URL: https://github.com/rendro/easy-pie-chart/issues/8
- peternewman “Wind icon animation and non 1:1 aspect ratios”, 2019 URL: https://github.com/darkskyapp/skycons/issues/28
- pilootchoum “OnSnap not working properly”, 2020 URL: https://github.com/alyssaxuu/flowy/issues/56
- pws2016 “error canvas!”, 2020 URL: https://github.com/bernii/gauge.js/issues/235
- Paul Ralph “Toward methodological guidelines for process theories and taxonomies in software engineering” In IEEE Transactions on Software Engineering 45.7 IEEE, 2018, pp. 712–735
- rami-dabain “detachControl not working”, 2013 URL: https://github.com/BabylonJS/Babylon.js/issues/17
- rbishop-bah “Canvas path mouseover flaky”, 2013 URL: https://github.com/vega/vega/issues/101
- rhysburnie “pixelated on iPhone 4 (retina)”, 2010 URL: https://github.com/sorccu/cufon/issues/154
- “Web test automation: Insights from the grey literature” In International Conference on Current Trends in Theory and Practice of Informatics, 2021, pp. 472–485 Springer
- RitterD “Gauges crashing my App”, 2018 URL: https://github.com/Mikhus/canvas-gauges/issues/171
- “Augmenting the kappa statistic to determine interannotator reliability for multiply labeled data points”, 2004
- SimilarTech “HTML5 Canvas Tag Market Share”, 2022 URL: https://www.similartech.com/technologies/html5-canvas-tag
- “An empirically based terminology and taxonomy for global software engineering” In Empirical Software Engineering 19.1 Springer, 2014, pp. 105–153
- Soviut “Babylon canvas is the wrong size on retina displays”, 2014 URL: https://github.com/BabylonJS/Babylon.js/issues/319
- Mihai Sucan “SVG or Canvas? Choosing Between the Two”, 2010 URL: https://dev.opera.com/articles/svg-or-canvas-choose/
- “Bug characteristics in open source software” In Empirical software engineering 19.6 Springer, 2014, pp. 1665–1705
- “Taxonomies in software engineering: A systematic mapping study and a revised taxonomy development method” In Information and Software Technology 85 Elsevier, 2017, pp. 43–59
- “What Causes Wrong Sentiment Classifications of Game Reviews” In IEEE Transactions on Games IEEE, 2021
- “Bug taxonomies: Use them to generate better tests” In Star East 2003, 2003, pp. 1–40
- Vincenttbk “Halo does not disappear on hiding series (mobile)”, 2014 URL: https://github.com/highcharts/highcharts/issues/3533
- vincenttheeten “Cannot get font() to work”, 2012 URL: https://github.com/jasondavies/d3-cloud/issues/3
- WHATWG “Fetch - Living Standard”, 2021 URL: https://fetch.spec.whatwg.org/#http-cors-protocol
- williamngan “canvasform.font doesn’t set font”, 2018 URL: https://github.com/williamngan/pts/issues/52
- Andrew Woo, Andrew Pearce and Marc Ouellette “It’s really not a rendering bug, you see” In IEEE Computer Graphics and Applications 16.5 IEEE, 1996, pp. 21–25
- Shahed Zaman, Bram Adams and Ahmed E Hassan “Security versus performance bugs: a case study on firefox” In Proceedings of the 8th working conference on mining software repositories, 2011, pp. 93–102
- Finlay Macklon (5 papers)
- Markos Viggiato (5 papers)
- Natalia Romanova (2 papers)
- Chris Buzon (2 papers)
- Dale Paas (3 papers)
- Cor-Paul Bezemer (24 papers)