A Taxonomy of Testable HTML5 Canvas Issues
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
Paper Prompts
Sign up for free to create and run prompts on this paper using GPT-5.
Top Community Prompts
Collections
Sign up for free to add this paper to one or more collections.