diff options
Diffstat (limited to 'checklists')
-rw-r--r-- | checklists/checklist-demo-upgrade.rst | 173 | ||||
-rw-r--r-- | checklists/checklist-release.rst | 141 | ||||
-rw-r--r-- | checklists/qa-0.10.rst | 233 |
3 files changed, 547 insertions, 0 deletions
diff --git a/checklists/checklist-demo-upgrade.rst b/checklists/checklist-demo-upgrade.rst new file mode 100644 index 00000000..d8724030 --- /dev/null +++ b/checklists/checklist-demo-upgrade.rst @@ -0,0 +1,173 @@ +GNU Taler Demo Upgrade Checklist +-------------------------------- + +.. |democheck| raw:: html + + <input type="checkbox"> + + +Domains +^^^^^^^ + +The checklist uses the ``demo.taler.net`` domains. However, +the same sandcastle demo can also be hosted at other domains. +The same instructions should apply. + +Post-upgrade checks +^^^^^^^^^^^^^^^^^^^ + +- |democheck| Run the headless wallet to check that services are actually working: + + .. code-block:: console + + taler-wallet-cli api 'runIntegrationTestV2' '{"exchangeBaseUrl":"https://exchange.demo.taler.net", "corebankApiBaseUrl": "https://bank.demo.taler.net", "merchantBaseUrl": "https://backend.demo.taler.net", "merchantAuthToken":"secret-token:sandbox"}' + + +Wallets +^^^^^^^ + +We consider the following published wallets to be "production wallets": + +* Browser: Firefox Add-On Store +* Browser: Chrome Web Store +* Android: Google Play +* Android: F-Droid +* iOS: Apple Store / Testflight + +Basics +^^^^^^ + +- |democheck| Visit https://demo.taler.net/ to see if the landing page is displayed correctly +- |democheck| landing language switcher +- |democheck| Visit the wallet installation page, install the wallet +- |democheck| see if the wallet presence indicator is updated correctly (in browsers). +- |democheck| Visit https://bank.demo.taler.net/, register a new user +- |democheck| bank language switcher +- |democheck| bank logout +- |democheck| bank login +- |democheck| bank-integrated withdraw process, abort in bank +- |democheck| transaction history: delete pending withdraw +- |democheck| do bank-integrated withdraw process (5 KUDOS) +- |democheck| do wallet-initiated withdraw process (5 KUDOS) +- |democheck| withdraw process of large amount (20 KUDOS) runs into KYC check +- |democheck| fail KYC check (if possible for the given setup) +- |democheck| pass KYC check (tests that 2nd attempt is possible) +- |democheck| withdraw process of very large amount (50 KUDOS) runs into AML check +- |democheck| visit exchange SPA, create AML officer key +- |democheck| register AML officer key with offline tool (if possible) +- |democheck| allow withdraw process blocked on AML to proceed (if possible) + + +Exchange AML SPA +^^^^^^^^^^^^^^^^ + +- |democheck| enter non-trivial form, change status to frozen +- |democheck| check account status in history is now frozen and shows in that category +- |democheck| enter another form, change status to normal, increase AML threshold +- |democheck| view forms in history, view previously submitted form +- |democheck| check account status in history is now normal and shows in that category +- |democheck| log out +- |democheck| check log in succeeds with correct password +- |democheck| check log in fails from different browser with same password + + +Blog demo +^^^^^^^^^ + +- |democheck| Visit https://shop.demo.taler.net/ +- |democheck| blog page article list renders +- |democheck| payment for blog article +- |democheck| Verify that the balance in the wallet was updated correctly. +- |democheck| Go back to https://shop.demo.taler.net/ and click on the same article + link. Verify that the article is shown and **no** repeated payment is + requested. +- |democheck| Open the fulfillment page from the previous step in an anonymous browsing session + (without the wallet installed) and verify that it requests a payment again. +- |democheck| Delete cookies on https://shop.demo.taler.net/ and click on the same article again. + Verify that the wallet detects that the article has already purchased and successfully + redirects to the article without spending more money. +- |democheck| payment for other blog article +- |democheck| refund of 2nd blog article (button at the end) +- |democheck| wallet transaction history rendering +- |democheck| delete refund history entry; check original purchase entry was also deleted +- |democheck| payment for other blog article +- |democheck| refund of 3rd blog article (button at the end) +- |democheck| wallet transaction history rendering +- |democheck| delete 3rd block purchase history entry; check refund entry was also deleted + + +Donation demo +^^^^^^^^^^^^^ + +- |democheck| Reset wallet +- |democheck| Withdraw age-restricted coins (< 14) +- |democheck| Try to make a donation on https://donations.demo.taler.net/, fail due to age-restriction +- |democheck| Withdraw age-restricted coins (>= 14) +- |democheck| Make a donation on https://donations.demo.taler.net/ +- |democheck| Make another donation with the same parameters and verify + that the payment is requested again, instead of showing the previous + fulfillment page. + + +Merchant SPA +^^^^^^^^^^^^ + +- |democheck| test SPA loads +- |democheck| try to login with wrong password +- |democheck| try to login with correct password +- |democheck| create instance, check default is set to cover (STEFAN) fees +- |democheck| modify instance +- |democheck| add bank account +- |democheck| edit bank account +- |democheck| remove bank account +- |democheck| check order creation fails without bank account +- |democheck| add bank account again +- |democheck| add product with 1 in stock and preview image +- |democheck| add "advanced" order with inventory product and a 2 minute wire delay +- |democheck| claim order, check available stock goes down in inventory +- |democheck| create 2nd order, check this fails due to missing inventory +- |democheck| pay for 1st order with wallet +- |democheck| check transaction history for preview image +- |democheck| trigger partial refund +- |democheck| accept refund with wallet +- |democheck| create template with fixed summary, default editable price +- |democheck| scan template QR code, edit price and pay +- |democheck| add TOTP device (using some TOTP app to share secret with) +- |democheck| edit template to add TOTP device, set price to fixed, summary to be entered +- |democheck| scan template QR code, edit summary and pay +- |democheck| check displayed TOTP code matches TOTP app +- |democheck| do manual wire transfer in bank to establish reserve funding +- |democheck| check that partially refunded order is marked as awaiting wire transfer +- |democheck| check bank wired funds to merchant (if needed, wait) +- |democheck| add bank wire transfer manually to backend +- |democheck| change settings for merchant to not pay for (STEFAN) fees +- |democheck| create and pay for another order with 1 minute wire transfer delay +- |democheck| edit bank account details, adding revenue facade with credentials +- |democheck| wait and check if wire transfer is automatically imported +- |democheck| check that orders are marked as completed + + +P2P payments +^^^^^^^^^^^^ + +- |democheck| generating push payment (to self is OK) +- |democheck| accepting push payment (from self is OK) +- |democheck| generating pull payment (to self is OK) +- |democheck| accepting pull payment (from self is OK) +- |democheck| sending money back from wallet to bank account +- |democheck| wallet transaction history rendering +- |democheck| delete history entry + + +Shutdown +^^^^^^^^ + +- |democheck| create two full wallets, fill one only via (a large) P2P transfer +- |democheck| revoke highest-value denomination +- |democheck| spend money in a wallet such that the balance falls below highest denomination value +- |democheck| revoke all remaining denominations +- |democheck| fail to spend any more money +- |democheck| if wallet was filled via p2p payments, wallet asks for target deposit account (exchange going out of business) +- |democheck| enter bank account (if possible) +- |democheck| wallet balance goes to zero +- |democheck| specified bank account receives remaining balance diff --git a/checklists/checklist-release.rst b/checklists/checklist-release.rst new file mode 100644 index 00000000..eaefd0b9 --- /dev/null +++ b/checklists/checklist-release.rst @@ -0,0 +1,141 @@ +GNU Taler Release Checklist +--------------------------- + +.. |releasecheck| raw:: html + + <input type="checkbox"> + +For exchange: + +- |releasecheck| no compiler warnings at "-Wall" with gcc +- |releasecheck| no compiler warnings at "-Wall" with clang +- |releasecheck| ensure Coverity static analysis passes +- |releasecheck| make check. +- |releasecheck| make dist, make check on result of 'make dist'. +- |releasecheck| Change version number in configure.ac. +- |releasecheck| update man pages / info page documentation (prebuilt branch) +- |releasecheck| make dist for release +- |releasecheck| verify dist builds from source +- |releasecheck| upgrade 'demo.taler.net' +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| tag repo. +- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages +- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign) +- |releasecheck| change 'demo.taler.net' deployment to use new tag. +- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha + +For merchant (C backend): + +- |releasecheck| no compiler warnings at "-Wall" with gcc +- |releasecheck| no compiler warnings at "-Wall" with clang +- |releasecheck| ensure Coverity static analysis passes +- |releasecheck| make check. +- |releasecheck| make dist, make check on result of 'make dist'. +- |releasecheck| update SPA (prebuilt branch) +- |releasecheck| Change version number in configure.ac. +- |releasecheck| make dist for release. +- |releasecheck| verify dist builds from source +- |releasecheck| upgrade 'demo.taler.net' +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| tag repo. +- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages +- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign) +- |releasecheck| change 'demo.taler.net' deployment to use new tag. +- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha + +For sync: + +- |releasecheck| no compiler warnings at "-Wall" with gcc +- |releasecheck| no compiler warnings at "-Wall" with clang +- |releasecheck| ensure Coverity static analysis passes +- |releasecheck| make check. +- |releasecheck| make dist, make check on result of 'make dist'. +- |releasecheck| Change version number in configure.ac. +- |releasecheck| make dist for release +- |releasecheck| verify dist builds from source +- |releasecheck| upgrade 'demo.taler.net' +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| tag repo. +- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages +- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign) +- |releasecheck| change 'demo.taler.net' deployment to use new tag. +- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha + +For taler-mdb: + +- |releasecheck| no compiler warnings at "-Wall" with gcc +- |releasecheck| ensure Coverity static analysis passes +- |releasecheck| Change version number in configure.ac. +- |releasecheck| make dist for release. +- |releasecheck| tag repo. +- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages +- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign) +- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha + +For taler-twister: + +- |releasecheck| no compiler warnings at "-Wall" with gcc +- |releasecheck| no compiler warnings at "-Wall" with clang +- |releasecheck| ensure Coverity static analysis passes +- |releasecheck| make check. +- |releasecheck| make dist, make check on result of 'make dist'. +- |releasecheck| Change version number in configure.ac. +- |releasecheck| make dist for release. +- |releasecheck| verify dist builds from source +- |releasecheck| upgrade 'demo.taler.net' +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| tag repo. +- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha + +For libeufin: + +- |releasecheck| update SPA of bank +- |releasecheck| build libeufin +- |releasecheck| upgrade 'demo.taler.net' +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| make dist for release. +- |releasecheck| verify dist builds from source +- |releasecheck| tag repo. +- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages +- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign) +- |releasecheck| change 'demo.taler.net' deployment to use new tag. +- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha + +For Python merchant frontend: + +- |releasecheck| upgrade 'demo.taler.net' +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| change 'demo.taler.net' deployment to use new tag. + +Wallet-core: + +- |releasecheck| build wallet +- |releasecheck| run integration test +- |releasecheck| make dist for release. +- |releasecheck| verify dist builds from source +- |releasecheck| tag repo. +- |releasecheck| use 'deployment.git/packaging/\*-docker/' to build Debian and Ubuntu packages +- |releasecheck| upload packages to 'deb.taler.net' (note: only Florian/Christian can sign) +- |releasecheck| change 'demo.taler.net' deployment to use new tag. +- |releasecheck| Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha + +Android-Wallet: + +- |releasecheck| build wallet +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| tag repo. +- |releasecheck| upload new wallet release to app store + +Webextension-Wallet: + +- |releasecheck| build wallet +- |releasecheck| run :doc:`demo upgrade checklist </checklists/checklist-demo-upgrade>` +- |releasecheck| tag repo. +- |releasecheck| upload new wallet release to app store + +Release announcement: + +- |releasecheck| Update bug tracker (mark release, resolved -> closed) +- |releasecheck| Send announcement to taler@gnu.org +- |releasecheck| Send announcement to info-gnu@gnu.org (major releases only) +- |releasecheck| Send announcement to coordinator@translationproject.org diff --git a/checklists/qa-0.10.rst b/checklists/qa-0.10.rst new file mode 100644 index 00000000..262f44f5 --- /dev/null +++ b/checklists/qa-0.10.rst @@ -0,0 +1,233 @@ +Taler 0.9.4 QA Plan +------------------- + +Wallet Platforms +^^^^^^^^^^^^^^^^ + +Platforms listed here are the officially supported platforms for this release. + +* Overview / Installation Page + + * https://taler.net/en/wallet.html + +* Android + + * Google Play: https://play.google.com/store/apps/details?id=net.taler.wallet + * F-Droid: https://f-droid.org/en/packages/net.taler.wallet.fdroid/ + * APK Download: TBD + +* Browser + + * Chrome: https://chromewebstore.google.com/detail/gnu-taler-wallet/millncjiddlpgdmkklmhfadpacifaonc + * Firefox: https://addons.mozilla.org/en-US/firefox/addon/taler-wallet/ + +* iOS + + +Running Deployments +^^^^^^^^^^^^^^^^^^^ + +These deployments are maintained by us and should work for the release: + +* Sandcastle-based: + + * demo.taler.net + + * test.taler.net + +* Regio-based: + + * regio-taler.fdold.eu + + +Wallet Flows +^^^^^^^^^^^^ + +* Bank-integrated withdrawal + + * webext: "Continue with Mobile Wallet" flow + +* Manual withdrawal + + * ``taler://withdraw-exchange`` flow + + * Currency conversion withdrawal + +* Peer push payments ("Send Money") + +* Peer pull payments ("Receive Money") + +* Deposit into bank account + + * Check that deposit arrived + +* Payment at merchant + + * on blog merchant + * on survey + * directly initiated via merchant SPA + * webext: "Pay with Mobile Wallet" flow + +* Pay templates + + * Payment TOTP codes + +* Exchange management + + * Reloading exchange keys + * Deleting an exchange + +* Offline handling + + * Check error messages for other flows when internet connectivity + is bad or device is completely offline. + + +libeufin-bank Flows +^^^^^^^^^^^^^^^^^^^ + +* Admin functionality + + * Login + + * Credential change + + * Conversion settings + + * Bank account creation + + * Test transfers + +* Normal account functionality + + * Transfers + + * Transfer to the exchange should bounce + + * Withdrawals + + * (conversion-only): Test cash-in + + * (conversion-only): Test cash-out + + * Lower cash-out limit enforced + + * 2FA for withdrawals, cash-out + + +Merchant Backend SPA Flows +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* Instance creation + +* Simple bank account setup + +* Order creation + + * Pay order (with short wire transfer deadline) + + * Check that money from order arrive at the bank with the right subject + +* Extended bank account setup + + * Add Taler Bank Revenue API + + * Check bank transfer list (for wire transfer of previously paid+wired order) + + * Check order payment status goes to "final" automatically + +* TOTP Device Management + + * Add device + + * Edit device (set new secret, export new secret as QR code) + + * Delete device + +* Templates + + * Add template + + * Edit template + + * Add TOTP device to template + + * Edit TOTP device associated with template + + * Pay template + + * Check TOTP code matches + + * Remove TOTP device from template + + * Delete template + + + +Regio Deployment +^^^^^^^^^^^^^^^^ + +* Deployment Automation (deployment.git/regional-currency) + + * Test with Debian bookworm + + * Test with Ubuntu mantic + + * Check logs for errors + + * Test with telesign (SMS) + + * Set up EBICS integration + + * Check that ToS is configured + +* Deployment Functionality + + * All flows of the wallet should work (see ``Wallet Flows`` above) + + * All flows of libeufin-bank should work (see ``libeufin-bank Flows`` above) + + * Merchant backend should work (see ``Merchant Backend SPA Flows`` above) + + * Check logs + + +Android Merchant PoS +^^^^^^^^^^^^^^^^^^^^ + +* Test against demo.taler.net + + +Android Cashier App +^^^^^^^^^^^^^^^^^^^ + +* Test against demo.taler.net + + +CI +^^ + +* https://buildbot.taler.net/#/waterfall +* CI should pass + + +Debian Repository +^^^^^^^^^^^^^^^^^ + +* Debian + + * repo at https://deb.taler.net/apt/debian/ + * supported codename(s): bookworm + + +* Ubuntu: + + * repo at https://deb.taler.net/apt/ubuntu/ + * supported codename(s): mantic + + +GNU Release +^^^^^^^^^^^ + +* Release announcement +* FTP upload |