I'm think that a Jenkins job which asserts the conditions related to a bug
report is a regression test.  I admit that the Jenkins jobs I create are
not Selenium tests, and they do not require a web browser in order to run.
They are definitely not able to exercise JavaScript, and they do not
evaluate behavior across multiple browsers.  If the goal is to check
JavaScript or to check browser compatibility, then Jenkins jobs are a poor
choice.

If the goal is to duplicate a bug report, and reuse the steps that
duplicated the bug report for later regression testing, then I think a
Jenkins job is simpler to create, easier to maintain, and easier to
diagnose than a Selenium test.

Ulrich, if you are interested in some "test drive" bug reports from the git
plugin or the git client plugin, you can review how I use the technique to
report and duplicate bugs in:

   - JENKINS-42204 <https://issues.jenkins-ci.org/browse/JENKINS-42204> -
   NPE due to recent GitSCMSource change
   - JENKINS-41948 <https://issues.jenkins-ci.org/browse/JENKINS-41948> -
   NoSuchMethodError scanning multi-branch project
   - JENKINS-41867 <https://issues.jenkins-ci.org/browse/JENKINS-41867> -
   IllegalStateException scanning multi-branch project
   - JENKINS-41785 <https://issues.jenkins-ci.org/browse/JENKINS-41785> -
   Pipeline status icon no longer shows worst status

If your students would like to try to duplicate bugs that I think are
interesting, I would suggest starting with:

   - JENKINS-38860 <https://issues.jenkins-ci.org/browse/JENKINS-38860> -
   renamed submodules fail checkout
   - JENKINS-41553 <https://issues.jenkins-ci.org/browse/JENKINS-41553> -
   submodule defs read from wrong location
   - JENKINS-42004 <https://issues.jenkins-ci.org/browse/JENKINS-42004> -
   jobs triggered unnecessarily (scenario 1)
   - JENKINS-41906 <https://issues.jenkins-ci.org/browse/JENKINS-41906> -
   jobs triggered unnecessarily (scenario 2)
   - JENKINS-40733 <https://issues.jenkins-ci.org/browse/JENKINS-40733> -
   notifyCommit provides wrong parameters
   - JENKINS-40352 <https://issues.jenkins-ci.org/browse/JENKINS-40352> -
   duplicate changesets in pipeline jobs (and other jobs)
   - JENKINS-39621 <https://issues.jenkins-ci.org/browse/JENKINS-39621> -
   infinite loop of job rebuilds

Those bug reports are likely well suited to creating one or more jobs to
show that the bug exists.  If they want to use the infrastructure already
provided in the lts-with-plugins branch
<https://github.com/MarkEWaite/docker/tree/lts-with-plugins> of my docker
repository <https://github.com/MarkEWaite/docker>, they're welcome to do
that.

If you decide that the technique works well enough for the students, then
you can consider attempting other bugs from the git-plugin and
git-client-plugin projects, most recent bugs first.  I suspect other SCM
system bugs (Subversion, etc.) are reasonably well suited to the same
technique.

I've also found that it is quite powerful to create a pipeline based branch
per bug verification job so that Jenkins will automatically create the job
and execute it.  You can see examples of that technique in my jenkins-bugs
repository <https://github.com/MarkEWaite/jenkins-bugs> (which is
referenced in several different ways from the docker instance).  That has
the benefit that I don't have to commit anything to the docker repository,
and the Jenkins pipeline code still creates and runs a job per bug.

I'm also OK if you decide it is better to submit pull requests to the
acceptance test harness.  The acceptance test harness has the compelling
benefit that there are many more people creating Selenium tests with the
acceptance test harness, and there are many more locations where those
tests can be executed.

In my case, I don't need the flexibility of a Selenium test, and I want the
easier diagnose and trivial parallel execution that comes from running a
Jenkins instance with multiple slaves and with tests defined as Jenkins
jobs.

Thanks!
Mark Waite

P.S. I have pipeline utility functions assertLogContains and
assertLogDoesNotContain to search for specific strings in the log files.
When one of those functions finds something unexpected, it marks the job as
"Unstable".  I can then search for all failed jobs and all unstable jobs in
my Jenkins instance to locate test failures.  Because it is a docker
instance, I can spread the execution load trivially across multiple agents
by adding or deleting agents.  I get interesting (and useful) test
randomization by choosing a mix of operating systems (Windows, CentOS 6.
CentOS 7, Debian 7, Debian 8, Ubuntu 14, Ubuntu 16, etc.) and git versions.



On Fri, Feb 17, 2017 at 5:47 AM Jesse Glick <jgl...@cloudbees.com> wrote:

> I would also much rather see a genuine regression test. If some aspect of
> ATH is too weak to reproduce the bug properly, then that is what needs
> fixing.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr2eGwB-hbFXtJa%2BJE72HbTqE6t8iTqYQO_iRL-SBarbBw%40mail.gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr2eGwB-hbFXtJa%2BJE72HbTqE6t8iTqYQO_iRL-SBarbBw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAO49JtGNukWHg8s2qx-GiCEN%2BPRKLOdRQ1f3UM50J4%2BgBB9r8A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to