Blog

Kiwi TCMS 8.8

We're happy to announce Kiwi TCMS version 8.8!

IMPORTANT: this release includes many improvements, API changes, bug fixes, translation updates, new tests and internal refactoring. It is the sixth release to include contributions via our open source bounty program. You can explore everything at https://public.tenant.kiwitcms.org!

This is also the first release after Kiwi TCMS reached 200K pulls on Docker Hub!

Supported upgrade paths:

5.3   (or older) -> 5.3.1
5.3.1 (or newer) -> 6.0.1
6.0.1            -> 6.1
6.1              -> 6.1.1
6.1.1            -> 6.2 (or newer)

Docker images:

kiwitcms/kiwi       latest  4b31ecf8ab5b    654 MB
kiwitcms/kiwi       6.2     7870085ad415    957 MB
kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955 MB
kiwitcms/kiwi       6.1     b559123d25b0    970 MB
kiwitcms/kiwi       6.0.1   87b24d94197d    970 MB
kiwitcms/kiwi       5.3.1   a420465852be    976 MB

Changes since Kiwi TCMS 8.7

Improvements

  • Update bleach from 3.1.5 to 3.2.1
  • Update django-extensions from 3.0.8 to 3.0.9
  • Update django from 3.1.1 to 3.1.3
  • Update django-simple-history from 2.11.0 to 2.12.0
  • Update markdown from 3.2.2 to 3.3.3
  • Update pygments from 2.7.0 to 2.7.2
  • Update python-bugzilla from 2.5.0 to 3.0.1
  • Update node_modules/marked from 1.1.1 to 1.2.3
  • Update node_modules/prismjs from 1.21.0 to 1.22.0
  • Add management command refresh_permission. Closes Issue #1137 (Ivajlo Karabojkov)
  • Add bug tracker integration for Azure Boards. Closes Issue #1979 (@cmbahadir)
  • Add autosave configuration to web editor. Closes Issue #1958 (Mfon Eti-mfon)
  • Change ON/OFF buttons messages to Yes/No for several buttons (Alexander Tsvetanov)
  • Add support for object-level permissions for TestCase, TestPlan, TestRun and Bug objects via django-guardian
  • Complete redesign of Test Plan page to match the rest of Kiwi TCMS:
    • modern look and feel using the PatternFly UI library
    • remove unused legacy code & HTML templates
    • closes Issue #663, Issue #1977
  • Enable Markdown support for strike-through text
  • Always pull latest RPMs when building container images
  • Update documentation and images

Settings

  • AUTHENTICATION_BACKENDS setting is now explicitly specified because of django-guardian. Take care to include the default backends if you override this setting. See tcms/settings/common.py for more information.

Database

  • Add index to TestCase.summary field
  • Additional migrations from django-guardian around object-level permissions
  • New AnonymousUser record added by django-guardian
  • Start using django-tree-queries which improves how tree based structures are stored in the database.

important:

Requires PostgreSQL, sqlite3 >= 3.8.3, MariaDB >= 10.2.2 or MySQL >= 8.0 (if running without ONLY_FULL_GROUP_BY).

warning:

Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases do not support arrays and require us to provide a maximum length upfront. This means up to 50 levels of nested child-parent test plans!

API

  • Method TestExecution.update() will now modify field close_date depending on test execution status. Fixes Issue #1820
  • Method TestCase.add_comment() now returns the created comment
  • Method TestExecution.add_comment() now returns the created comment
  • Method TestPlan.add_case() now returns the newly added test case
  • Add method TestCase.sortkeys(). Fixes Issue #444
  • Add method Markdown.render()
  • Add method TestCase.comments()
  • Add method TestPlan.tree()

Bug fixes

  • Fix url formatting. Fixes Issue #1806 (Rosen Sasov)
  • When deleting TestExecutionStatus check that there will be at least 1 left before deleting! Closes Issue #1978
  • Update typeahead definitions for test case components, tags and for adding test plans to test cases. Fixes Issue #882
  • Add option to filter by reviewer in Test Plan page. Fixes Issue #564
  • Pass the number of disabled test cases to HTML template when creating a new test run. Fixes Issue #718

Refactoring & testing

  • New linter to warn against GenericForeignKey fields in models. Closes Issue #1303 (Bryan Mutai)
  • Add tests for assign_default_group_permissions() (Ivajlo Karabojkov)
  • Add tests for TestExecutionStatusAdmin. Refs Issue #1618 (Mariyan Garvanski)
  • Add tests for tcms.bugs.views.Search. Closes Issue #1601 (Mfon Eti-mfon)
  • Add tests for tcms.rpc.api.testrun. Closes Issue #1628 (@lcmtwn)
  • Add tests for tcms.rpc.api.classification. Closes Issue #1621 (Abhishek Chaurasia)
  • Add tests for tcms.rpc.api.priority. Closes Issue #1622 (Abhishek Chaurasia)
  • Add tests for tcms.rpc.api.testcasestatus. Closes Issue #1624 (Abhishek Chaurasia)
  • Add tests for tcms.rpc.api.attachment. Closes Issue #1619 (@awalvie)
  • Add tests for tcms.rpc.api.testexecution.remove_comment. Closes Issue #1625 (@awalvie)
  • Add tests for tcms.rpc.api.testexecutionstatus. Closes Issue #1626 (@awalvie)
  • Add tests for TestRun.add_case_run() method and rename it to TestRun.create_execution()
  • libkrb5-dev is not needed anymore in CI with newer tcms-api
  • Use Fedora 32 to build Bugzilla docker image in CI
  • Update signature for overriden class to match Django 3.1
  • Move SimpleMDE initialization to simplemde_security_overide.js
  • Move post_save.send() from bugs.views to comments.add_comment()

Kiwi TCMS Enterprise v8.8-mt

  • Based on Kiwi TCMS v8.7
  • Update kiwitcms-github-app from 1.2 to 1.2.

For more info see https://github.com/kiwitcms/enterprise#v88-mt-07-nov-2020

How to upgrade

Backup first! If you are using Kiwi TCMS as a Docker container then:

cd path/containing/docker-compose/
docker-compose down
docker-compose pull
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate

Refer to our documentation for more details!

Happy testing!

---

If you like what we're doing and how Kiwi TCMS supports various communities please help us!

"200K banner"

We are happy to announce that Kiwi TCMS has been downloaded more than 200000 times via Docker Hub! You can check the real-time stats here. To celebrate with us subscribe for a SaaS and/or Enterprise subscriptions using coupon code 200KOFF at checkout!

Thank you very much and Happy Testing!


If you like what we're doing and how Kiwi TCMS supports various communities please help us!

Hello testers, recently we had a chat with Gjore Zaharchev, a QA manager at Seavus and Testing Coach at SEDC Software Testing Academy in Skopje. Here is their story and how they use Kiwi TCMS!

Seavus Educational and Development Center is a private company as part of the Seavus Group and a specialized training center for education of staff in the fields of programming, design, computer networks and software testing. Around 90 students pass through their software testing academy every year with 60 students enrolled thus far. The training program is 6 months and covers many basic IT skills, manual testing, ISTQB fundamentals and automation testing. SEDC is located in Skopje, North Macedonia.

Hands-On Lab Activities

The study program includes multiple individual and team projects, intermediate exams and a final project. These are intended to exercise the most commonly used test design techniques and practice writing up the test scenarios. All scenarios are written directly in Kiwi TCMS. We've even seen test plans and test cases created during Christmas and the New Year holidays last year!

The software under test is usually the programs developed by students from our Academy for Programming, says Gjore. Later in the program we use real websites in order to show some bugs in the wild, he continues. On occasion students have found interesting problems with the websites of Booking.com and WizzAir. They've also managed to find a critical issue on one of our local systems. These are the trials and tribulations of teaching & testing in the wild.

Kiwi TCMS team still remembers one of Alex's training sessions where we used the website of an actual cinema. Unfortunately they went out of business and shutdown the victimized website right in the middle of the session. ;-)

Why did you decide to use Kiwi TCMS

When searching for a TCMS platform for the academy one of the decisive factors was cost. By being open source Kiwi TCMS has the side benefit of having zero initial usage cost which was very important for us. Regardless of that Kiwi TCMS is very easy to install & setup using Docker, very easy to on-board new users and generally well received by everyone.

This is a huge benefit for students because they can experiment with Kiwi TCMS and immediately see how some items work when executing testing workflows. For example they can visualize how a regression test run looks like compared to a test run for a critical security fix; or they can simulate working in groups to cover execution of a larger test plan.

What do your students say

Overall they like the workflow and can easily navigate within the user interface. They feel very positive because there is no complexity in the system and it is very intuitive. One of the areas which often receives questions is the ability to record test automation results!

Answer: Kiwi TCMS has the ability to fetch names and test results directly, via plugins for several test automation frameworks while others are on our backlog - TestNG, Jenkins, C#/NUnit! Anyone interested is welcome to Subscribe to each GitHub issue and follow the progress. Some issues are also part of our open source bounty program so we urge students to take a look and contribute!

Anything you want to ask our team

At SEDC we'd like to know what are your plans for Kiwi TCMS in the future?

Answer: Our plans, like our software, are transparent, check-out posts tagged roadmap! For 2020 this is refactoring of the last remaining legacy bits, continue work on our Telemetry feature and more work towards integration with various bug trackers and test automation frameworks. An extension to that is tighter integration with the GitHub platform!

Help us do more

If you like what we're doing and how Kiwi TCMS supports various communities please help us!


Thanks for reading and happy testing!

We are happy to announce that Kiwi TCMS is going to partner with Vola Software to provide 2 interns with opportunities for hacking open source and bootstrapping their careers!

Vola Software is a custom software development company in one of the poorest regions of the European Union and a long-time contributor to their local ecosystem via Vratsa Software Community. They are located in Vratsa, Bulgaria.

Internship program

Alexander Tsvetanov and Vladislav Ankov are joining the Kiwi TCMS team for a 10 month adventure until the end of July 2021 with the opportunity to continue for another year afterwards!

Both Sasho and Vladi are students in the Professional Technical Gymnasium in Vratsa and are required to work part-time as junior software developers during the last 2 years of their education. Given that they have very limited practical experience and the additional red tape around hiring youngsters many software companies directly avoid such kind of relationship. This creates a catch-22 circle for both employers who are looking to hire somewhat experienced young people and youngsters who are looking to advance their practical skills.

Here's where Kiwi TCMS steps-in! What better way to improve practical knowledge than contributing to an actively used and actively maintained open source software! We are nearing the 200K downloads mark on Docker Hub so changes made by Sasho and Vladi will be visible to a very big pool of our users and customers!

Both have already started their open source adventure last week and are currently going through some training. However they were faced with real problems which resulted in bug discovery and a pull request for python-bugzilla underlined by a 20 years old issue in Python. How's that for a start ?

Administrative

Vola Software is the direct employer for Sasho and Vladi because they have the necessary permits and experience required for hiring youngsters. Kiwi TCMS is the direct technical mentor and will be acting as a customer to Vola Software!

Vola Software will be paying a minimal salary to our interns as required by law. Kiwi TCMS will reimburse the full amount while Vola Software will be covering their accounting and administrative expenses. Both Sasho and Vladi will also be eligible for our open source bounty-program as an extra stimulation!

All expenses will be fully transparent and visible via our Open Collective page!

Help us do more

If you like what we're doing and how Kiwi TCMS supports various communities please help us!


Thanks for reading and happy testing!

We are happy to announce that Kiwi TCMS is going to partner with the MLH Fellowship open source program which is a 12 week internship alternative for students interested in becoming software engineers.

Major League Hacking (MLH) is a mission-driven B-Corp focused on empowering our next generation of technologists. Every year, more than 100,000 developers, designers, and makers join the MLH community to gain hands-on experience and build their professional networks. They are headquartered in the Greater New York Area, USA but operate world-wide.

Fellowship program

The Fall 2020 cohort runs between October 5 - December 21 and we're already into the Contributing phase of the program. Fellow students will be working on open issues from our backlog with a focus on tasks from our open source bounty program but they can really work on any open task!

Once a pull request has been made it will undergo first round code review by Cory Massaro who is the dedicated MLH Python mentor. Once Cory gives the +1 each pull request will be reviewed by a member of the Kiwi TCMS core team like usual.

To minimize the risk of conflicts between contributors we are going to apply the following rules:

  • Each MLH fellow would add a comment on the issue they are interested in (applies to other contributors too);
  • The issue will be assigned to them (new);
  • The issue will be labeled with the MLH Fellowship label (new);
  • The following comment will be added: This issue/bounty has been assigned to an MLH fellow who is currently working on it. Pull requests towards the same issue from other contributors will not be considered at this time. Please pick something else to work on!

Upon successful completion of tasks all MLH fellows will be eligible to claim their bounties via our Open Collective page. This is the same process other contributors go through, there is no difference.

Kiwi TCMS commits 2 core-team members who will serve office hours on the MLH Fellowship Discord server for couple of hours per week in order to answer questions and keep the ball rolling. We also commit to having bi-weekly meetings with MLH mentor(s) during the duration of the program.

Kiwi TCMS would also like to thank our friend Eddie Jaoude for putting us in touch with MLH and helping bring this partnership to reality. Thank you Eddie!

Help us do more

If you like what we're doing and how Kiwi TCMS supports various communities please help us!


Thanks for reading and happy testing!

Hello testers, as you know our friends at Pionir are working on physical hardware which can be used for interactive training and explanation of the Black-box testing technique. The inspiration comes from James Lyndsay’s Black Box Puzzles and Claudiu Draghia.

We have the source code of 3 boxes already published at https://github.com/kiwitcms/black-boxes but still missing bill of materials, design files for 3D printing and some basic instructions how to put everything together. There was a delay in delivery of some components but most of the work is close to completion. You may subscribe to issues for each box to follow the progress! Here are some images & videos from the development process.

Wason 2-4-6 box

Wason 246 box

Peltzman effect box

Peltzman effect box

Salience bias box

Salience bias box

According to Pionir's own words: We are testing the salience box and trying to cause emotional effect of an element. Vuk made a mistake and now he can't turn it off :D. How's that for dogfooding?

Help us do more

If you like what we're doing and how Kiwi TCMS supports the various communities around us please nominate us as GitHub Stars!


Thanks for reading and happy testing!

Kiwi TCMS 8.7

We're happy to announce Kiwi TCMS version 8.7!

IMPORTANT: this is a medium sized release which includes improvements, API changes, bug fixes, translation updates and new tests. It is the fifth release to include contributions via our open source bounty program. You can explore everything at https://public.tenant.kiwitcms.org!

Supported upgrade paths:

5.3   (or older) -> 5.3.1
5.3.1 (or newer) -> 6.0.1
6.0.1            -> 6.1
6.1              -> 6.1.1
6.1.1            -> 6.2 (or newer)

Docker images:

kiwitcms/kiwi       latest  1f2461b1facd    643 MB
kiwitcms/kiwi       6.2     7870085ad415    957 MB
kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955 MB
kiwitcms/kiwi       6.1     b559123d25b0    970 MB
kiwitcms/kiwi       6.0.1   87b24d94197d    970 MB
kiwitcms/kiwi       5.3.1   a420465852be    976 MB

Changes since Kiwi TCMS 8.6

Improvements

  • Update Django from 3.0.9 to 3.1.1

  • Update django-attachments from 1.6 to 1.8

  • Update django-extensions from 3.0.5 to 3.0.8

  • Update psycopg2 from 2.8.5 to 2.8.6

  • Update pygments from 2.6.1 to 2.7.0

  • Update python-gitlab from 2.4.0 to 2.5.0

  • Make it possible to use reCAPTCHA during registration. If you want to enable this then add the following to your settings:

    if 'captcha' not in INSTALLED_APPS:
        INSTALLED_APPS.append('captcha')
    
        RECAPTCHA_PUBLIC_KEY = '......'
        RECAPTCHA_PRIVATE_KEY = '.....'
        RECAPTCHA_USE_SSL = True
    

    For more info see https://www.google.com/recaptcha/admin/

  • Replace GlobalLoginRequiredMiddleware with tcms.kiwi_auth.backends.AnonymousViewBackend for anonymous read-only functionality. See section Anonymous read-only access in the documentation

  • Replace the ... in navigation bar with a 3 cogs icon to make the object-level menu more visible

Settings

  • Remove setting PUBLIC_VIEWS

API

  • Remove TestCase.get_components() in favor of Component.filter()
  • Bug.details() method will now return {} instead of failing if it can't find an issue tracker from an URL

Bug fixes

  • Remove documentation references to non-existing environment
  • Don't fail internal calls if Kiwi TCMS bug tracker can't find a bug

Refactoring & testing

  • Add tests for tcms.core.templatetags. Closes Issue #1602 (Mariyan Garvanski)
  • Add tests for tcms.bugs.views.Edit. Closes Issue #1599 (Mfon Eti-mfon)
  • Add tests for tcms.bugs.views.AddComment. Closes Issue #1600 (Mfon Eti-mfon)
  • Make paths used in migrations & settings platform aware in order to enable development mode on Windows (Mfon Eti-mfon)
  • Add new linter checker to check for use of db_column argument in model field definition. Closes Issue #736 (Bryan Mutai)
  • Add tests for Bug.details API method
  • Replace deprecated ifequal/ifnotequal template tags
  • Adjust migrations_order for Django 3.1 compatibility
  • Add npm audit check in CI
  • Resolve several pylint issues

Kiwi TCMS Enterprise v8.7-mt

  • Based on Kiwi TCMS v8.7
  • Overrides for setting PUBLIC_VIEWS have been removed
  • Update django-ses from 1.0.2 to 1.0.3
  • Update kiwitcms-github-app from 1.1 to 1.2
  • Update kiwitcms-tenants from 1.2.1 to 1.3.1

For more info see https://github.com/kiwitcms/enterprise/#v87-mt-16-sep-2020

How to upgrade

Backup first! If you are using Kiwi TCMS as a Docker container then:

cd path/containing/docker-compose/
docker-compose down
docker-compose pull
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate

Refer to our documentation for more details!

Happy testing!

GitHub Star nomination

After our recent success we again ask the community to support Kiwi TCMS.

Steps to reproduce:

  1. Go to https://stars.github.com/
  2. Click the Sign in button and Authorize the GitHub-Stars application
  3. Make sure you are on the Nominate page, https://stars.github.com/nominate/
  4. Type kiwitcms as the username. The @ character is provided automatically
  5. Type the following text for your reasoning: they took an abandoned project and turned it into the leading open source test management system with more than 150k downloads with users & contributors across the world!
  6. Click on the checkbox to acknowledge your nomination
  7. Click the Submit nomination button!

Expected results:

  1. You fit into the 180 characters provided for nomination
  2. Your submission is recorded by GitHub

Why are we doing this

GitHub Stars is a program that recognizes those who go above and beyond and help inspire and educate their communities which is exactly what the Kiwi TCMS team has been doing from our very start! Checkout our community blog posts for more information!

This program will give us access to cool new features on the GitHub platform and also let us showcase what we do before a larger audience!

Thank you for helping us and happy testing!

Click here to vote for Kiwi TCMS

Kiwi TCMS is happy to announce that our website https://kiwitcms.eu is a finalist in the 2020 .eu Web Awards in the Leaders category! Big Thank You to everyone who voted for us!

Our team is also very happy that we are not the only open source finalist. Congratulations to the OpenScan project and their community!

We are still committed to keeping our earlier promise and use the award to represent the larger open source community! The decision is now in the hands of the jury. Wish us good luck!

Kiwi TCMS 8.6

We're happy to announce Kiwi TCMS version 8.6!

IMPORTANT: this is a high severity security update which includes improvements, bug fixes, database migrations, API changes, translation updates and new tests. It is the fourth release to include contributions via our open source bounty program. You can explore everything at https://public.tenant.kiwitcms.org!

Supported upgrade paths:

5.3   (or older) -> 5.3.1
5.3.1 (or newer) -> 6.0.1
6.0.1            -> 6.1
6.1              -> 6.1.1
6.1.1            -> 6.2 (or newer)

Docker images:

kiwitcms/kiwi       latest  f2c21b370cd9    639 MB
kiwitcms/kiwi       6.2     7870085ad415    957 MB
kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955 MB
kiwitcms/kiwi       6.1     b559123d25b0    970 MB
kiwitcms/kiwi       6.0.1   87b24d94197d    970 MB
kiwitcms/kiwi       5.3.1   a420465852be    976 MB

Changes since Kiwi TCMS 8.5

Security

  • A high severity vulnerability which allows unprivileged data access via JSON-RPC endpoints has been fixed:
    • Affects all previous versions of Kiwi TCMS
    • Instances on public networks, such as Amazon EC2, are at higher risk
    • Instances on private networks are still vulnerable to anyone who can access the same network
    • This vulnerability has been disclosed by Michael Longmire (ShastaQA) and Stone Pack (ShastaQA)
  • Update marked from 0.8.2 to 1.1.1 for a medium severity vulnerability, see SNYK-JS-MARKED-584281

Improvements

  • Update django from 3.0.8 to 3.0.9

  • Update django-attachments from 1.5 to 1.6

  • Update prismjs from 1.20.0 to 1.21.0

  • Update pygithub from 1.51 to 1.53

  • Replace deprecated bleach-whitelist with bleach-allowlist

  • Make django-extensions a production dependency because it provides many useful manage.py commands

  • Enable syntax highlight for code blocks

  • Remove file attachments when related objects are deleted

  • Add image and file upload buttons to text editor. Fixes Issue #977

  • Require auth.view_user permission when trying to view user profiles. Fixes Issue #1685

  • Multiple pages now explicitly require view permissions before displaying read-only information. This gives administrators a finer grained control:

    • /bugs/<id>/ -> bugs.view_bug
    • /bugs/search/ -> bugs.view_bug
    • /cases/search/ -> testcases.view_testcase
    • /case/<id>/ -> testcases.view_testcase
    • /plans/search/ -> testplans.view_testplan
    • /plan/<id>/* -> testplans.view_testplan
    • /runs/search/ -> testruns.view_testrun
    • /runs/<id>/ -> testruns.view_testrun

    Previously these pages only required the user to be logged in

Warning:

The auth.view_user permission is not granted by default because the profile page contains personal information like names and email address. Administrators can grant this permission on a group or individual basis if they are OK with sharing this information.

Database

  • Migrations which manipulate data (contain RunPython) can now be rollbacked. See ./manage.py migrate --plan for the order in which migrations are applied (Bryan Mutai)
  • Increase Product.name size from 64 to 255 characters

API

  • Remove method TestExecution.create() in favor of TestRun.add_case()
  • Add method User.add_attachment()
  • Multiple API methods now explicitly require view permissions before returning read-only information. This is in-sync with the per-page changes listed above:
    • Bug.filter() -> bugs.view_bug
    • Bug.report() -> testruns.view_testexecution
    • Build.filter() -> management.view_build
    • Category.filter() -> testcases.view_category
    • Classification.filter() -> management.view_classification
    • Component.filter() -> management.view_component
    • PlanType.filter() -> testplans.view_plantype
    • Priority.filter() -> management.view_priority
    • Product.filter() -> management.view_product
    • Tag.filter() -> management.view_tag
    • TestCase.get_components() -> testcases.view_testcase
    • TestCase.get_notification_cc() -> testcases.view_testcase
    • TestCase.filter() -> testcases.view_testcase
    • TestCaseStatus.filter() -> testcases.view_testcasestatus
    • TestExecution.filter() -> testruns.view_testexecution
    • TestExecution.get_links() -> linkreference.view_linkreference
    • TestExecutionStatus.filter() -> testruns.view_testexecutionstatus
    • TestPlan.filter() -> testplans.view_testplan
    • TestRun.get_cases() -> testruns.view_testrun
    • TestRun.filter() -> testruns.view_testrun
    • User.filter() -> auth.view_user
    • Version.filter() -> management.view_version

Bug fixes

  • Update documentation to reflect that test cases cannot be rearranged from within a TestRun but only from a TestPlan. Fixes Issue #1805 (@Prome88)
  • Incorrect code formatting for HTML <pre> tags. Closes Issue #1300
  • Fix a bug with the history handler when importing objects with ID field set. Resolves a crash when trying to restore backup data
  • Delete comments when Bug is removed

Refactoring & testing

  • Add linter to warn about missing backwards migrations callable in RunPython and fix all pylint offenses. Fixes Issue #1774 (Bryan Mutai)
  • Teach linter to check API for @permissions_required. Fixes Issue #1089
  • Refactor NewExecutionForm to use ModelForm (Rosen Sasov)
  • Refactor UpdateExecutionForm to use ModelForm (Rosen Sasov)
  • Add tests for tcms.bugs.api. Closes Issue #1597 (Mfon Eti-mfon)
  • Add tests for tcms.bugs.views.New. Closes Issue #1598 (Mfon Eti-mfon)
  • Add tests for tcms.rpc.api.testplan. Closes Issue #1627 (@lcmtwn)
  • Add tests for percentage() function References Issue #1602 (Mariyan Garvanski)
  • Add the migrations_order command to help test rollbacks
  • Adjust code for deprecation warnings from Django 3.1
  • Use Python 3 style super() without arguments
  • Update login page to match our new website design

Kiwi TCMS Enterprise v8.6-mt

  • Based on Kiwi TCMS v8.6

For more info see https://github.com/kiwitcms/enterprise/#v86-mt-23-aug-2020

How to upgrade

Backup first! If you are using Kiwi TCMS as a Docker container then:

cd path/containing/docker-compose/
docker-compose down
docker-compose pull
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate

Refer to our documentation for more details!

Happy testing!

Hello testers, we have very important news around how container images for Kiwi TCMS will be distributed! Recently Docker has announced several changes in their storage plans which makes it less viable for our team to continue using their services in full!

Information about official upstream container images

The official upstream Kiwi TCMS container image will continue to be publicly available via Docker Hub as before. In addition all existing and new images will be available via Quay.io. These images are available as

Content is exactly the same between the two registries and you may use the one which you like best!

Warning: after November 1st 2020 older versions will not be available from Docker Hub, only from Quay.io! The reason is that Docker is enforcing a 6 month image retention limit for free plans!

Information about private containers for subscribers

Subscribers enjoy the benefit of having read-only access to tagged versions of the upstream Kiwi TCMS container images as well as access to tagged versions of Kiwi TCMS Enterprise container images! Previously these containers were distributed via Docker Hub and are now available via Quay.io:

  • mrsenko/kiwitcms -> quay.io/kiwitcms/version (version tagged upstream images)
  • mrsenko/kiwitcms-enterprise -> quay.io/kiwitcms/enterprise (enterprise images)

Important: existing subscribers have been notified and granted access to the new repositories on Quay.io. We advise you to update your docker-compose.yml files and start using the new images at your earliest convenience!

Warning: existing subscribers will continue having access to private repositories on Docker Hub until December 31st 2020! Private repositories on Docker Hub will become unavailable after January 31st, 2021 when Docker's new storage plans will be forced into effect!

Why did we chose Quay.io

There are multiple container registry services available! We think Quay.io delivers the best price/quality ratio for our own use-case. In particular we like the billing model around number of private repositories instead the one around the number of users in your organization. That's very similar to how we provide access to Kiwi TCMS via our own subscriptions!

Also it just looks cool if you employ your imagination, especially for non-native English speakers: quay -> qu-ai -> QA!


Thanks for reading and happy testing!

QGIS has chosen Kiwi TCMS

We are happy to announce that QGIS has chosen Kiwi TCMS for the basis of their Quality Assurance methodology and infrastructure improvement program! Kiwi TCMS will play a central role in storing test case definitions, organizing test cycles, and assigning and tracking test executions by testers from the QGIS community.

QGIS is a free and open source geographic information system which contains desktop, server, web and mobile applications for various operating systems. It is an established project with very large and diverse community and also one of the very well known open source GIS systems.

The proposal QEP#180 is the highest voted proposal in the 2020 QGIS Grant Program and has been awarded a budget of 5000€! This grant will allow the proponents to spend significantly more time setting up the infrastructure and planning a methodology for manual testing.

Scope of proposal

QEP#180 aims to create the necessary infrastructure and methodology to organize and encourage systematic testing before each QGIS release:

  • Setup a test management system to organize test cycles, assign and track tests execution;
  • Elaborate and document a methodology to execute testing to help testers;
  • Resurrect and move the tester plugin to QGIS repositories. Publish it in the QGIS official repository
  • Create an initial set of relevant test cases;
  • Organize and execute the initial test cases for the next releases.

This effort will steer members & volunteers of the QGIS community towards a more systematic and organized testing during a feature freeze period before a release. The focus here is on integration testing, manual & semi-automated workflows for important functionality that should never regress and is hard or impossible to cover via unit tests.

The proposal is lead by Alexandre Neto, Giovanni Manghi and Alexander Bruy!


On behalf of the Kiwi TCMS community welcome aboard and happy testing!

Kiwi TCMS Enterprise v8.5.2-mt

We're happy to announce Kiwi TCMS Enterprise version 8.5.2-mt and extended support hours for subscribers in America.

Note: this is only available to customers with an active Enterprise subscription!

Docker images:

mrsenko/kiwitcms-enterprise   8.5.2-mt      633291dd5219    887MB

Changes since Kiwi TCMS Enterprise v8.5.1-mt

  • Based on Kiwi TCMS v8.5
  • Update django-ses from 1.0.1 to 1.0.2
  • Update kiwitcms-github-app from 1.0 to 1.1

This release includes improvements and bug-fixes for kiwitcms-github-app.

An important change is how issues reported via our 1-click bug report feature are presented on GitHub. For public repositories issues reported via Kiwi TCMS + GitHub App integration will be opened by @kiwitcms-bot with Kiwi TCMS as shown below:

Extended support hours

Working hours have been updated as follows:

  • 09-21 UTC/Mon-Fri with response within 24 hours for Enterprise subscribers
  • 09-17 UTC/Mon-Fri with response within 72 hours for Private Tenant subscribers

Happy testing!

Kiwi TCMS integration with 3rd party bug trackers supports the 1-click bug report feature. However you may want to change how the initial information is structured or even what exactly is written in the initial comment. This article shows how to do this.

The default text used for 1-click bug reports gets compiled based on information present in the TestExecution - Product, Version, TestCase.text, etc. This is encapsulated in the tcms.issuetracker.base.IssueTrackerType._report_comment() method. You may extend the existing bug tracker integration code with your own customizations. In this example I've extended the KiwiTCMS bug tracker implementation but you can provide your own from scratch

# filename: mymodule.py
class ExtendedBugTracker(KiwiTCMS):
    def _report_comment(self, execution):
        comment = super()._report_comment(execution)

        comment += "----- ADDITIONAL INFORMATION -----\n\n"
        #
        # fetch more info from other sources
        #
        comment += "----- END ADDITIONAL INFORMATION -----\n"
        return comment

Then override the EXTERNAL_BUG_TRACKERS setting to include your customizations:

EXTERNAL_BUG_TRACKERS.append('mymodule.ExtendedBugTracker')

and change the bug tracker type, via https://tcms.example.com/admin/testcases/bugsystem/, to mymodule.ExtendedBugTracker.

IMPORTANT

  • Information how to change settings can be found here
  • mymodule.py may live anywhere on the filesystem but Python must be able to import it
  • It is best to bundle all of your customizations into a Python package and pip3 install it into your customized docker image
  • API documentation for bug tracker integration can be found here
  • Rebuilding the docker image is outside the scope of this article. Have a look at this Dockerfile for inspiration

Happy testing!

Kiwi TCMS 8.5

We're happy to announce Kiwi TCMS version 8.5!

IMPORTANT: this is a medium sized release which includes many improvements, database migrations, translation updates and new tests. It is the third release to include contributions via our open source bounty program. You can explore everything at https://public.tenant.kiwitcms.org!

Supported upgrade paths:

5.3   (or older) -> 5.3.1
5.3.1 (or newer) -> 6.0.1
6.0.1            -> 6.1
6.1              -> 6.1.1
6.1.1            -> 6.2 (or newer)

Docker images:

kiwitcms/kiwi       latest  4379e2438e43    636 MB
kiwitcms/kiwi       6.2     7870085ad415    957 MB
kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955 MB
kiwitcms/kiwi       6.1     b559123d25b0    970 MB
kiwitcms/kiwi       6.0.1   87b24d94197d    970 MB
kiwitcms/kiwi       5.3.1   a420465852be    976 MB

Changes since Kiwi TCMS 8.4

Improvements

  • Update django from 3.0.7 to 3.0.8
  • Update django-colorfield from 0.3.0 to 0.3.2
  • Update django-modern-rpc from 0.12.0 to 0.12.1
  • Update django-simple-history from 2.10.0 to 2.11.0
  • Update mysqlclient from 1.4.6 to 2.0.1
  • Update python-gitlab from 2.2.0 to 2.4.0
  • Update python-bugzilla from 2.3.0 to 2.5.0
  • Add middleware to warn for unapplied migrations. Fixes Issue #1696 (Bryan Mutai)
  • Add "insert table" button to SimpleMDE toolbar. References Issue #1531 (Bryan Mutai)
  • Implement kiwitcms-django-plugin. Resolves Issue #693 (Bryan Mutai)
  • Add missing permission check for TestExecution.add_link() API method (Rosen Sasov)
  • Add missing permission check for TestExecution.remove_link() API method (Rosen Sasov)
  • Admin interface will now appear translated
  • Propagate server side API errors to the browser. Closes Issue #625, Issue #1333
  • Improvements for Status Matrix telemetry page:
    • Make the horizontal scroll bar at the bottom always visible
    • Make the header row always visible
    • Add button to show columns in reverse. Fixes Issue #1682
    • Make it possible to display TestExecutions from child TestPlans. Fixes Issue #1683

Database

  • Update existing Bug tracker records to match the changes introduced with the new EXTERNAL_BUG_TRACKERS setting

Settings

  • Add EXTERNAL_BUG_TRACKERS setting which is a list of dotted class paths representing external bug tracker integrations. Plugins and Kiwi TCMS admins can now more easily include customized integrations

Refactoring & testing

  • Add new linter to check for label arguments in form field classes. Fixes Issue #738 (Bryan Mutai)
  • Add new linter to check if all forms inherit from ModelForm. Fixes Issue #1384 (Bryan Mutai)
  • Enable pylint plugin pylint.extensions.docparams and resolve errors. Fixes Issue #1192 (Bryan Mutai)
  • Migrate 'test-for-missing-migrations' from Travis CI to GitHub workflow. Fixes Issue #1553 (Bryan Mutai)
  • Add tests for tcms.bugs.api.add_tag(). References Issue #1597 (Mfon Eti-mfon)
  • Add tests for tcms.bugs.api.remove_tag(). References Issue #1597 (Mfon Eti-mfon)
  • Add test for tcms.testplans.views.Edit. References Issue #1617 (@cmbahadir)
  • Add tests for markdown2html(). Fixes Issue #1659 (Mariyan Garvanski)
  • Add test for Cyrillic support with MariaDB. References Issue #1770

Kiwi TCMS Enterprise v8.5-mt

  • Based on Kiwi TCMS v8.5
  • Update django-ses from 0.8.14 to 1.0.1
  • Update kiwitcms-tenants from 1.1.1 to 1.2
  • Update social-auth-app-django from 3.4.0 to 4.0.0
  • Start tagging non-Enterprise images of kiwitcms/kiwi - will be provided via separate private repository for enterprise customers. See here

For more info see https://github.com/MrSenko/kiwitcms-enterprise/#v85-mt-10-july-2020

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

How to upgrade

Backup first! If you are using Kiwi TCMS as a Docker container then:

cd path/containing/docker-compose/
docker-compose down
docker-compose pull
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate

Refer to our documentation for more details!

Happy testing!

Kiwi TCMS is opening a call for proposals: Tell us how do you deploy, backup and upgrade your Kiwi TCMS containers? What environment do you use, how do you migrate data or ensure the system is always up and running? How do you go about testing if a newer version doesn't break the features that you use ? What best practices have you identified that can help others?

We are going to collect your feedback and update the existing documentation.

Please submit your responses here: https://docs.google.com/forms/d/e/1FAIpQLSe-kioT_e3UHwV5irwLroR2Jsk5oYM_Ls6acVeLVcBn7Kpt7Q/viewform. All fields are optional, including your email address!

Thank you and happy testing!

Django plugin for Kiwi TCMS

We're happy to announce the initial release of kiwitcms-django-plugin! This package allows you execute your Django test suite and report the results into Kiwi TCMS! This plugin has been developed by contributor Bryan Mutai as part of our open source bounty program.

To install:

pip install kiwitcms-django-plugin

and then in your settings.py specify:

TEST_RUNNER = 'tcms_django_plugin.TestRunner'

This plugin needs the ~/.tcms.conf configuration file:

[tcms]
url = https://tcms.server/xml-rpc/
username = your-username
password = your-password

Product information and how to report can be controlled via environment variables which are documented here. Example results from the plugin's own test suite are reported in TP-296!

Happy testing!

We are happy to announce that versioned releases of Kiwi TCMS container images are now available to customers with an active enterprise subscription.

For a long time our release policy has been to push only latest version of our upstream kiwitcms/kiwi containers. This upstream channel doesn't carry version tags and receives versioned releases only when there are backwards incompatible database migrations! This proved challenging to administrators who don't upgrade immediately to the latest version as soon as it comes out.

For example this happens in environments where admins use the upstream images as proof of concept and later switch to a production grade installation. Quite often they migrate to the Kiwi TCMS Enterprise containers during the same time.

Starting today versioned releases of Kiwi TCMS (single tenant) will be available via the mrsenko/kiwitcms private repository on Docker Hub. This repository includes tagged versions of the same docker images coming from the kiwitcms/kiwi channel! Access is granted automatically to all existing enterprise subscribers!

Kiwi TCMS 8.4

We're happy to announce Kiwi TCMS version 8.4!

IMPORTANT: this is a medium sized release which includes minor security fixes, many improvements & bug-fixes and translations in several new languages. It is the second release to include contributions via our open source bounty program. You can explore everything at https://public.tenant.kiwitcms.org!

Supported upgrade paths:

5.3   (or older) -> 5.3.1
5.3.1 (or newer) -> 6.0.1
6.0.1            -> 6.1
6.1              -> 6.1.1
6.1.1            -> 6.2 (or newer)

Docker images:

kiwitcms/kiwi       latest  602dddcf41a7    646 MB
kiwitcms/kiwi       6.2     7870085ad415    957 MB
kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955 MB
kiwitcms/kiwi       6.1     b559123d25b0    970 MB
kiwitcms/kiwi       6.0.1   87b24d94197d    970 MB
kiwitcms/kiwi       5.3.1   a420465852be    976 MB

Changes since Kiwi TCMS 8.3

Improvements

  • Update Django from 3.0.5 to 3.0.7 - security update for functionality not used by Kiwi TCMS
  • Update bleach from 3.1.4 to 3.1.5
  • Update django-grappelli from 2.14.1 to 2.14.2
  • Update django-simple-history from 2.9.0 to 2.10.0
  • Update markdown from 3.2.1 to 3.2.2
  • Update pygithub from 1.50 to 1.51
  • Update python-redmine from 2.2.1 to 2.3.0
  • Update patternfly from 3.59.4 to 3.59.5
  • Add manage.py set_domain command to change Kiwi TCMS domain. Fixes Issue #971 (Ivajlo Karabojkov)
  • GitHub bug details now works for private issues
  • Gitlab bug details now works for private issues
  • JIRA bug details now works for private issues
  • Redmine bug details now works for private issues
  • New feature: 1-click bug report for Bugzilla
  • New feature: 1-click bug report for Gitlab
  • New feature: 1-click bug report for JIRA
  • New feature: 1-click bug report for Redmine
  • Reverting to older historical version via Admin panel now redirects to object which was reverted. Fixes Issue #1074
  • Documentation updates

Important

Starting from v8.4 all supported bug trackers now feature 1-click bug report integration! Here's an example of how they look like for GitHub and JIRA:


Note

Some external bug trackers like Bugzilla & JIRA provide more flexibility over which fields are required for a new bug report. The current functionality should work for vanilla installations and would fall back to manual bug reporting if it can't create a new bug automatically!

Database

  • Force creation of missing permissions for m2m fields from the tcms.bugs app:
    • bugs.add_bug_tags
    • bugs.change_bug_tags
    • bugs.delete_bug_tags
    • bugs.view_bug_tags
    • bugs.add_bug_executions
    • bugs.change_bug_execution
    • bugs.delete_bug_execution
    • bugs.view_bug_executions

Warning

TCMS admins of existing installations will have to assign these by hand to users/groups who will be allowed to change tags on bugs!

Settings

  • Define the KIWI_DISABLE_BUGTRACKER=yes environment variable if you wish to disable the internal bug tracker. Closes Issue #1370

Bug fixes

  • Workaround missing MariaDB CHARSET/COLLATION support, see our docker-compose.yml. Fixes Issue #1700
  • Install missing /usr/bin/mysql in container
  • Warning message for unconfigured Kiwi TCMS domain does not show HTML tags in Admin anymore. Fixes Issue #964
  • Unescape the &amp; string when trying to open new windows after clicking the 'Report bug' button in TestExecution. Fixes Issue #1533
  • Try harder to restore the original navigation menu instead of leaving bogus menu items. Fixes Issue #991
  • Robot Framework plugin is now GA. Close Issue #984
  • Add LinkReference to TestExecution after creating bug via 1-click. The UI still needs to be refreshed which will be implemented together with the redesign of the TestRun page
  • Update documented signature for API method TestCase.add_component to match current behavior, see https://stackoverflow.com/questions/61648405/

Refactoring & testing

  • Migrate check-docs-source-in-git to GitHub workflows. Fixes Issue #1552 (@Prome88)
  • Migrate build-for-pypi to GitHub workflows. Fixes Issue #1554 (@lcmtwn)
  • Add tests for TestCaseAdmin (Mariyan Garvanski)
  • Add tests for BugAdmin. Fixes Issue #1596 (Mariyan Garvanski)
  • Omit utils/test from coverage reports. Fixes Issue #1631 (@cmbahadir)
  • Omit tcms/tests from coverage reports. Fixes Issue #1630 (@cmbahadir)
  • Add tests for tcms.core.forms.fields - Fixes Issue #1629 (@cmbahadir)
  • Add tests for TestExecution.update() for case_text_version field (Rosen Sasov)
  • Refactor bulk-update methods in TestRun page to use JSON-RPC. Fixes Issue #1063 (Rosen Sasov)
  • Start using _change_reason instead of changeReason field in django-simple-history
  • Remove unused StripURLField & Version.string_to_id()
  • Refactoring around TestCase and TestPlan cloning methods
  • Start testing with the internal bug tracker disabled
  • Start testing with all supported external bug trackers. Fixes Issue #1079
  • Start Codecov for coverage reports
  • Add tests for presence of mysql/psql binaries in container
  • Add APIPermissionsTestCase with example in TestVersionCreatePermissions
  • Move most test jobs away from Travis CI to GitHub workflows

Translations

Note

Some of the translations in Chinese and German and all of the strings in Japanese and Korean have been contributed by a non-native speaker and are sub-optimal, see OpenCollective #18663. If you are a native in these languages and spot strings which don't sit well with you we kindly ask you to contribute a better translation via the built-in translation editor!

Kiwi TCMS Enterprise v8.4-mt

  • Based on Kiwi TCMS v8.4
  • Update social-auth-app-django from 3.1.0 to 3.4.0
  • Add django-python3-ldap add-on for LDAP logins

For more info see https://github.com/MrSenko/kiwitcms-enterprise/#v84-mt-03-june-2020

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

How to upgrade

Backup first! If you are using Kiwi TCMS as a Docker container then:

cd path/containing/docker-compose/
docker-compose down
# !!! docker tag to keep older image version on the machine
docker pull kiwitcms/kiwi
docker pull centos/mariadb-103-centos7
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate

Refer to our documentation for more details!

Happy testing!

We are happy to announce that Kiwi TCMS is going to partner with Pionir on the development of open source hardware for testers! Pionir is a free school focused on creating a new generation of digital leaders, an exponential culture and solving challenges using technology. They are located in Kikinda, Serbia.

Pionir students

This is not our first collaboration - the students are already aware of the Kiwi TCMS project and last year they participated in presentation & workshop hosted by Alex. Zamphyr, the organization behind Pionir, is also one of the first open source projects on our OSS program!

Black boxes for black-box testing

Black-box testing is a method of software testing that examines the functionality of the subject under test without peering into its internal structures or workings. It is often performed by manipulating the possible inputs and examining the resulting output. Experienced black-box testers often develop a hunch for where bugs my be and it is not uncommon for them to discover some obscure problems nobody else thought about. More often than not the basis for this is developing an understanding/expectation how the SUT works by careful exploration during many iterations. Thus being able to explore a SUT, observe its behavior, keep mental notes about possible relations between input-behavior-output and analyzing what is happening under the hood becomes an important skill for testers.

The idea for having something unknown to explore & train your skills first comes from James Lyndsay’s Black Box Puzzles and was more recently implemented by Claudiu Draghia. Now it's our turn!

Project description

Pionir will be developing hardware black boxes for teaching exploratory testing in cooperation with Kiwi TCMS. We have dedicated €2000 from our bounty program for students of the free school towards completing this project.

The goal of the project is to produce at least 3 boxes and reference designs that will serve as a didactic tool for teaching, but also be free and open hardware, and as such, available to everyone to build from source.

This project will be trusted to the students of the free school who will get opportunity to take part in the challenging process of building a digital appliance, from designing the machine logic, to develop and prototype hardware.

The project includes designing, assembling, programming, documenting and delivering this hardware to us! Everything is expected to be open source: list of components, assembly instructions, 3D design files, source code, documentation and instructions! Our goal is that this will be relatively cheap and easy to build so everyone else can build their own boxes. During the next several months there will be new repositories created under https://github.com/kiwitcms to host the various boxes.

The black boxes are expected to be available in October 2020 - just in time for the upcoming conference season where members of the larger testing and open source communities will be able to practice with them!

Call for sponsors

We are also calling upon teams and organizations who use Kiwi TCMS in their testing workflows. Please consider making a one-time donation or becoming a regular sponsor via our Collective. You can contribute as low as € 1! The entire budget will be distributed to the community!

Vote for Kiwi TCMS

Our website has been nominated in the 2020 .eu Web Awards and we've promised to do everything in our power to greet future FOSDEM visitors with an open source billboard advertising at BRU airport. We need your help to do that!

Happy testing!

Newer Posts

Page 4 / 8

Older Posts