Replies: 6 comments 3 replies
-
|
For testing across environments, I'm not sure if it is necessary to target every single environment. We have limited time and lots of work, so I think we should only target the ones that are relevant. For instance, for frontend changes, testing across common browser; for backend, testing on similar environments to our cloud-based service/releases. Perhaps we can invest some time in creating dev containers like some other communities have done, to streamline setup for development and unify testing environments. I think the burden of testing should fall on the PR author, rather than the reviewer. They should be responsible for testing on the necessary environments and cases and documenting it appropriately. Reviewers should not have to thoroughly test the code but should rather mostly check for general code quality. If they wish to, they can also manually test the PR, but I think that requiring manual checking could discourage reviewers from reviewing PRs and also block them from doing their own dev work. Furthermore, the author is the most familiar with their own PR, so they would have the most knowledge of what to test. The fourth issue particularly resonates with me. #5961 definitely helps with dev work a lot, and I'd love to see more work to streamline development even more. Streamlining development would help make the feedback loop between testing and development a lot faster. Having better documentation for Docker and Kubernetes setup and keeping it updated would also help streamline the development process for everybody. |
Beta Was this translation helpful? Give feedback.
-
Thanks |
Beta Was this translation helpful? Give feedback.
-
|
I think it's important that every PR includes some level of manual testing. The extent of the testing should depend on the scope and risk of the change, but I don't think we should rely solely on automated tests. For features that introduce new API endpoints or make backend changes, I think it's especially important to test in our deployment environment, not just locally. I've personally run into cases where a feature worked correctly in my local environment but failed after deployment because the required Kubernetes configuration wasn't set up correctly. Those deployment specific issues cannot be caught with automated tests alone, so having at least some deployment level validation for higher risk changes would be good. |
Beta Was this translation helpful? Give feedback.
-
|
As I am currently working on merging a new feature with significant amounts of new and modified code, I can share my experience with manual testing. In addition to automated tests I've written to ensure good code coverage, I've extensively inspected and manually ran many of my new API endpoints and services. Of course all of this was done on a local development environment, so I cannot say they will work flawlessly on deployment servers and Kubernetes environments. I will indeed need to do more manual testing on different environments to ensure the features I am adding work as intended. Another concern is edge case coverage. We cannot expect every developer to manually test every edge case that can possibly be encountered, as it will be too much overhead and impossible to predict every edge case. As such, the developer should at least share what manual tests were performed and what possible cases were excluded. |
Beta Was this translation helpful? Give feedback.
-
|
Hey guys, I find myself could not sleep on this question. Let me mention a few points about manual tests before I layout my opinion on how should we expect manual tests.
So as a conclusion, manual test 1) is single time verification, 2) can cover very little expectations, and 3) can be costly and waste developers' time. If your impression is "automated tests cannot cover all cases, I always find more issues when I manually test it," it is because you did not have enough automated tests written, you should go back write more automated tests. Remember human cannot beat a machine's speed to verify things, if you find something machine forget to check, just ask the machine to check it for you in the future, instead of doing it by yourself manually. Of course, you may need to first manually test it, to discover the gap that machine forget to test. But with all of those stated, I am NOT saying manual test is not important. Especially many UI features needs to be manually tried on a browser, to see if it is easy to use, good looking, etc. My view is, we should still do manual testing, but we need to
So here is my proposal:
All in all, I hope we can elevate our overall productivity, and I believe manual testing is one giant burden we have had in the past that prevent us from doing things quicker. I know we had been doing only manual tests for a long time, and we are eating our own debt by moving ahead very very slowly: with the complexity of the project goes up, more features and more environments to support, it is harder and harder to ship new features and manually verify it works everywhere, every time, and did not break any existing features. Frankly speaking, with the old pace, this project will not last long and will soon be outdated. It's 5 am in the morning, I typed all of those word by word, 0 AI used. I really mean it with my heart. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks to @Yicong-Huang for sharing these thought at 5 am in the morning :-) I agree with those points. In general, we need to balance between development speed and quality control. AI tools make it easier to raise PRs, and we don't want the review to slow down the process. AI tools also make it easier to fix bugs. We need to gradually improve the automated testing framework. The "main" branch can go fast, and we use releases to do more thorough testing before shipping the binaries to users. Since we have community contributors who are not committers, some of them (especially those new to open source development) need to be taught how to do testing properly. The corresponding committers can ask the authors to do testing properly. In this way, reviews don't become a huge burden for the reviewers. We will constantly learn and improve our project management. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi community,
I would like to start a discussion about our expectations for manual testing in PRs, especially around what should be tested and how testing responsibilities should be shared.
Currently, we rely heavily on automated checks, which are helpful and should remain the main baseline. We are also continuing to improve test coverage. At the same time, some issues may only show up in specific manual workflows or environments, such as local setup, Docker, or Kubernetes. For example, during RC2 validation, we found an environment-specific issue related to the new PVE feature (#5963). We have also seen cases during workshops or demos where some issues were only discovered during actual usage.
We probably do not need to require every PR to be tested in every environment, since that would add a lot of overhead. Instead, it may be helpful to define a lightweight standard for manual testing based on the type and risk of the PR.
Some questions I would like to discuss:
Examples:
Examples:
Examples:
Examples:
The goal is not to increase overhead unnecessarily, but to develop a shared expectation for when manual testing is needed beyond automated checks. This can help clarify what information authors should provide and what reviewers should check, while improving feature reliability in real-world usage.
Please feel free to share your thoughts on what would be practical and reasonable for different types of PRs. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions