Skip to content
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

Closed
13 of 17 tasks
evan-forbes opened this issue Jan 18, 2023 · 8 comments
Closed
13 of 17 tasks

EPIC: Post feature freeze testing #1256

evan-forbes opened this issue Jan 18, 2023 · 8 comments
Labels
epic item groups other items for easier tracking testing items that are strictly related to adding or extending test coverage

Comments

@evan-forbes evan-forbes added the epic item groups other items for easier tracking label Jan 18, 2023
@evan-forbes evan-forbes added this to the Mainnet milestone Jan 18, 2023
@MSevey
Copy link
Member

MSevey commented Jan 18, 2023

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.

@evan-forbes
Copy link
Member Author

yes! good idea @MSevey, I totally forgot about #313, added to stretch goals

@MSevey
Copy link
Member

MSevey commented Jan 18, 2023

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.

@Bidon15
Copy link
Member

Bidon15 commented Jan 19, 2023

Thanks for the detail overview of the epic. It's Epic 😄
I would appreciate if we take our time to discuss how we approach this epic both from app and devops/testing teams

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
As well as we can learn how we can collaborate better for future joint issues

@cmwaters
Copy link
Contributor

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.

@cmwaters
Copy link
Contributor

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).

@MSevey
Copy link
Member

MSevey commented Jan 20, 2023

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.

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.

@evan-forbes evan-forbes added the testing items that are strictly related to adding or extending test coverage label Feb 7, 2023
cmwaters added a commit that referenced this issue Apr 20, 2023
Ref: #1256,
#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.
cmwaters added a commit that referenced this issue Apr 25, 2023
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.
@evan-forbes evan-forbes removed this from the Mainnet milestone Aug 7, 2023
@evan-forbes
Copy link
Member Author

we still have a dangling issues, but most have been ice-boxed

@github-project-automation github-project-automation bot moved this from Todo to Done in Engineering Team Epics Feb 21, 2024
0xchainlover pushed a commit to celestia-org/celestia-app that referenced this issue Aug 1, 2024
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.
0xchainlover pushed a commit to celestia-org/celestia-app that referenced this issue Aug 1, 2024
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic item groups other items for easier tracking testing items that are strictly related to adding or extending test coverage
Projects
Development

No branches or pull requests

4 participants