Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
minLevel1
maxLevel2

Core chain and contract development

  • Development of Foundation-led FIPsBug fixes and minor (non-FIP and non-Project) feature improvements

QA of core chain and contracts

  • QA for all FIPsbugs fixes and minor feature improvements

  • Devnet, Testnet, and Mainnet release testing

fio and fio.contracts automated testing

fio and fio.contract QA is covered by the fio.test javascript test harness. New automated tests are created for every new action, endpoint and feature added to the protocol. Full regression tests are run for every release.

...

  • All features, especially Mainnet features, do not have full regression tests

  • Testing lags development and impacts releases

  • Limited QA resources to develop automated tests

  • No time to focus on test harness architecture

  • QA not integrated into CI pipeline

Devnet release testing

Devnet release testing is currently done by the development team. It involves deployment and upgrade testing of fio and fio.contracts.

Testnet release testing

Testnet release testing currently consists of:

  • Running an automated smoketest against Testnet before and after deployment

  • Some manual testing of Testnet using Cryptonym

  • Some manual testing of features by development and product teams

Mainnet release testing

Mainnet release testing currently consists of:

  • Some manual testing of Mainnet using Cryptonym

  • Some manual testing of features by development and product teams

Centralized

  • 1 x QA Manager

    • Test harness architecture

    • Oversee test development

    • 2.5 FTE

      • fio.test new and backlog automated tests

      • Proof’d tests

    • 0.5 FTE release testing

Community / Bounty

  • 1 x QA Manager

    • Test harness architecture

    • Oversee test development

  • Create bounties for:

    fio.test new and backlog automated tests

  • 0.5 FTE

    • release testing

    • Develop/Maintain Proof’d

Outsource

  • 1 x QA Manager

    • Test harness architecture

    • Oversee test development with outsource group

    • Release testing

  • Outsource

    • fio.test new and backlog automated tests

    • Develop/Maintain Proof’d test scripts

Release management of core chain and contract updates

  • Release Management for all FIPs

  • Develop and maintain integration pipeline

  • Define and manage the software development lifecycle

  • CI automation for chain and contract development and testing

  • Manage Devnet deployment and fork testing

  • Work with BPs to ensure timely Testnet and Mainnet releases

  • Maintain/upgrade internal FIO nodes (e.g., registration site nodes) to latest release

Ensuring the security of the FIO chain

  • Security playbook

Maintaining compatibility with and contributing to the EOSIO ecosystem

  • Work with EOSIO community to ensure FIO compatibility with evolution of EOSIO

  • Contribute to EOSIO code and tools

Developer outreach and community building

  • Ensure FIO development community has the resources, motivation and tools they need to excel and deliver high quality software

  • Ensure that FIO development community is always focused on ease of implementation and ease of use as high priorities

  • Community bounty program

KPIs

...

Task

...

KPIs

...

Core chain and contract development

...

  • Maintain release dashboard for FIP development: estimated release dates, current status

...

QA

...

KPIs

Task

KPIs

Chain uptime

Downtime due to faulty code or bugs (does not include Block Producer mishaps).

  • With full resourcing: 99%

  • With reduced resourcing: 95%

For impacts to up time resulting from reduced QA resources see: https://fioprotocol.atlassian.net/wiki/spaces/FD/pages/475005006/QA+Strategy

Code delivery

  • Minor FIPs delivered to chain within 3 months

  • Maintain code delivery dashboard

QA

  • Automated tests for all new actions and endpoints

  • Maintain QA dashboard

    • summary of test coverage

    • tests in development with estimated release dates

  • Testnet testing completed within 2 hours of new releases

  • Mainnet testing completed within 2 hours of new releases

Release management

  • Timely delivery of Devnet, Testnet, and Mainnet releases. TBD on this process.

  • Maintain Release dashboard

    • Release pipeline

    • Release history and versioning

Documentation and knowledge sharing

  • Update Devhub with new feature info within 2 weeks of release

FIO Chain and contract security

  • Maintain security playbook

EOSIO compatibility and community support

Developer outreach and community building

...