Your SlideShare is downloading. ×
QML Quality Assurance with QtQuick Test Thiago Marcos P. Santos, Intel Title
Audience <ul><li>Developers passionated with quality
Best practices advocates </li></ul>
Audience <ul><li>Developers passionated with quality
Best practices advocates </li><ul><li>You love to see PASS/green on all your tests
You know how important tests are for backing refactoring, code shared among many people
Found and fixed many bugs because of tests </li></ul></ul>
Topics <ul><li>What you can do?
Why?
How to do? Tricks and Tips
Practical demonstrations
What is missing and further development </li></ul>
Topics <ul><li>What you can do?
Why?
How to do? Tricks and Tips
Practical demonstrations
What is missing and further development </li></ul>
<ul>What can you do? </ul><ul><li>In a short: same as QtTest </li></ul>
Upcoming SlideShare
Loading in...5
×

QML Quality Assurance with QtQuick

759

Published on

Technical challenges and best practices of how to ensure quality of a QML codebase. The current status of the tool and alternatives. Tips and tricks and ideas for further development.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
759
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "QML Quality Assurance with QtQuick"

  1. 1. QML Quality Assurance with QtQuick Test Thiago Marcos P. Santos, Intel Title
  2. 2. Audience <ul><li>Developers passionated with quality
  3. 3. Best practices advocates </li></ul>
  4. 4. Audience <ul><li>Developers passionated with quality
  5. 5. Best practices advocates </li><ul><li>You love to see PASS/green on all your tests
  6. 6. You know how important tests are for backing refactoring, code shared among many people
  7. 7. Found and fixed many bugs because of tests </li></ul></ul>
  8. 8. Topics <ul><li>What you can do?
  9. 9. Why?
  10. 10. How to do? Tricks and Tips
  11. 11. Practical demonstrations
  12. 12. What is missing and further development </li></ul>
  13. 13. Topics <ul><li>What you can do?
  14. 14. Why?
  15. 15. How to do? Tricks and Tips
  16. 16. Practical demonstrations
  17. 17. What is missing and further development </li></ul>
  18. 18. <ul>What can you do? </ul><ul><li>In a short: same as QtTest </li></ul>
  19. 19. <ul>What can you do? </ul><ul><li>In a short: same as QtTest
  20. 20. Unit Tests
  21. 21. Black-box UI Testing
  22. 22. Asynchronous tests
  23. 23. Performance benchmarking </li></ul>
  24. 24. Why? <ul><li>Use the same language as the implementation, natural integration
  25. 25. Better error messages
  26. 26. No need to compile
  27. 27. Easier access to components positioning </li></ul>
  28. 28. How to do Test Cases <ul><li>Simple Button test case
  29. 29. Blackbox UI testing
  30. 30. UTests and interpreted languages
  31. 31. QtQuick Test Versus QtTest </li></ul>
  32. 32. Tips <ul><li>Make your components self-contained
  33. 33. Try not to depend on the runner </li></ul>
  34. 34. Tips <ul><li>Make your components self-contained
  35. 35. Try not to depend on the runner </li><ul><li>Should run on qmlviewer
  36. 36. Should run on QtQuick Test runner boilerplate
  37. 37. Models as plugins instead of context variables </li></ul></ul>
  38. 38. How to do Benchmarking <ul><li>Measuring object creation time
  39. 39. Measuring “(re)paint” time </li></ul>
  40. 40. How to do Benchmarking <ul><li>Measuring object creation time
  41. 41. Measuring “(re)paint” time </li><ul><li>Not quite precise, but gives you a number
  42. 42. Number increases = bad
  43. 43. Number decreases = good </li></ul></ul>
  44. 44. What is missing? <ul><li>Mouse drag events </li><ul><li>QTBUG-13397 </li></ul><li>Full coverage report </li><ul><li>Something like JSCoverage </li></ul><li>Screenshot compare </li><ul><li>QML Visual integration? </li></ul></ul>
  45. 45. Tips <ul><li>Using introspection to mimic coverage
  46. 46. Not even close to a JSCoverage report: </li></ul>
  47. 47. More information <ul><li>QML Testing requirements </li><ul><li>QTBUG-15801 </li></ul><li>Qt Components (custom branch) </li><ul><li>A complete test suite implemented in QML </li></ul><li>http://git.tmpsantos.com.br </li><ul><li>Test template code </li></ul></ul>
  48. 48. Thanks! Questions? <ul>[email_address] tmpsantos at #freenode </ul>
  49. 49. Alternatives <ul><li>TDriver </li><ul><li>Good for high level testing </li></ul><li>QML Unit </li><ul><li>Community supported tool </li></ul><li>Other Qt tools </li><ul><li>QML Visual, QML Time and QtTest </li></ul></ul>

×