Skip to content

arcuri82/ec-sbse

Repository files navigation

EC-SBSE

This repository contains the material for the PhD course titled: "Evolutionary Computation and Search-Based Software Engineering", code PIT9206.

The course is currently taught by Prof. Andrea Arcuri, at Kristiania University College, Oslo, Norway.

In 2024, the course will be held from the 27th to 30th of May.

Lessons

The course is divided in 4 lessons:

  1. Intro to Combinatorial Optimization and Evolutionary Computation (EC)

    • Search/Optimization Problems
    • Brute Force Algorithm
    • Random Search
    • Greedy Algorithms
    • Hill Climbing
    • (1+1) Evolutionary Algorithm
    • Genetic Algorithms
    • No Free Lunch Theorem
    • P vs. NP
  2. Advanced Topics in EC

    • Random Number Generator
    • Search Landscape
    • Population Diversity
    • Multi-Objective Optimization
    • Parameter Tuning
    • Theoretical Runtime Analysis
  3. Search-Based Software Engineering (SBSE)

    • History and Applications of SBSE
    • Research Venues for SBSE research
    • Unit test generation with EvoSuite
    • System-test generation with EvoMaster
  4. Analysis and Comparison of EC Algorithms

    • Baseline selection
    • Search budget tradeoffs
    • Experiment scaffolding
    • Statistical tests
    • Visualization in Latex

Reading List

  1. Lesson 1

    • Luke, Sean. Essentials of metaheuristics. Vol. 2. Raleigh: Lulu, 2013. IMPORTANT: download book from author's website

    • Holland, J. H. (1992). Genetic algorithms. Scientific American, 267(1), 66–73.

    • Whitley D. (1994). A genetic algorithm tutorial. Statistics and computing. Jun;4:65-85.

    • Durillo JJ, Nebro AJ. (2011). jMetal: A Java framework for multi-objective optimization. Advances in Engineering Software. Oct 1;42(10):760-71.

  2. Lesson 2

    • Whitley LD. (1989). The GENITOR algorithm and selection pressure: why rank-based allocation of reproductive trials is best. Colorado State University, Department of Computer Science; Jun 4.

    • Črepinšek M, Liu SH, Mernik M. (2013). Exploration and exploitation in evolutionary algorithms: A survey. ACM computing surveys (CSUR). Jul 3;45(3):1-33.

    • Deb K, Pratap A, Agarwal S, Meyarivan TA. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE transactions on evolutionary computation. Aug 7;6(2):182-97.

    • Droste S, Jansen T, Wegener I. (2002). On the analysis of the (1+ 1) evolutionary algorithm. Theoretical Computer Science. Apr 6;276(1-2):51-81.

    • Arcuri A, Fraser G. (2013). Parameter tuning or default values? An empirical investigation in search-based software engineering. Empirical Software Engineering. Jun;18:594-623.

  3. Lesson 3

    • Miller W, Spooner DL. (1976). Automatic generation of floating-point test data. IEEE Transactions on Software Engineering. 1976 Sep(3):223-6.

    • Korel B. (1990). Automated software test data generation. IEEE Transactions on software engineering. 1990 Aug;16(8):870-9.

    • McMinn, P. (2004). Search‐based software test data generation: a survey. Software testing, Verification and reliability, 14(2), 105-156.

    • Harman, M., Mansouri, S. A., & Zhang, Y. (2012). Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys (CSUR), 45(1), 1-61.

    • Harman M, Hu L, Hierons R, Wegener J, Sthamer H, Baresel A, Roper M. (2004). Testability transformation. IEEE Transactions on Software Engineering. Jan;30(1):3-16.

    • Fraser G, Arcuri A. (2011). Evosuite: automatic test suite generation for object-oriented software. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering Sep 9 (pp. 416-419)

    • Arcuri, A. (2019). RESTful API automated test case generation with EvoMaster. ACM Transactions on Software Engineering and Methodology (TOSEM), 28(1), 1-37.

    • Arcuri A. (2018). Test suite generation with the Many Independent Objective (MIO) algorithm. Information and Software Technology. 2018 Dec 1;104:195-206.

  4. Lesson 4

    • Barr RS, Golden BL, Kelly JP, Resende MG, Stewart WR. (1995). Designing and reporting on computational experiments with heuristic methods. Journal of heuristics. Sep;1:9-32.

    • A Arcuri, L Briand (2014). A hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering. Software Testing, Verification and Reliability, 24 (3), 219-250

    • Campos J, Ge Y, Albunian N, Fraser G, Eler M, Arcuri A. (2018). An empirical evaluation of evolutionary algorithms for unit test suite generation. Information and Software Technology. Dec 1;104:207-35.

    • Arcuri A, Zhang M, Belhadi A, Marculescu B, Golmohammadi A, Galeotti JP, Seran S. (2023). Building an open-source system test generation tool: lessons learned and empirical analyses with EvoMaster. Software Quality Journal. Mar 6:1-44.

Old Slides

Currently, we have no slides (yet) for this course. But some relevant old slides (from previous courses) can be found under the old_slides folder.

About

PhD course material for: "Evolutionary Computation and Search-Based Software Engineering"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published