Articles by Kiwi TCMS Team

Here are the winners of our ticket giveaway:

  • Martin Ayvazov
  • Ralitsa Georgieva
  • Teodora Pashina - Dimitrova
  • Gabriela Luhova
  • Lyuboslava Arshinkova
  • Yoan Bachev

Attention winners: please get in touch with us at info@kiwitcms.org to claim your tickets. We will ask you to validate your GitLab account by performing a quick action which will be disclosed to you via email!

Raw data from our winner selection script below:

***** WINNER #1: Martin Ayvazov
{'avatar_url': 'https://secure.gravatar.com/avatar/eea811553e2b8aa3dd7ef670c3cd3552?s=80&d=identicon',
 'id': 9640539,
 'name': 'Martin Ayvazov',
 'state': 'active',
 'username': 'majvazov',
 'web_url': 'https://gitlab.com/majvazov'}
***** WINNER #2: Ralitsa Georgieva
{'avatar_url': 'https://secure.gravatar.com/avatar/43aa50437fc245766bc3e6072777c056?s=80&d=identicon',
 'id': 9869926,
 'name': 'Ralitsa Georgieva',
 'state': 'active',
 'username': 'ralitsa.georgieva',
 'web_url': 'https://gitlab.com/ralitsa.georgieva'}
***** WINNER #3: Teodora Pashina - Dimitrova
{'avatar_url': 'https://secure.gravatar.com/avatar/beca49c67ce9862a8ecb8deff94780a7?s=80&d=identicon',
 'id': 9869893,
 'name': 'Teodora Pashina - Dimitrova',
 'state': 'active',
 'username': 'tedi.pashina',
 'web_url': 'https://gitlab.com/tedi.pashina'}
***** WINNER #4: Gabriela Luhova
{'avatar_url': 'https://secure.gravatar.com/avatar/92e863a1e3df1122cc0beb2477a375be?s=80&d=identicon',
 'id': 9641952,
 'name': 'Gabriela Luhova',
 'state': 'active',
 'username': 'gabriela.luhova',
 'web_url': 'https://gitlab.com/gabriela.luhova'}
***** WINNER #5: Lyuboslava Arshinkova
{'avatar_url': 'https://secure.gravatar.com/avatar/1e0a308ddbe3b8ab9660ec7702fa0d6d?s=80&d=identicon',
 'id': 9869399,
 'name': 'Lyuboslava Arshinkova',
 'state': 'active',
 'username': 'arshinkovalyuboslava',
 'web_url': 'https://gitlab.com/arshinkovalyuboslava'}
***** WINNER #6: Yoan Bachev
{'avatar_url': 'https://gitlab.com/uploads/-/system/user/avatar/7630581/avatar.png',
 'id': 7630581,
 'name': 'Yoan Bachev',
 'state': 'active',
 'username': 'yobachev',
 'web_url': 'https://gitlab.com/yobachev'}

Video recording of the selection process:


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

Kiwi TCMS 10.4

We're happy to announce Kiwi TCMS version 10.4!

IMPORTANT: this is a small release which includes several improvements, bug fixes, internal refactoring and updated translations. It is the thirteenth 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)

Container images:

kiwitcms/kiwi       latest  10eb8f04cccd    590 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.3

Security

Improvements

  • Update bleach from 4.0.0 to 4.1.0
  • Update django from 3.2.6 to 3.2.7
  • Update django-colorfield from 0.4.2 to 0.4.3
  • Update pygithub from 1.54.1 to 1.55
  • Update pygments from 2.9.0 to 2.10.0
  • Update python-gitlab from 2.10.0 to 2.10.1
  • Allow filtering by TestRun ID in Test Case Search page
  • Update test execution prefix in list of executions on TestRun page. Now includes both TE and TC numbers before the summary link
  • Allow search by translated names on Test Run page
  • Redirect "ADMIN -> Users and groups" menu item according to tenancy
  • Allow creation of new test run from selected test cases inside existing test run. For example only select cases which are currently failing and re-test against a different build!
  • The initial_setup command will create a schema called "empty" when executed inside a multi-tenant setup. Refs Issue #127

Settings

  • Update values for MODERNRPC_HANDLERS setting
  • Rename SafeJSONRPCHandler to KiwiTCMSJsonRpcHandler
  • New RPC handler class KiwiTCMSXmlRpcHandler

Warning

If you had manipulated the value of MODERNRPC_HANDLERS make sure that you update to the new class names!

Database

  • New migrations for altered meta options

API

  • TestCase.create method accepts setup_duration and testing_duration fields. Refs Issue #1923 (Mfon Eti-mfon)
  • TestCase.update method acepts setup_duration and testing_duration fields. Refs Issue #1923 (Mfon Eti-mfon)
  • New method Testing.individual_test_case_health
  • Timedelta values are serialized to float, representing seconds

Bug fixes

  • Fix wrong URL parameter passed to test cases clone page
  • Show translated execution statuses for TestRun page. Closes Issue #1966
  • Properly initialize Product value on TestRun Edit page. Closes Issue #2514
  • Clone duration fields when cloning a test case

Refactoring and testing

  • New automated test scenario for kiwi_auth.admin (Mariyan Garvanski)
  • Unify similar strings to reduce translations burden
  • Inside buildroot PyNaCl needs make in order to build a wheel package
  • Adjust values for parametrized test to match existing scenarios
  • Fix code smells from newer pylint
  • eslint fixes for the JavaScript files

Kiwi TCMS Enterprise v10.4.1-mt

  • Based on Kiwi TCMS v10.4
  • Update django-ses from 2.2.1 to 2.3.0
  • Update kiwitcms-github-app from 1.3.0 to 1.3.1
  • Update python3-saml from 1.11.0 to 1.12.0
  • Update social-auth-app-django from 4.0.0 to 5.0.0
  • Use initial_setup during testing. Closes Issue #88
  • Fix new pylint issues and start using f-strings
  • Test "ADMIN -> Users and Groups" menu redirect

IMPORTANT: Kiwi TCMS Enterprise container images are available only to subscribers!

How to upgrade

Backup first! If you are using Kiwi TCMS as a 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 is happy to announce that our first post-COVID live presence will be at WebSummit 2021, Nov 1-4 in Lisbon, Portugal. We're joining as a featured startup as part of the ALPHA program in category Enterprise Software Solutions.

Kiwi TCMS will have an on-site presence during the exhibition (1 day) where you can easily find us. We've also applied to the Startup Showcase track where you can see Alex present on stage. In addition, if all goes well our team will be joined by Alexandre Neto of QCooperative who is leading the effort to adopt Kiwi TCMS for testing the QGIS open source project. More on that here.

Exact schedules are still unknown at this stage so you will have to ping us via email/Twitter or find us on the conference floor if you want to meet.

Below is our video submission to the organizers:


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

MLH Nomination

Last year Kiwi TCMS started partnering with the MLH Fellowship open source program. During the span of 3 semesters fellows received mentorship and career advice from us. They were also able to work on 20+ issues the majority of which have been complete.

For that we kindly ask the open source community to nominate Kiwi TCMS at the MLH Open Source Awards.

Steps to reproduce:

  1. Go to https://fellowship.mlh.io/opensourceawards
  2. Click the Submit a Nomination button
  3. Follow the instructions on screen!

Expected results:

  1. It should take you 2 minutes
  2. Your submission is recorded by MLH

Why are we doing this

MLH is recognizing extraordinary open source projects and communities. It is up to you, our community members and the general public to decide whether Kiwi TCMS qualifies or not. Winning this award will let us show what we do before a larger audience!

Thank you for supporting Kiwi TCMS and happy testing!


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

HackConf is one of the premium developer conferences in Bulgaria. Over the years Kiwi TCMS and HackConf have collaborated multiple times and our history goes way back to before the first edition of the conference! We're happy to announce that Kiwi TCMS will be giving away 6 SUPERFAN tickets for HackConf 2021 in order to celebrate their 6th anniversary!

All 6 tickets include:

  • Conference live stream access (online due to COVID-19), sessions are in English
  • Ability to ask questions during the live stream
  • Virtual Goodie Bag with valuable content & digital treats
  • Special Physical Goodie Bag delivered to your home. ** Shipping is available only for the territory of Bulgaria.

How to win a ticket

We need your support in order to become part of GitLab's open source family! We kindly ask you to upvote the first comment at https://gitlab.com/gitlab-org/gitlab/-/issues/334558!

Scenario: help Kiwi TCMS become part of GitLab’s open source family
    Given: navigate your browser to http://tinyurl.com/KiwiTCMS
    And: log into GitLab via the "Sign in / Register" button
    And: complete the login / registration process
    When: click the 👍 icon under the first comment
    Then: wait for the winners to be announced!

"GitLab steps"

Thank you very much and Happy Testing!

Winners announcement

Winners will be selected from all voters, excluding Kiwi TCMS team members, HackConf organizers and GitLab affiliated accounts. The accounts which have participated can be verified with curl https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab/issues/334558/participants.

Winners will be announced on Oct 6th 2021 in a blog post on our website. We will try our best to get in touch with all winners but we also ask you to get in touch with us if you see your username!


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

Kiwi TCMS 10.3

We're happy to announce Kiwi TCMS version 10.3!

IMPORTANT: this is a small release which includes several improvements, bug fixes, internal refactoring and updated translations. It is the twelveth 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)

Container images:

kiwitcms/kiwi       latest  bd28c4b064f5    579 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.2

Improvements

Bug fixes

  • Fix a bug where drop-down selectors for test plans would not show any values when product is changed. Fixes Issue #2467

Refactoring and testing

Kiwi TCMS Enterprise v10.3-mt

  • Based on Kiwi TCMS v10.3
  • Container image based on Red Hat Universal Base Image
  • Update django-ses from 2.1.1 to 2.2.1
  • Update python3-saml from 1.10.1 to 1.11.0
  • Add GitLab login icon

IMPORTANT: Kiwi TCMS Enterprise container images are available only to subscribers!

How to upgrade

Backup first! If you are using Kiwi TCMS as a 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.2

We're happy to announce Kiwi TCMS version 10.2!

IMPORTANT: this is a small release including upgrades to 3rd party libraries (including security related updates), several improvements and bug fixes. It is the eleventh 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  71b5c2a3dee4    972 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.1

Improvements & security updates

  • Update django from 3.2.3 to 3.2.5
  • Update django-guardian from 2.3.0 to 2.4.0
  • Update django-tree-queries from 0.5.1 to 0.5.2
  • Update psycopg2 from 2.8.6 to 2.9.1
  • Update python-gitlab from 2.7.1 to 2.9.0
  • Update node_modules/marked from 2.0.3 to 2.1.3
  • Update node_modules/html5sortable from 0.11.1 to 0.13.2
  • Update node_modules/prismjs from 1.23.0 to 1.24.1
  • Multiple select for filters on Telemetry pages. Fixes Issue #1940 (Shantanu Verma + Alex Todorov)
  • Allow editting TestCase setup_duration & testing_duration fields. References Issue #1923 (@APiligrim + Alex Todorov)
  • Move several checks to Dashboard page instead of performing them on every request (Ivajlo Karabojkov)
  • Fix grammatical error in documentation (Kushal Beniwal)
  • Add health check for Issue Tracker configuration. Fixes Issue #97
  • Document API URL field for Jira integration. Closes Issue #2443

Settings

  • tcms.core.middleware.CheckSettingsMiddleware has been removed
  • tcms.core.middleware.CheckUnappliedMigrationsMiddleware has been removed

API

  • Method Version.filter() now returns new field called product__name
  • Method Build.filter() now returns new field called version__value
  • Methods Build.filter(), Version.filter() and TestPlan.filter() will now order their results by product/version and then id.
  • Method Telemetry.breakdown() now returns only distinct results

Bug fixes

  • Make error messages in admin forms more legible. Fixes Issue #2404
  • Large images will now fit into the available space on the screen, e.g. inside test case description cards. Fixes Issue #2220

Refactoring and testing

  • Add automated tests for missing coverage in kiwi_auth.admin References Issue #1607 (Mariyan Garvanski)
  • Apply eslint fixes (@sonyagennova + Alex Todorov)
  • Refactor TestExecution.add_link method to use ModelForm and extend tests. Closes Issue #1327 (Rosen Sasov + Alex Todorov)
  • Use context manager when opening files to make pylint happier
  • Simplify 2 UI buttons on TestRun page
  • Enable doc8 for README and CHANGELOG and fix formatting errors

Kiwi TCMS Enterprise v10.2-mt

  • Based on Kiwi TCMS v10.2
  • Update django-ses from 2.0.0 to 2.1.1
  • Update django-python3-ldap from 0.11.4 to 0.12.0
  • Update documentation around initial config

IMPORTANT: Kiwi TCMS Enterprise container images are available only to subscribers!

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 Enterprise 10.1.1-mt

We're happy to announce Kiwi TCMS Enterprise version 10.1.1-mt!

IMPORTANT: this release includes support for authentication via Keycloak and support for enabling read-only view of tenants data for anonymous users.

Docker images:

quay.io/kiwitcms/enterprise       10.1.1-mt   d61e243dc4f5   1.19GB

Changes since Kiwi TCMS Enterprise 10.1-mt

  • Based on Kiwi TCMS v10.1
  • Fix URL to Python Social Auth documentation
  • Support read-only view on tenants for anonymous users. Contains a database migration to rename on_trial field to publicly_readable
  • Document initial configuration. Site administrators should add the tenants.change_tenant permission to users/groups who are allowed to make their tenants publicly visible. Fixes Issue #87, references Issue #88
  • Document the build process. Fixes Issue #89
  • Verify support for Keycloak logins. Fixes Issue #86
  • Update kiwitcms-github-app from 1.2.4 to 1.3.0
  • Update kiwitcms-tenants from 1.5.0 to 1.6.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!

"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!

Newer Posts

Page 3 / 7

Older Posts