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

Release of DSpot 1.2.0 #582

Closed
danglotb opened this issue Oct 17, 2018 · 3 comments
Closed

Release of DSpot 1.2.0 #582

danglotb opened this issue Oct 17, 2018 · 3 comments

Comments

@danglotb
Copy link
Member

danglotb commented Oct 17, 2018

since Spoon has been release: INRIA/spoon#2489, we can release DSpot.

HIGHLIGHTS

  • Default mutation engine: In the context of STAMP, DSpot uses now Descartes as a default mutation engine (former command line option: --descartes). This introduced a new command line option to switch to the default pit mutation engine, i.e. gregor with the following command line option: --gregor.

  • Test selection from csv: DSpot can take now a list of test classes and their test methods in a form of a csv file. The syntax is as follows: fullQualifiedNameTestClass;testMethodName1;testMethodName2;....
    This feature aims at creating a toolchain with another STAMP artifact: diff-test-selection, which produces this kind of list, that contains test methods that execute a diff between two versions of the same program (e.g. a commit on GitHub).

  • Budget: This release introduces the Budget concepts. A Budget is a way to share the number of amplified test methods between input amplifiers. This can be specified with --budgetizer <budgetizer>.
    For now, there is two "budgetizers" available:

    1. NoBudgetizer: It will take amplified test methods that have the most different string representations. --budgetizer NoBudgetizer (default)
    2. SimpleBudgetizer: It will take a fair number of amplified test methods per input amplifier. --budgetizer SimpleBudgetizer
      Budgetizers aim at implementing a way to reduce the number of amplified test methods to the max number, i.e. see the options --max-test-amplified <integer> (default: 200).

/!\ We disable the following options because they are unstable:

  • --test-selection ExecutedMutantSelector: this selector is judged useless and inefficient. (Will be deleted)
  • --test-selection ExecutedMutantSelector: this selector seems to not correctly select amplified test methods. It needs some adjustments.
  • --amplifiers ReplacementAmplifier: this amplifier creates too many variants of test methods and thus is not stable: can crash DSpot.
  • --no-minimize is now the default behavior, i.e. the minimization is NOT applied at the end of the amplification.
    For now, there is no option to enable the minimization because it is unstable.

CHANGELOG

New features

  • Look for a subclass when we need to construct an Interface.
  • Remove try catch fail before assertion FIX DSpot should not remove Assert.fail() in existing try/catch block #533.
  • Report json with counter values for ChangeDetectorSelector.
  • Automatically replace @test from JUnit5 to @test from JUnit4.
  • Add automatically JUnit4 in the cp from DSpot if needed.
  • Skip the print of the test class in case of any amplification worked.
  • Use maven to exe tests.
  • FIX Oracles should used the new name of the test classes #539 replace all occurences of original name.
  • Compute top package name on the fly.
  • Feat test selection from csv.
  • Improve dspot maven plugin with maven project.
  • Change API to have the test class under amplification, even if ….
  • Handle StackOverFlowError of getAllMethods().
  • Feat hashcode url.
  • Do not assert string with object references.
  • Discard now OutOfMemoryError and StackOverFlowError.
  • Update the version by default to pit 1.4.0.
  • Feat field read in assert.
  • Match test methods from super class.
  • Generate log statement on asserted values in original test.
  • Prevent infinite loop when unsuccessful compilations.
  • Add boolean to apply one time the specific value on each literals.
  • Always use absolute path for compiling / execution.

Bug Fixes

  • Add update counter input in new amplifiers.
  • Support list of regex for test classes and test methods.
  • Use File.separator rather than /.
  • Instanciate correctly the PitMutantScoreSelector with pre-computed origin result.
  • Fix call reset automatic builder.
  • Avoid getters to date and calendar.
  • Recompute the path to dependencies.
  • Fix Amplified test doesn't execute for AmplProviderTest #537 keep original test method.
  • Usage of descartes.
  • Use now the command line option and the property.
  • Use jvm args.
  • Add a joker to the end of the top package.
  • Get all test classes.
  • Matching assertions.
  • Fix default pit version.
  • WIN compliant path splitting.
  • FIX why compiled tests are deleted? #551 Fix global coverage by clover selector.
  • Launch checkstyle in a dedicated node of travis and skip it when….
  • Relative path, file separator, class loading.
  • Relative path, file separator, class loading.
  • Null amplifier for array.
  • Translator for util package and nested classes.
  • Method generator and constructor creator.
  • Check if the current element is the target of the invocation.
  • Null amplifier.
  • Check not null before deferencement.
  • Support now CtUnaryOperator.
  • Assert remover.
  • TypeUtils.isPrimitive() and uses InputClassLoader.
  • Use the Type sub factory instead of Class sub factory.
  • Use correctly the generate new test class option.
  • Method call adder.
  • Merge both conditional, do not use the filter for invocation.
  • Using existing literals if at least two elements exist.
  • Fix translator wo parenthesis.
  • Fix PitMutantScoreSelector is not reset if the test methods has not tests to be run (all of them fail) #601 reset pit selector.
  • Fix is stmt to log.
  • Fix test method call remove.
  • Duplicate method call.
  • Refactor the TestMethodCallRemover to remove, clone and re-insert instead of using index, which is error-prone.
  • Fix assertions remover on catch variable.
  • Input amplification uses now field read.
  • Use now field read for values in arrays.
  • Remove InputConfiguration as a field and use the singleton.
  • Select correctly the tests to be amplified.
  • Execute now DSpot on all test methods if the provided test methods list is empty.
  • Lookup for getters in super classes.
  • Use the fullqualified name of annotation raher the .class. Using the Class could lead to conflict between versions.
  • Refactor input amplification.
  • Fix observations.
  • Remove useless query, and pick up random element instead of shuffle it.
  • The observation of an empty collection/map.
  • Update the comparison to the new packages, and unify the check.
  • Remove all unserializable value before saving.
  • Check the property targerModult not null.
  • Fix Fix execution of DSpot maven plugin on test example #395.
  • Expected Exception and generate assertion in catch block.
  • Improve test run errors.
  • Remove redundant assertions inside the correct block.
  • Fix the selector on diff for multi module project.
  • Fix observe values.
  • Amplification checks well the returned TestListener.
  • Call now amplifyTests on each provided String.
  • Use the pre-built factory instead of the factory of gumtree.
  • Assertions remover use now add statements with a filter.
  • Remove redundancy by reusing isAssert.
  • SelectorOnDiff returns now a Map of Strings.
  • Fix amplification on wildcard.
  • The selection takes also super class when there is no test in th….
  • Fix is array.
  • Create a method to remove redundancy of code, fix adding assertion statement at the end of the block.

Documentation

  • Update JVMArgs property documentation.
  • Add maven central badge.
  • Add "DSpot ecosystem".
  • Fix default selector, Prerequisites and filter property.
  • Fix the documentation according to the usage of PIT.
  • Remove some logs.

Tests

  • Add some test for TestCompiler.
  • Add some test on MethodsHandler to ensure features.
  • Remove comments from the test.

Continuous Integration

  • Notificy Riot Chat in case of failing.
  • Update path to the deploy script.
  • Split the ci procedure into a bunch of scripts to parallelize them.
  • Deploy a snapshot when the build succeed.

Refactoring

  • Split AmplificationHelper to several little classes with cl….
  • InputConfiguration is now a singleton.
  • Refactor input configuration wo properties.
  • Renaming packages to eu.stamp_project.

Performance

  • Speed-up the value creator.
  • Performance assertion amplification.

Unknown

  • Remove input program.
  • Disable unstable options.
  • Bump test-runner version to 1.1.1.
  • Disable the minimization for now.
  • Bump Spoon version to 7.1.0.
  • Merge branch 'master' into master.
  • Merge branch 'jenkins-compatibility' into master.
  • Do not override properties if it is defined for output path.
  • Open input configuration.
  • Budget.
  • Split statement add.
  • Remove relative path in Dspot InputConfiguration #392 fix inputConfiguration problem.
  • Ready to remove inputProgram.
  • Use descartes as default mutation engine.
  • Move the factory from InputProgram to InputConfiguration.
  • Use absolute path in ChangeMinimizer and ChangeDetectorSelector.
  • Choose one String randomly among existing.
  • Don't override tests annotations.
  • Unspecify assertions.
  • Avoid NPE.
  • Move the conditionals.
  • Look for the super class if the current is not visible.
  • Update ISSUE_TEMPLATE.md.
  • Return directly when there is no Input-Amplifiers.
  • Check not null on ctMethod returned by gumtree.
  • Update "filter" documentation.
  • Update readme to improve the open-source look'n'feel.

Authors

Name Nb Commit
Benjamin DANGLOT 131
Valentina Di Giacomo 5
Martin Monperrus 3
Nicola Bertazzo 2
Simon Bihel 2
andrewbwogi 1
@danglotb
Copy link
Member Author

Will wait for #578, #579 and #580

@ltboye
Copy link

ltboye commented Oct 22, 2018

How to get this version? I pulled the latest master, and the pom files say 1.1.1-SNAPSHOT. I can't see any new branches.

@danglotb
Copy link
Member Author

danglotb commented Oct 22, 2018

Hi @ltboye, I plan to release as soon as all the listed issues above are closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants