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 |
|
QA |
|
Release management |
|
Documentation and knowledge sharing |
|
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
Add Comment