Hello devs,

I think that at a minimum we should be able to detect coverage regression
and generate a visible warning on a PR. Specific statistics in the PR
conversation may be less useful, and potentially noisy. However, I'd
suggest also including some developer documentation that describes how to
generate a coverage report locally to assist developers who want/need to
increase the coverage of their code submission. Finally, when we wear our
reviewing hats, we need to expect a set of well-constructed and maintained
tests with each PR. This also means checking for determinism, a good
balance of unit vs integration tests, test performance, and
appropriate refactoring.

Elliot.

On Sun, 11 Sept 2022 at 02:42, PengHui Li <peng...@apache.org> wrote:

> Hi Lin,
>
> Thanks for starting this discussion.
>
> First, I support having code coverage repo for the PR which will provide
> the initial impressions of the test coverage to reviewers. Although the
> code
> coverage report can produce distorted results, the report is not the
> supreme indicator, just an auxiliary tool.
>
> Also, it should be a good tip for contributors and reviewers, need to pay
> attention to test coverage during the coding and before merging the PR.
>
> Second, About CI congestion, IMO we should make the test running more
> efficient
> and stable. We are working on a list to show all the tests which running
> over 5 mins
> Many unreasonable tests consume a lot of resources(start/stop the service
> for each test)
> Instead of preventing new CIs, Of course we need to pay attention to the
> resource consumption of the new upcoming CI. For the flaky test, I believe
> it is getting better.
>
> For https://github.com/apache/pulsar/pull/17382, I can't see the coverage
> diff.
> It would be a great indicator for contributors and reviewers. I think
> Lishen is still
> working on this part? When I check the CI to see the resource consumption
> of the code coverage check. But it looks like it has been skipped, I'm not
> sure why.
> Maybe Lishen can provide more details?
>
> Regards,
> Penghui
>
> On Sun, Sep 11, 2022 at 1:39 AM Lin Zhao <lin.z...@streamnative.io
> .invalid>
> wrote:
>
> > Hi Xiangying,
> >
> > I totally agree that when new feature or major optimizations are
> submitted,
> > it should be in the owner's interest to care about code coverage for
> their
> > new feature. The test cases are protection of their code from unintended
> > side effects from other people's work.
> >
> > In the case the PR is a bug fix, we should attempt to add a unit test to
> > cover this bug, which ideally increases the coverage. At the minimum, it
> > should not add complex uncovered code and significantly decrease the
> > coverage.
> >
> > I think both the button to run code coverage, and the report in the PR
> has
> > value. I support both.
> >
> > Lin
> >
> > On Fri, Sep 9, 2022 at 6:44 PM Xiangying Meng <xiangy...@apache.org>
> > wrote:
> >
> > > Hi,
> > > IMO, there are two scenarios when users need test coverage:
> > > 1. When new features or major optimizations are submitted, the owners
> of
> > > the PR may care about the code coverage of these new features.
> > > 2. When we need to optimize the original code to increase the overall
> > code
> > > test coverage of Pulsar.
> > > And there are two scenarios when users don't need test coverage:
> > > 1. The PR only is a Bug Fix
> > > 2. There is a small local optimization in this PR
> > > In fact, most PRs for Pulsar right now are bug fixes or small
> > > optimizations. The PR owner does not need to consider test coverage.
> > >
> > > So, my suggestion is that we can provide a button to run code coverage
> > and
> > > download coverage reports.
> > >  And put this button on the CI detail page, so that people who really
> > need
> > > it can get the code test coverage without affecting the running of most
> > > other CIs.
> > >
> > > Sincerely,
> > > Xiangying
> > >
> > > On Sat, Sep 10, 2022 at 5:13 AM asn <yaa...@gmail.com> wrote:
> > >
> > > > Hi,
> > > >
> > > > IMO, code coverage is not just a number, 50% or 70% makes no sense
> > except
> > > > to let us feel that we have more confidence. So what is really
> > > important? I
> > > > think it is the *coverage* itself, we need to see where we need to
> > write
> > > > tests in the future based the result because only if we have this
> data,
> > > we
> > > > could know where to cover. Furthermore, we can force every pr to
> write
> > > high
> > > > quality test.
> > > >
> > > > tison <wander4...@gmail.com> 于2022年9月10日周六 01:37写道:
> > > >
> > > > > > Please provide data point its impact to CI stability.
> > > > >
> > > > > If you take a look at https://github.com/apache/pulsar/pull/17382,
> > it
> > > > > changes pulsar-ci.yml to run commands for generating the codecov
> > > report.
> > > > > I'm unsure of the impact of a new step, it may not affect too much
> > > since
> > > > > there's already a runner take the whole job.
> > > > >
> > > > > For the rest, I wrote:
> > > > >
> > > > > > I read the output in your proposal as simply:
> > > > > >> The report will serve as additional input for the reviewers. The
> > > > > requester
> > > > > is expected to explain any significant negative impact.
> > > > > > This works for me as a nonmandatory helper.
> > > > >
> > > > > Feelings can be biased. No objection to the action.
> > > > >
> > > > > Best,
> > > > > tison.
> > > > >
> > > > >
> > > > > Lin Zhao <lin.z...@streamnative.io.invalid> 于2022年9月10日周六 01:26写道:
> > > > >
> > > > > > Hi Tison,
> > > > > >
> > > > > > Thanks for your input. I agree that the community should focus on
> > the
> > > > > > priorities regarding CI that you mentioned. At the same time, I'm
> > > > having
> > > > > a
> > > > > > hard time understanding the negative impact that you suggested
> from
> > > > this
> > > > > > change.
> > > > > >
> > > > > > 1. To my knowledge code coverage calculation adds little overhead
> > to
> > > > ci.
> > > > > > Please provide data point its impact to CI stability.
> > > > > > 2. Code coverage isn't completely accurate and yet it's valuable
> > data
> > > > > > point. The goal is not to reach 100%, but to prevent coverage
> > > becoming
> > > > > > worse. To me this change has only benefits and not drawbacks.
> > > > > > 3. I don't agree with your sentiments about code coverage.
> There's
> > > > > material
> > > > > > difference between 50% and 70% and we are at the low end of 50%.
> > *We
> > > > will
> > > > > > not add a commit gate to coverage change. *The report serves as
> an
> > > > > > additional data point for the approvers.
> > > > > >
> > > > > > Lin
> > > > > >
> > > > > >
> > > > > > On Fri, Sep 9, 2022 at 9:51 AM tison <wander4...@gmail.com>
> wrote:
> > > > > >
> > > > > > > Hi Lin,
> > > > > > >
> > > > > > > Thanks for starting this discussion!
> > > > > > >
> > > > > > > As long as it takes a different resource set from current CI
> > tasks,
> > > > I'm
> > > > > > +0
> > > > > > > as commented on PR-17382. I hardly read the report.
> > > > > > >
> > > > > > > I read the output in your proposal as simply:
> > > > > > >
> > > > > > > > The report will serve as additional input for the reviewers.
> > The
> > > > > > > requester
> > > > > > > is expected to explain any significant negative impact.
> > > > > > >
> > > > > > > This works for me as a nonmandatory helper.
> > > > > > >
> > > > > > > Thoughts on the baseline:
> > > > > > >
> > > > > > > 1. I don't like Code Coverage because from my experience
> they're
> > > > > _never_
> > > > > > > precise. And chasing 100% test coverage is unnecessary.
> > > > > > > 2. Although, if test coverage is below 50%, it _is_ a signal to
> > me
> > > > that
> > > > > > we
> > > > > > > suffer from too few tests.
> > > > > > > 3. Over 50% or 70%, test coverage looks the same to me.
> > > > > > >
> > > > > > > And our tests suffer from:
> > > > > > >
> > > > > > > 1. Heavyweight. We're now working on resolving CI congestion.
> > Many
> > > > > "unit
> > > > > > > tests" are actually integration tests with mock Pulsar Service
> > etc.
> > > > > which
> > > > > > > setup/teardown takes over ten (tens of) seconds.
> > > > > > > 2. Brittle. Too many mocks and radical powermocks make tests
> > > brittle.
> > > > > > > Mockito suggests never mock classes you don't own, but it seems
> > > > nobody
> > > > > > > cares. We mock over ES and ZK clients and so on.
> > > > > > >
> > > > > > > I don't want to spread the discussion over tests. But when it
> > comes
> > > > to
> > > > > > > improving tests, I want to share the most emergent items on it.
> > > > > > >
> > > > > > > Best,
> > > > > > > tison.
> > > > > > >
> > > > > > >
> > > > > > > Lin Zhao <lin.z...@streamnative.io.invalid> 于2022年9月10日周六
> > 00:26写道:
> > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > I'd like to start a discussion about turning on CodeCov
> report
> > > for
> > > > > PRs
> > > > > > to
> > > > > > > > master to show the PR's impact on unit test coverage.
> Previous
> > > > > > discussion
> > > > > > > > on https://github.com/apache/pulsar/pull/17382.
> > > > > > > >
> > > > > > > > Proposal:
> > > > > > > > 1. Unit test coverage will be added to the CI pipeline and
> > > reported
> > > > > to
> > > > > > > the
> > > > > > > > PR page.
> > > > > > > > Sample report:
> > > > > > > >
> > > > > > > > @@            Coverage Diff            @@##
>  master
> > > > > > > > #17382   +/-   ##
> > > > > > > > =========================================
> > > > > > > >   Coverage          ?   32.10%
> > > > > > > >   Complexity        ?     4141
> > > > > > > > =========================================
> > > > > > > >   Files             ?      387
> > > > > > > >   Lines             ?    42806
> > > > > > > >   Branches          ?     4420
> > > > > > > > =========================================
> > > > > > > >   Hits              ?    13741
> > > > > > > >   Misses            ?    27032
> > > > > > > >   Partials          ?     2033
> > > > > > > >
> > > > > > > > 2. The report will serve as additional input for the
> reviewers.
> > > The
> > > > > > > > requester is expected to explain any significant negative
> > impact.
> > > > > > > >
> > > > > > > > Why?
> > > > > > > >
> > > > > > > >
> > > > > > > >    1. The existing code coverage for Pulsar is very poor at
> > just
> > > > > above
> > > > > > > > 50%. Reasonable expectation for libraries is 90% and 70 or
> 80%
> > > for
> > > > > the
> > > > > > > > broker. We are at 60% and 50%.
> > > > > > > >    2. The coverage report would prevent coverage from getting
> > > worse
> > > > > > > > and bring the conversation on the table.
> > > > > > > >    3. Even though code coverage has its limitation in
> assessing
> > > > test
> > > > > > > > coverage, it's the only viable tool.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Thoughts?
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > yaalsn
> > > >
> > >
> >
>


-- 

Elliot West

Senior Platform Engineer

elliot.w...@streamnative.io

streamnative.io

<https://github.com/streamnative>
<https://www.linkedin.com/company/streamnative>
<https://twitter.com/streamnativeio>

Reply via email to