< Get InvolvedRevision as of 18:46, 26 May 2019 by Eric Adams (talk | contribs) (→Unit tests)(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff) In the early 2000's there was a specific team at KDE which was focused on finding loose ends in KDE applications and tying them together. This was a task of user case studies, writing articles, documentation, creating missing artwork for consistency, and other miscellanea. Ultimately, this team contributed patches of code and documentation that really rounded out the KDE experience. Early 2012 this team was revived and now has a mailing list as well as a channel called #kde-quality on irc.freenode.net. There are many different domains a Quality team should cover (see a complete list here: *http://techbase.kde.org/Contribute/Quality_Team), but as a newly starting team we decided to focus our work on testing, mainly also because of the reduced manpower we started with. Contents 1 Testing 1.1 What exactly does testing mean? 1.2 Initial steps 1.2.1 Wiki work 1.2.2 Trunk testing 1.2.3 Beta testing 1.3 Existing testing infrastructure 1.3.1 Continuous Integration (Jenkins) 1.3.2 Unit tests 1.3.3 Code (syntax) tests 1.3.4 Debugging 1.4 Existing testing tools 1.5 ATP Examples 1.6 Quality Guidelines 2 Bug handling 2.1 Bug triaging 2.2 The Extra Mile Testing What exactly does testing mean? Testing is part of the overall Quality Assurance of software. More information about the exact definition can be found here: http://en.wikipedia.org/wiki/Software_quality_assurance and here: http://en.wikipedia.org/wiki/Software_testing A very interesting read is this: http://www.thebraidytester.com/downloads/YouAreNotDoneYet.pdf Please also have a look at the Tutorial on how to become a KDE Tester Initial steps Since this is a new start we need to define the exact goal of this team. There is a Brainstorming page where ideas are gathered. Wiki work The basics is of course to establish a useful wiki resource. We currently use https://trello.com/kdetesting to avoid duplicate work. Please ping Anne-Marie (annma) or Myriam (Mamarok) in #kde-quality on irc.freenode.net to be added to the group. Trunk testing Trunk testing can be done with packages as well as building from source: Plasma/InstallingNext Beta testing Please see the Beta subpage for more information. Existing testing infrastructure Continuous Integration (Jenkins) KDE already runs a build server with Jenkins: http://build.kde.org/ Please ask the KDE sysadmins if you would like to use it for your project. Who gets the results? Who fixes them? This tool needs to be really used. Unit tests Tutorial for unit tests in KDE: https://community.kde.org/Guidelines_and_HOWTOs/UnitTests Code (syntax) tests A static code analyzing tool is provided by the EnglishBreakfastNetwork. Another static code analyzer is cppcheck which can be integrated with Jenkins. The Clang Static Analyzer is also a useful tool and can be integrated with Jenkins. More information can also be found here: http://techbase.kde.org/Development/Tutorials/Code_Checking Coverity Prevent is another tool, not Open Source but we can get the results from it. Currently KDE is also subscribed to http://scan.coverity.com/, all developers can get an account on it, the project admins just have to approve them. Other available tools: Prevent by Parasoft Klocwork Debugging KDE already has an extensive wiki for debugging: http://techbase.kde.org/Development/Tutorials/Debugging Existing testing tools An non-exhaustive and maybe not up-to-date list of testing tools can be found here: http://www.opensourcetesting.org/ See also http://techbase.kde.org/Development/Tools#Quality_Assurance Name Description QtTest Qt provides a testing module that can be used for unit testing: http://qt-project.org/doc/qt-4.8/qttest.html There also is a possibility to do basic UI testing. Valgrind A tool to analyze memory leaks: http://techbase.kde.org/Development/Tools/Valgrind All apps should be ran through Valgrind on a regular basis, part of the Quality Assurance. Piglit A tool to test OpenGL drivers: http://people.freedesktop.org/~nh/piglit/ might be useful to test parts of KWin and other OpenGL applications. Gamma Ray A dynamic code analyzer: http://www.kdab.com/kdab-products/gammaray/ It is more a tool for developers to help them track down problems than a QA tool. Testopia Testopia provides a test case management together with Bugzilla. This is currently evaluated by the KDE sysadmins: http://www.mozilla.org/projects/testopia/ please be patient Squish Not Open Source software, but there is a free KDE version. Email [email protected] and say what you're doing to get it. Note that the KDE version isn't mentioned on the website. There is generic information: http://www.froglogic.com/ UI tests We will need to evaluate what tool would be the best for KDE. A list can be found here: http://en.wikipedia.org/wiki/List_of_GUI_testing_tools (incomplete) and here: http://www.opensourcetesting.org ATP Examples The following are examples for application testing procedures: Application Test Procedure for Umbrello Quality Guidelines Plasma Applets: http://community.kde.org/Getinvolved/Testing/Plasma_Applet_Quality_Guidelines Bug handling Bug triaging An essential part in the testing process is to have a cleaned up bugzilla database in terns of actuality of the bugs. For more information about bug triaging and participating in the KDE Bugsquad please see also the KDE Bugsquad wiki The Extra Mile There also is an initiative that aims to help KDE applications and workspaces to identify and fix small bugs and UI issues which get in the way of the user: Extra Mile Initiative Retrieved from "https://community.kde.org/index.php?title=Get_Involved/Quality&oldid=84598" Category: Testing Content is available under Creative Commons License SA 4.0 unless otherwise noted.