-
Notifications
You must be signed in to change notification settings - Fork 294
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EPIC: Post feature freeze testing #1256
Comments
Something that might be good to add to the stretch goals is thinking about a framework for testing version upgrades and compatibility. This could start by just ensuring we have the ability to launch nodes on different versions, and upgrade or downgrade a node without restarting the test. |
nice yea, honestly i think that test #313 might make sense to bump up to a required and tie it into release. Basically launch the tests with half the nodes on the current path version and half on the new patch version as a sanity check that nothing breaks. Then a future test could be more involved in terms of more patch versions, minor versions, and major versions to really stress test the network and understand compatibility issues. This one would of course be more of a debugging test. There might be some specific upgrade scenarios that we would want to build into the pipeline, but this and those would definitely be stretchy stretch goals. |
Thanks for the detail overview of the epic. It's Epic 😄 We can break down for example #1258 or compact blocks celestiaorg/celestia-core#883 to decide who does what so at the end the tests bring the most value and insights to core/app team |
I think an overarching goal around our testing should be to put together some written artefact across the teams which can really act as a handbook making it clear for any team member or for anyone interested what we test, how we test it, when we test things and so forth. There is no monolithic one solution fits all kind of approach to testing. It really requires a myriad of different solutions that juggle the tradeoffs between different forms of coverage, "introspectability", time and resource costs. Thinking about testing the same systematic way we think about protocols and writing "specifications" will produce more reliable software. Having a place where people can read about everything will make it easier for us to cover our blindspots. |
I also think @MSevey is totally spot on with his points. We should already be getting into the rhythm with upgrade and compatibility testing so it's like clockwork for us engineers by the time we hit our first mainnet upgrade. Previously at Tendermint, I had started working on extending the e2e framework for upgrade testing and perhaps we should endeavour to do the same here. We need to make sure this works alongside our versioning strategy. If we have long lived branches for our minor versions, we need to ensure that rolling upgrades happen smoothly for node operators. This is generally light-weight and thus could be tested on a per PR basis (in the same way you might detect protobuf breaking changes). |
One option to kick start this type of documentation could be a README in the test package that explains the different tooling and types of tests. |
Ref: #1256 This commit puts together the base pieces for an e2e testing suite. It includes a CLI that can: - Setup the file directories for multiple nodes, including generating a genesis with several accounts - Start the testnet (with different versions and at different start heights) - Stop the network and cleanup the used resources.
we still have a dangling issues, but most have been ice-boxed |
Ref: celestiaorg/celestia-app#1256, celestiaorg/celestia-app#1535 This commit introduces a new package `txsim` for contolled fuzz testing at a transaction level. It's purpose is to simulate a wide range of possible user interactions while also being able to apply a considerable load to the network.
Ref: celestiaorg/celestia-app#1256 This commit puts together the base pieces for an e2e testing suite. It includes a CLI that can: - Setup the file directories for multiple nodes, including generating a genesis with several accounts - Start the testnet (with different versions and at different start heights) - Stop the network and cleanup the used resources.
We have been pushing many breaking changes lately to fit them in before feature freeze at the end of the month. After feature freeze, we will want to spend more time building out robust tests for mainnet. This includes but is not limited to:
Stretch
The text was updated successfully, but these errors were encountered: