Hi,

+1 for creating a checkstyle validation that we have associated JIRA with each Ignored test. But it seems to me we might need something more, because some of the associated JIRAs are open for years. I think that after 2-3 years being ignored the tests might have already lost their relevance.

Jan

On 5/15/20 10:20 PM, Luke Cwik wrote:
For the ones without the label, someone would need to use blame and track back to why it was sickbayed.

On Fri, May 15, 2020 at 1:08 PM Kenneth Knowles <k...@apache.org <mailto:k...@apache.org>> wrote:

    There are 101 instances of @Ignore, and I've listed them below. A
    few takeaways:

     - highly concentrated in ZetaSQL, and then second tier in various
    state tests specific to a runner
     - there are not that many overall, so I'm not sure a report will
    add much
     - they do not all have Jiras
     - they do not even all have any explanation at all (some don't
    leave out the string parameter, but have an empty string!)

    Having a checkstyle that there is a Jira attached seems nice. Then
    we could easily grep out the Jiras and not depend on the "sickbay"
    label.

    Raw data (to see the individual items, just do the grep and not
    the processing)

      % grep --recursive --exclude-dir build '@Ignore' . | cut -d ' '
    -f 1 | sort | uniq -c | sort -r
      27
    
./sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSQLDialectSpecTest.java:
      11
    
./runners/flink/src/test/java/org/apache/beam/runners/flink/streaming/FlinkBroadcastStateInternalsTest.java:
       7
    
./runners/spark/src/test/java/org/apache/beam/runners/spark/stateful/SparkStateInternalsTest.java:
       7
    
./runners/apex/src/test/java/org/apache/beam/runners/apex/translation/utils/ApexStateInternalsTest.java:
       4
    
./sdks/java/testing/nexmark/src/test/java/org/apache/beam/sdk/nexmark/queries/QueryTest.java:
       4
    
./runners/spark/src/test/java/org/apache/beam/runners/spark/structuredstreaming/StructuredStreamingPipelineStateTest.java:
       2
    
./sdks/java/io/xml/src/test/java/org/apache/beam/sdk/io/xml/XmlSourceTest.java:
       2
    
./sdks/java/io/mqtt/src/test/java/org/apache/beam/sdk/io/mqtt/MqttIOTest.java:
       2
    
./sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubJsonIT.java:
       2
    
./sdks/java/extensions/sql/jdbc/src/test/java/org/apache/beam/sdk/extensions/sql/jdbc/BeamSqlLineIT.java:
       2
    
./sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceByKeyTest.java:
       2
    
./sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/ParDoTest.java:
       2
    
./sdks/java/core/src/test/java/org/apache/beam/sdk/coders/PCollectionCustomCoderTest.java:
       2
    
./runners/direct-java/src/test/java/org/apache/beam/runners/direct/ExecutorServiceParallelExecutorTest.java:
       1
    
./sdks/java/testing/nexmark/src/test/java/org/apache/beam/sdk/nexmark/sources/UnboundedEventSourceTest.java:
       1
    
./sdks/java/testing/nexmark/src/test/java/org/apache/beam/sdk/nexmark/queries/sql/SqlQuery5Test.java:
       1
    
./sdks/java/io/kudu/src/test/java/org/apache/beam/sdk/io/kudu/KuduIOTest.java:
       1
    
./sdks/java/io/kafka/src/test/java/org/apache/beam/sdk/io/kafka/KafkaIOTest.java:
       1
    
./sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopFileSystemTest.java:
       1
    
./sdks/java/io/clickhouse/src/test/java/org/apache/beam/sdk/io/clickhouse/ClickHouseIOTest.java:
       1
    
./sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIOTest.java:@Ignore("[BEAM-7794]
       1
    
./sdks/java/io/amazon-web-services/src/test/java/org/apache/beam/sdk/io/aws/dynamodb/DynamoDBIOTest.java:@Ignore("[BEAM-7794]
       1
    
./sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/kafka/KafkaCSVTableIT.java:@Ignore("https://issues.apache.org/jira/projects/BEAM/issues/BEAM-7523";)
       1
    
./sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/impl/JdbcDriverTest.java:
       1
    
./sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlExplainTest.java:
       1
    
./sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlDslSqlStdOperatorsTest.java:
       1
    
./sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamComplexTypeTest.java:
       1
    
./sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/JoinTest.java:
       1
    
./sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/docs/DocumentationExamplesTest.java:
       1
    ./sdks/java/core/src/test/java/org/apache/beam/sdk/values/PDoneTest.java:
       1
    
./sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/WatchTest.java:
       1
    
./sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/SplittableDoFnTest.java:
       1
    
./sdks/java/core/src/test/java/org/apache/beam/sdk/io/BoundedReadFromUnboundedSourceTest.java:
       1
    ./sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java:
       1
    
./runners/spark/src/test/java/org/apache/beam/runners/spark/structuredstreaming/translation/streaming/SimpleSourceTest.java:
       1
    
./runners/spark/src/test/java/org/apache/beam/runners/spark/structuredstreaming/aggregators/metrics/sink/SparkMetricsSinkTest.java:@Ignore("Has
       1
    
./runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/BatchStatefulParDoOverridesTest.java:
       1
    
./runners/direct-java/src/test/java/org/apache/beam/runners/direct/WatermarkManagerTest.java:
       1
    
./runners/apex/src/test/java/org/apache/beam/runners/apex/translation/ParDoTranslatorTest.java:


    Kenn

    On Tue, May 12, 2020 at 1:24 PM Mikhail Gryzykhin
    <gryzykhin.mikh...@gmail.com <mailto:gryzykhin.mikh...@gmail.com>>
    wrote:

        I wonder if we can add graph to community metrics showing
        ignored tests by language/project/overall. That can be useful
        to see focus area.

        On Tue, May 12, 2020 at 12:28 PM Jan Lukavský <je...@seznam.cz
        <mailto:je...@seznam.cz>> wrote:

            +1, visualizing the number of ignored tests in a graph
            seems useful. Even better with some slices (e.g. per
            runner, module, ...).

            On 5/12/20 8:02 PM, Ahmet Altay wrote:
            +1 to generate a report instead of removing these tests.
            A report like this could help us with prioritization. It
            is easier to address issues when we can quantify how much
            of a problem it is.

            I am curious what we can do to incentivize reducing the
            number of flaky/ignored tests? A report itself might
            provide incentive, it is rewarding to see ignored tests
            numbers go down over time.

            On Mon, May 11, 2020 at 8:30 AM Luke Cwik
            <lc...@google.com <mailto:lc...@google.com>> wrote:

                Deleting ignored tests does lead us to losing the
                reason as to why the test case was around so I would
                rather keep it around. I think it would be more
                valuable to generate a report that goes on the
                website/wiki showing stability of the modules (num
                tests, num passed, num skipped, num failed (running
                averages over the past N runs)). We had discussed
                doing something like this for ValidatesRunner so we
                could show which runner supports what automatically.

                On Mon, May 11, 2020 at 12:53 AM Jan Lukavský
                <je...@seznam.cz <mailto:je...@seznam.cz>> wrote:

                    I think that we do have Jira issues for ignored
                    test, there should be no problem with that. The
                    questionable point is that when test gets
                    Ignored, people might consider the problem as
                    "less painful" and postpone the correct solution
                    until ... forever. I'd just like to discuss if
                    people see this as an issue. If yes, should we do
                    something about that, or if no, maybe we can
                    create a rule that test marked as Ignored for
                    long time might be deleted, because apparently is
                    only a dead code.

                    On 5/6/20 6:30 PM, Kenneth Knowles wrote:
                    Good point.

                    The raw numbers are available in the test run
                    output. See
                    
https://builds.apache.org/view/A-D/view/Beam/view/PostCommit/job/beam_PreCommit_Java_Cron/2718/testReport/
 for
                    the "skipped" column.
                    And you get the same on console or Gradle Scan:
                    https://scans.gradle.com/s/ml3jv5xctkrmg/tests?collapse-all
                    This would be good to review periodically for
                    obvious trouble spots.

                    But I think you mean something more detailed.
                    Some report with columns: Test Suite, Test
                    Method, Jira, Date Ignored, Most Recent Update

                    I think we can get most of this from Jira, if we
                    just make sure that each ignored test has a Jira
                    and they are all labeled in a consistent way.
                    That would be the quickest way to get some
                    result, even though it is not perfectly
                    automated and audited.

                    Kenn

                    On Tue, May 5, 2020 at 2:41 PM Jan Lukavský
                    <je...@seznam.cz <mailto:je...@seznam.cz>> wrote:

                        Hi,

                        it seems we are accumulating test cases (see
                        discussion in [1]) that are
                        marked as @Ignored (mostly due to
                        flakiness), which is generally
                        undesirable. Associated JIRAs seem to be
                        open for a long time, and this
                        might generally cause that we loose code
                        coverage. Would anyone have
                        idea on how to visualize these Ignored tests
                        better? My first idea would
                        be something similar to "Beam dependency
                        check report", but that seems
                        to be not the best example (which is
                        completely different issue :)).

                        Jan

                        [1] https://github.com/apache/beam/pull/11614

Reply via email to