Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Defines the projects, tasks, and KPIs associated with building and maintaining the FIO Chain.

Overview

There are several projects associated with improving and maintaining the FIO Chain:

  • Core chain and contract development to support FIO Improvement Proposals (FIPs)

  • QA of core chain and contract bug fixes and new features

  • Release management of core chain and contract updates

  • Ensuring the security of the FIO chain

  • Maintaining compatibility with and contributing to the EOSIO ecosystem

  • Building a developer community around FIO

Core chain and contract development

QA

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.

The current process for developing automated tests generally follows:

  • FIP/requirements are defined by product team

  • Product team publishes initial test cases

  • Test cases are enhanced by development and QA teams

  • FIO development creates initial tests as a template

  • FIO QA completes full automated tests

Gaps in testing:

  • 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

Release Management

Security

EOSIO compatibility and community support

Resource estimates

  • 1 FTE for updating test harness and overseeing QA automated test development

  • 1 FTE for adding missing regression tests (can be done by multiple developers)

    • Bounties or outsourcing?

  • 1.5 FTE for adding new regression tests for new features (2:1 ratio of developers to QA)

  • 0.25 FTE to maintain Proof’d or other automated test suite.

  • 0.2 FTE for release testing

  • 0.1 FTE for SDK release testing (does not include SDK unit test development)

KPIs

Task

KPIs

Core chain and contract development

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

QA

  • Timely delivery of automated tests for new features. TBD on this process.

  • 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

  • Maintain document repository with

FIO Chain and contract security

EOSIO compatibility and community support

Developer outreach and community building

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

  • No labels