Articles by Kiwi TCMS Team

"500K banner"

We are happy to announce that Kiwi TCMS has been downloaded more than 500000 times via Docker Hub! You can check the real-time stats here.

Thank you very much and Happy Testing!


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

Kiwi TCMS 10.1

We're happy to announce Kiwi TCMS version 10.1!

IMPORTANT: this release includes many improvements & security updates, database changes, new and updated API methods, bug fixes, translation updates, new tests and internal refactoring. It is the tenth release to include contributions via our open source bounty program and collaboration with Major League Hacking!

This is the second release after Kiwi TCMS reached 400K pulls on Docker Hub! 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  788af5c3f067    800 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 10.0

Improvements & security updates

  • Upgrade from Python 3.6 to Python 3.8 inside the container
  • Upgrade Django from 3.1.7 to 3.2.3
  • Upgrade django-attachments from 1.8 to 1.9.1
  • Upgrade django-contrib-comments from 2.0.0 to 2.1.0
  • Upgrade django-extensions from 3.1.1 to 3.1.3
  • Upgrade django-grappelli from 2.14.3 to 2.15.1
  • Upgrade django-simple-history from 2.12.0 to 3.0.0
  • Upgrade django-tree-queries from 0.4.3 to 0.5.1
  • Upgrade jira from 2.0.0 to 3.0.1
  • Upgrade pygments from 2.8.0 to 2.9.0
  • Upgrade python-gitlab from 2.6.0 to 2.7.1
  • Upgrade node_modules/html5sortable from 0.10.0 to 0.11.1
  • Upgrade node_modules/marked from 2.0.1 to 2.0.3
  • Time-stamp fields added to all TestRun pages. Closes Issue #1928 (Andreea Moraru)
  • Don't set TestRun.start_date automatically. Fixes Issue #2323 (Andreea Moraru)
  • Web based database initialization for new installations. Closes Issue #1698 (Ivajlo Karabojkov)
  • Automatically active the first registered user via web UI
  • Rearrange layout of before and after fields on search pages
  • Allow TestRun creation from navigation menu. Fixes Issue #2281
  • Document hardware specs & performance baseline results. Refs Issue #721
  • Document performance for TestCase.filter/TestRun.filter methods. Closes Issue #1173
  • Update documentation around docker-compose.yml and the extra script files that it needs
  • Document some useful management commands
  • Clarify set_domain command. Closes Issue #2375

Settings

  • Change TEMP_DIR to /var/tmp which affects the location in which intermediate files coming from migrations are saved. If /var/tmp doesn't exist the fallback is /tmp which on modern Linux distributions is ephemeral
  • Add DEFAULT_AUTO_FIELD to hard-code expected behavior and prevent unwanted changes introduced by future versions of Django

Database

  • Add new fields to TestCase - setup_duration, testing_duration and a calculatable expected_duration attribute (Angelina)
  • Remove unused TestRun.product_version field

API

  • Method TestRun.filter() return value changes field names:

    • product_version -> plan__product_version
    • product_version__value -> plan__product_version__value

    Warning

    You will need to adjust your API scripts if using these fields!

  • Method Component.filter() will return only distinct results

  • New method KiwiTCMS.version()

Bug fixes

  • Remove links and icons from TestRun print styling. Fixes Issue #2263 and Issue #2264 (Gagan Deep)
  • Emails notifications are now sent into server language. Fixes Issue #1589 (Kapil Bansal)
  • Fix compatibility bug for "advanced search & add" popup windows and latest Chrome browsers. Fixes Issue #2100
  • Redirect TestPlan Admin "Add" to the correct URL
  • Fix wrong TestExecution field names in queryset & HTML template. Refs Issue #1924
  • Add default display for None fields in Test Case page

Refactoring & testing

  • Add test automation for TestExecution.actual_duration. Refs Issue #1924 (@APiligrim)
  • Add test automation for TestCase.expected_duration. Refs Issue #1923 (@APiligrim)
  • Add test automation for ReadOnlyHistoryAdmin. Fixes Issue #1604 (Kapil Bansal)
  • Add similar-string checker to kiwi_lint. Fixes Issue #1126 (@17sushmita)
  • Resolve or silence the remaining outstanding pylint issues. Closes Issue #171
  • Update isort from 5.7.0 to 5.8.0
  • Convert forms to ModelForm
  • Remove unused method parameters
  • Remove unused string_to_list(). Closes Issue #340
  • Simplify method used for progress-bar in dashboard which also reduces the total number of SQL queries
  • Use existing functions, remove duplication
  • Remove unnecessary calls & definition of loadInitialTestPlans() in Telemetry pages

Kiwi TCMS Enterprise v10.1-mt

  • Based on Kiwi TCMS v10.1
  • Container image built with Python 3.8
  • Update kiwitcms-tenants from 1.4.3 to 1.4.4

IMPORTANT: monthly subscription price for Kiwi TCMS SaaS offering has been updated to 50 $/mo for new subscriptions. Existing customers will not be affected!

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!

Kiwi TCMS 10.0

We're happy to announce Kiwi TCMS version 10.0!

IMPORTANT: this is a major release which includes backwards incompatible API changes, new database fields, improvements, bug fixes, translation updates, new tests and internal refactoring. It is the ninth release to include contributions via our open source bounty program.

This is also the first release after Kiwi TCMS reached 400K pulls on Docker Hub! 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  9f23186803d5    736 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 9.0

Security

  • Update node_modules/marked from 1.2.7 to 2.0.1. Also fixes SNYK-JS-MARKED-1070800
  • Update django from 3.1.5 to 3.1.7 for CVE-2021-3281 and CVE-2021-23336

Improvements

  • Update bleach from 3.2.1 to 3.3.0
  • Update django-colorfield from 0.3.2 to 0.4.1
  • Update django-extensions from 3.1.0 to 3.1.1
  • Update markdown from 3.3.3 to 3.3.4
  • Update pygments from 2.7.4 to 2.8.0
  • Update python-gitlab from 2.5.0 to 2.6.0
  • Change ON/OFF button messages (Krum Petkov)
  • Automatically set test run to finished/not-finished depending on the state of all executions. Closes Issue #441
  • Allow assigning users from group admin page. Fixes Issue #1844
  • Improve documentation around setting up devel environment

Database

  • Add TestRun.planned_start and TestRun.planned_stop fields. Refs Issue #1928 (Andreea Moraru)
  • Add TestExecution.start_date field. Refs Issue #1924 (Anastasiya Uraleva)
  • Rename field TestExecution.close_date to TestExecution.stop_date (Anastasiya Uraleva)

API

Warning

This release changes how Kiwi TCMS serializes API results and thus introduces multiple backwards incompatible changes.

Important

All .filter() methods now return distinct records!

  • New method PlanType.create()
  • Method TestCase.add_component() now returns a serialized Component instead of a serialized TestCase. Refs Issue #2145
  • Methods Product.filter(), Product.create() and Product.update():
    • change input parameter classification_id to classification - type int
    • change result field classification_id to classification - type int
  • Method Category.filter() changes result field product_id to product - type int
  • Methods Component.filter(), Component.create() and Component.update():
    • change input parameter product_id to product - type int
    • change input parameter initial_owner_id to initial_owner - type int
    • change input parameter initial_qa_contact_id to initial_qa_contact - type int
    • change result field product_id to product - type int
    • change result field initial_owner_id to initial_owner - type int
    • change result field initial_qa_contact_id to initial_qa_contact - type int
    • adds result field cases - type int - a TestCase ID if this component is attached to a test case
  • Methods Version.filter() and Version.create():
    • change input parameter product_id to product - type int
    • change result field product_id to product - type int
  • Method Tag.filter() now returns additional fields: bugs, case, plan and run which causes existing queries to return similar records attached to different parent objects. Consumers of these results should be updated
  • Methods TestPlan.filter(), TestPlan.create() and TestPlan.update():
    • change input parameter author_id to author - type int
    • change input parameter parent_id to parent - type int
    • change input parameter product_id to product - type int
    • change input parameter product_version_id to product_version - type int
    • change input parameter type_id to type - type int
    • change result field author_id to author - type int
    • change result field parent_id to parent - type int
    • change result field product_id to product - type int
    • change result field product_version_id to product_version - type int
    • change result field type_id to type - type int
    • remove result fields cases, tag, default_product_version
  • Method TestPlan.filter() adds result fields product_version__value, product__name, author__username and type__name
  • Methods TestRun.filter(), TestRun.create() and TestRun.update():
    • change result field build_id to build - type int
    • change result field default_tester_id to default_tester - type int
    • change result field manager_id to manager - type int
    • change result field plan_id to plan - type int
    • change result field product_version_id to product_version - type int
    • remove result fields cc, tag
  • Method TestRun.filter() adds result fields product_version__value, plan__product, plan__name, build__name, manager__username and default_tester__username
  • Methods TestExecution.filter() and TestExecution.update():
    • change input parameter assigee_id to assignee - type int
    • change input parameter build_id to build - type int
    • change input parameter case_id to case - type int
    • change input parameter run_id to run - type int
    • change input parameter status_id to status - type int
    • change input parameter tested_by_id to tested_by - type int
    • change result field assigee_id to assignee - type int
    • change result field build_id to build - type int
    • change result field case_id to case - type int
    • change result field run_id to run - type int
    • change result field status_id to status - type int
    • change result field tested_by_id to tested_by - type int
  • Method TestExecution.filter() adds result fields assignee__username, tested_by__username, case__summary, build__name and status__name
  • Method TestExecution.get_links() change result field execution_id to execution - type int
  • Method TestRun.add_case() changes result field names similarly to TestExecution.filter() method
  • Methods TestCase.filter(), TestCase.create() and TestCase.update():
    • change input parameter author_id to author - type int
    • change input parameter case_status_id to case_status - type int
    • change input parameter category_id to category - type int
    • change input parameter default_tester_id to default_tester - type int
    • change input parameter priority_id to priority - type int
    • change input parameter reviewer_id to reviewer - type int
    • change result field author_id to author - type int
    • change result field case_status_id to case_status - type int
    • change result field category_id to category - type int
    • change result field default_tester_id to default_tester - type int
    • change result field priority_id to priority - type int
    • change result field reviewer_id to reviewer - type int
    • remove result fields component, plan, tag
  • Method TestCase.filter() adds result fields case_status__name, category__name, priority__value, author__username, default_tester__username and reviewer__username
  • Methods TestRun.get_cases() and TestPlan.add_case() change result field names similarly to TestCase.filter() method

Bug fixes

  • Fix removing a component from a test case immediately after it has been added. Fixes Issue #2145 (Gagan Deep)
  • Fix broken object navigation in navbar. Fixes Issue #991
  • Refactor search pages rendering to speed it up. Closes Issue #1014

Refactoring & testing

  • Update tests for TestRun.create() API method. Refs Issue #1928 (Andreea Moraru)
  • Add automation tests. Closes Issue #1618 (Mariyan Garvanski)
  • Add additional automation tests for tcms.management.admin. Closes Issue #1610 (Gagan Deep)
  • Add additional automation tests for tcms.testcases.views.EditTestCaseView. Closes Issue #1615 (Gagan Deep)
  • Add additional automation tests for tcms.kiwi_auth.forms. Closes Issue #1609 (Kapil Bansal)
  • Change location of included HTML templates (Alexander Tsvetanov, Krum Petkov)
  • Erase unused view & templates (Alexander Tsvetanov)
  • Enable eslint. Closes Issue #1281
  • Change how beakerlib test framework is installed to avoid problems during integration tests
  • Better inspection of beakerlib test results to avoid false positive results

Kiwi TCMS Enterprise v10.0-mt

  • Based on Kiwi TCMS v10.0
  • Update kiwitcms-github-app from 1.2.2 to 1.2.4
  • Update kiwitcms-tenants from 1.4.2 to 1.4.3
  • Update django-python3-ldap from 0.11.3 to 0.11.4

Automation framework plugins

The following test automation framework plugins have been upgraded to work with Kiwi TCMS v10.0:

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!

Kiwi TCMS has applied for GSoC 2021

"GSoC banner"

Dear open source hackers, we are happy to share that Kiwi TCMS has applied to Google Summer of Code 2021 as a mentoring organization!

While we're very early in the program timeline and we still don't know whether Kiwi TCMS will be accepted or not we'd like to use this opportunity and outline several areas which are good candidates for GSoC fellows to work on. Some of the tasks are also eligible for our open source bounty program. The majority of them require some knowledge of Python and Django.

Let's Encrypt SSL integration

By default Kiwi TCMS' container image comes with a self-signed SSL certificate! This is irritating because all modern browsers issue warnings for that and the majority of deployments do not have the infrastructure to distribute the self-signing Certificate Authority certificate files, e.g. make the browser trust the provided certificate.

This issue is compounded by the fact that production SSL certificates, issues by a well-known authority must be introduced from the outside. While this is documented there are fair amount of testers who do not have sufficient proficiency with Docker to do so.

The result is that we see many Kiwi TCMS deployments in the wild which completely disable HTTPS and users struggling to configure their SSL certificates.

An integration with Let's Encrypt would be a good choice. We've tried a proof of concept but had troubles running their official client on our container image.

The challenge will be to use a Let's Encrypt client that is supported on the CentOS Linux distribution (that's what we use) or a frequently maintained distribution independent package. Another challenge will be that the ACME protocol used needs to be able to talk back to the system asking for a new certificate. In most cases Kiwi TCMS will be deployed behind a firewall and initial certificate request/renewal requests may be able to go one way only.

Securing 3rd party dependencies

Kiwi TCMS itself uses services and tools like Snyk, npm audit, Coverity and Bandit against our own and against 3rd party source code. On the other hand some of our components (e.g. PatternFly) do not perform any kind of security testing. The starting point to unravel this is Issue #871.

As a minimum all issues reported by bandit & coverity against 3rd party dependencies must be sorted out:

  • Figure out if we execute our tools in the appropriate way as to not report unnecessary issues
  • Dissect all of the issues, especially ones from Bandit, report them to their upstream community, discuss and decide how to fix or ignore the issue and send a pull request to upstream
  • Figure out how to keep track/dashboard whether or not all of our runtime dependencies are using the same tools as we are (they are either open source or free to use for open source projects) since they seem to be good tools
  • Work with any upstream (2nd, 3rd, 4th, etc level dependencies) communities to adopt said tools and fix issues as they are discovered

All of this will ultimately benefit a broader community than Kiwi TCMS alone.

Integration with GitHub Actions and GitLab pipelines

As part of our continuing integration with GitHub we need to have an action which would report the results to Kiwi TCMS similar to how our automation framework plugins do!

You should start with GitHub because this is what Kiwi TCMS uses and we can immediately eat our own dog food. Originally proposed in Issue #817 then moved to github-app #10 with a slightly different focus.

Next (or in parallel) would be similar functionality for GitLab pipelines, proposed in Issue #1421

Java hacking

Kiwi TCMS does have a native junit-plugin but we are no experts in Java. In the testing world however Java is a very popular language and we need help building on top of the existing library and developing several other tools:

C# and Objective-C hacking

  • Issue #2020 - reporting plugin for NUnit, similar to other existing automation framework plugins. We're not sure how popular NUnit vs other test runners in the C# world is but it could be a good basis for developing future plugins. The challenge here is mostly for us since we're a Linux based team
  • Issue #1316 - reporting plugin for Kiwi-bdd a simple BDD for iOS. Again the challenge here would be on us since we don't have experience building and testing applications on iOS

Migration to Patternfly v4, possibly with React JS

The visual component library that Kiwi TCMS uses is called PatternFly. First it is a standard describing visual design, widget behavior and development hints for enterprise applications. Then it provides an actual implementation of their standards.

Kiwi TCMS is built with PatternFly v3 using raw HTML + CSS. This approach allowed us to get started quickly and gradually migrate from our legacy UI. It also works very well with Django which is structured around rendering HTML templates.

A major task is switching over to PatternFly v4 where there could be some differences in component syntax.

Since Kiwi TCMS v8.8 and v8.9 we have completely redesigned the TestPlan and TestRun pages. As they are the ones with the most possible interactivity and functionality we have hit the need to keep internal state on the front-end. This is rather cumbersome to manage by hand and calls for a more modern solution using React. There is PatternFly implementation as React components too.

The starting point is Issue #1323.

The volume of work is a challenge because all pages need to be migrated and we're not sure if this can be done and released in steps or all pages should be migrated and released together. In other words we don't know if shipping UI based on both PatternFly v3 and v4 will work.

The next challenge is refactoring the TestRun and TestPlan pages with React, keeping all existing functionality intact. A challenge here will also be the transactional nature of Django where it receives a browser request and sends a response, usually rendered HTML content! Lots of functionality happens both on the backend as well as in the HTML templates themselves - for example translations and permission checks.

JavaScript hacking

  • Issue #1281 - start using ESLint against our code base and clean-up all related issues
  • Issue #1910 - replace SimpleMDE with EasyMDE. Ideally we would like to depend on other active open source libraries and the rich text editor what we use looks like it needs replacement. We've got a few extra features hooked into the editor like syntax highlighting with dynamic loading of language definitions, support for inline attachments and a security override. All of these need to be kept in place.
  • Issue #1919 - reconsider using MomentJS. Well it looks like its original authors encourage everyone to actually stop using it and we should consider doing so as well. As it stands MomentJS is not widely used inside Kiwi TCMS except for timezone conversions in the browser. Should be relatively easy to replace, preferably with a vanilla JavaScript implementation. Either way we first need to know what actually has to be done.

Remaining telemetry

Testing Telemetry is one of our cool features and since we've started to redesign the legacy report feature testers are very happy with it. There are still some bits and pieces that are missing: Issue #616, Issue #1923, Issue #1924, Issue #1925, Issue #1926, Issue #1927, Issue #1928, Issue #1929, Issue #1940.

These generally depend on having the ability to record execution times in our database and afterwards the features are similar but relatively independent of one another.

Web hooks

Kiwi TCMS should be able to better integrate with 3rd party systems. This feature will allow users to configure custom URL to which Kiwi TCMS will send HTTP POST requests on certain events. It looks like we can base the implementation on top of django-rest-hooks and pair it up with RestrictedPython for further flexibility.

This feature is being tracked in Issue #1080 and Issue #913 but needs a more detailed definition.

Anything else

All of the proposals above are items which we have in our backlog and need help with. However participation in the Google Summer of Code program is not limited only to them. You are free to propose any other ideas/projects on which you would like to work during the summer. We would be happy to accept your contributions if we make it into the program.

Happy Testing!


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

Kiwi TCMS 9.0

We're happy to announce Kiwi TCMS version 9.0!

IMPORTANT: this is a major release which includes backwards incompatible database and API changes, improvements, bug fixes, translation updates, new tests and internal refactoring. It is the eight release to include contributions via our open source bounty program.

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

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  f98908772a2a    695 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.9

Improvements

  • Update django from 3.1.4 to 3.1.5
  • Update django-contrib-comments from 1.9.2 to 2.0.0
  • Update pygithub from 1.53 to 1.54.1
  • Update pygments from 2.7.3 to 2.7.4
  • Update mysqlclient from 2.0.1 to 2.0.3
  • Update node_modules/prismjs from 1.22.0 to 1.23.0
  • Update node_modules/marked from 1.2.5 to 1.2.7
  • Implement 'Select all' for TestCase Search page. Resolves Issue #2103 (Bryan Mutai)
  • Change ON/OFF button messages for several buttons (Krum Petkov)
  • Remove delete_selected action from admin pages
  • Show active test runs in TestPlan page
  • Hide irrelevant Version & Build selectors for Testing breakdown telemetry
  • Allow running to be passed as URL query param to TestRun Search page

Settings

  • Remove unused kiwi.rpc log handler from LOGGING setting

Database

Warning: Contains backwards incompatible changes.

  • Replace Build.product with Build.version. Closes Issue #246. Build objects are now associated with Version objects, not with Product objects!

    Warning:

    After migration existing builds will point to the "unspecified" version! If you want your telemetry to be accurate you will have to update these objects manually and point them to the appropriate version value!

  • Rename related_name for TestExecution model: case_run -> executions

  • Rename related_name for TestCase model: case -> cases

API

Warning: Contains backwards incompatible changes.

  • Methods Build.filter, Build.create and Build.update replace the product field with a version field

Bug fixes

  • Display raw Markdown text before rendering to fix a bug where anonymous users don't see any text on the screen even if they are allowed to view an object

Refactoring & testing

  • Add tests for tcms.core.middleware. Fixes Issue #1605 (Gagan Deep)
  • Add tests for tcms.handlers. Fixes Issue #1611 (Gagan Deep)
  • Add tests for tcms.kiwi_auth.views. Fixes Issue #1608 (Abhishek Chaurasia)
  • Update pip during bugtracker integration tests to fix dependency issues
  • Reformat all files with black and isort. Closes Issue #1193
  • Refactor TestExecution.get_bugs() to use TestExecution.links()
  • Add return statement for invalid form to make pylint happy
  • Make Bug.assignee field a UserField
  • Replace deprecated ugettext_lazy with gettext_lazy
  • Fixes for Azure Boards integration tests
  • Remove CsrfDisableMiddleware. Closes Issue #297
  • Remove unused methods & left-over views

Kiwi TCMS Enterprise v9.0-mt

  • Based on Kiwi TCMS v9.0
  • Update kiwitcms-github-app from 1.2.1 to 1.2.2
  • Update kiwitcms-tenants from 1.3.1 to 1.4.2

For more info see https://github.com/kiwitcms/enterprise#v90-mt-12-jan-2021

Automation framework plugins

The following test automation framework plugins have been upgraded to work with Kiwi TCMS v9.0:

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!

"Virtual show screen"

Dear testers, we are happy to share that Kiwi TCMS has been distinguished with the Excellence in Innovation 2020 award by Applied Research and Communications Fund in Bulgaria. This is also the first award that we receive locally and we're very happy about that!

Kiwi TCMS was a finalist in the Digital transformation category for the fact that leveraging the power of open source we've transformed an abandoned project (the predecessor of Kiwi TCMS) into a usable product with over 270000 downloads to date!

If you would like to checkout the awards ceremony and all of the particiants go to www.innovation.bg, we're listed under Отворени Технологии България ЕООД (the name of our parent company)! Text and video is not in English however!

Happy Testing!


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

Kiwi TCMS 8.9

We're happy to announce Kiwi TCMS version 8.9!

IMPORTANT: this release includes many improvements, API changes, bug fixes, translation updates, new tests and internal refactoring. It is the seventh release to include contributions via our open source bounty program. You can explore everything at https://public.tenant.kiwitcms.org! This is also the second 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  9bcfea3a532e    652 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.8

Improvements

  • Update django from 3.1.3 to 3.1.4
  • Update django-extensions from 3.0.9 to 3.1.0
  • Update django-grappelli from 2.14.2 to 2.14.3
  • Update pygments from 2.7.2 to 2.7.3
  • Update python-bugzilla from 3.0.1 to 3.0.2
  • Update node_modules/marked from 1.2.3 to 1.2.5
  • Update node_modules/html5sortable from 0.9.18 to 0.10.0
  • New manage.py initial_setup command for one-stop initial setup (Ivajlo Karabojkov)
  • Bug tracker integration with BitBucket (bitbucket.org). Fixes Issue #1916 (@cmbahadir)
  • Complete redesign and refactoring of Test Run page:
  • TestCaseStatus can now be customized. Fixes Issue #1932
  • Update documentation & screenshots

Settings

  • Setting ANONYMOUS_USER_NAME is now explicitly defined due to upstream bug in django-guardian (Abhishek Chaurasia)

Database

  • New migrations for customizeable TestCaseStatus

API

  • Add TestExecution.history() method
  • Add TestCase.history() method
  • Add TestRun.add_cc() method
  • Add TestRun.remove_cc() method
  • Method TestExecution.update() will use build from parent test run if a build field isn't explicitly specified in the arguments
  • Update method TestRun.add_case()
    • will return existing TestExecution if available
    • will raise if test case status is not confirmed
    • will always create new test executions with the highest sortkey

Bug fixes

  • Fixed miscellaneous bugs in tcms.rpc.testcase (Gagan Deep)
  • Disable name change in admin for the default groups. Fixes Issue #1313

Refactoring & testing

  • Add automated tests for tcms.core.views.server_error. Fixes Issue #1606 (Abhishek Chaurasia)
  • Add automated tests for tcms.rpc.api.auth. Fixes Issue #1620 (Abhishek Chaurasia)
  • Add automated test for AnonymousViewBackend.has_perm method. Fixes Issue #1905 (Abhishek Chaurasia)
  • Add automated tests for tcms.core.utils.maito. Fixes Issue #1603 (Gagan Deep)
  • Add automated tests for tcms.utils.github. Fixes Issue #1612 (Gagan Deep)
  • Add automated tests for tcms.rpc.api.testscase. Fixes Issue #1623 (Gagan Deep)
  • Add automated tests for tcms.testcases.views.NewCaseView. Fixes Issue #1614 (@rish07)
  • Add automated tests for tcms.testplans.views.NewTestPlanView. Fixes Issue #1616 (@awalvie)
  • Separate two functions one from another (Alexander Tsvetanov)
  • Disable pylint checks (Alexander Tsvetanov)
  • Upgrade to MySQL 8 in Travis CI
  • Remove unused setup in Travis CI
  • Be more robust when keeping internal state for TestPlan page

Kiwi TCMS Enterprise v8.9-mt

  • Based on Kiwi TCMS v8.9

For more info see https://github.com/kiwitcms/enterprise#v89-mt-07-dec-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!

"Cfp banner"

Attention open source testers: Testing and Automation devroom at FOSDEM'21 is happening next year! Call for participation is now open. Checkout https://fosdem-testingautomation.github.io/ for more information!

Happy Testing!


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

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!

Newer Posts

Page 4 / 8

Older Posts