TU München - Fakultät für
Es sprechen Studenten Ã¼ber ihre abgeschlossenen Diplomarbeiten und Systementwicklungsprojekte.
Am Mittwoch, 25.10.17, ab 10:00 Uhr, im Raum Alonzo Church (01.09.014):
IDE-Ã¼bergreifende Quick-Fixes zur UnterstÃ¼tzung automatischer Refactorings
Im Entwicklungsprozess von Software ist es unvermeidbar, dass Fehler oder UnschÃ¶nheiten in den Code eingebaut werden. Diese kÃ¶nnen oft durch sogenannte Quick-Fixes direkt in Entwicklungsumgebungen behoben werden. Ein solcher Quick-Fix ist oftmals sehr stark abhÃ¤ngig von der Programmiersprache und auch nur in einer der vielen Entwicklungsumgebungen (IDE) wie Eclipse oder IntelliJ verfÃ¼gbar. MÃ¶chte man einen Quick-Fix auch in einer anderen IDE verwenden, so muss dieser komplett neu implementiert werden und bestehende Logik kann nur selten wieder verwendet werden. Diese Arbeit entwickelt einen Ansatz um Quick-Fixes auf Basis von dem Quality-Monitoring-Tool Teamscale unabhÃ¤ngig von einer IDE zu implementieren.
Detection of Copy-Paste Programming from Question & Answer Platforms on the Internet
Anecdotal evidence suggests that developers copy and paste of code from popular Q&A platforms like Stack Overflow into their own projects. However, this has some significant disadvantages. Firstly, code quality issues may occur because copied code may contain bugs or security vulnerabilities which are replicated to the target system. Furthermore, the developer may not properly adapt the code to target system requirements. Lastly, license infringement may occur due to insufficient attribution of the Q&A platform as the source or incompatible license models. Both, the potentially arising code quality issues and license infringement, pose practical problems during the development and release of industrially developed software. Consequentially, there is demand for detecting code copy-pasted from Q&A platforms. In this thesis a procedure for automatically detecting code copy-pasted from the prominent Q&A platform Stack Overflow in the code base of software systems is developed. Additionally the amount copy-paste programming from Stack Overflow is evaluated based on open source Java systems on Github using the detection results of the procedure.
Obtaining Coverage per Test Case
To avoid bugs in software products a lot of effort is put into testing. Especially regression testing is important for software maintained over a longer period of time to make sure already existing functionality is not broken by newly introduced features and adjustments. However, regression testing often gets unreasonably expensive as test suite sizes are growing over time. This thesis presents an algorithm for selecting and prioritizing test cases for Java applications based on a set of changes that have been applied to the system and per-test coverage collected on an older version of the system. The selection algorithm was integrated into the software Teamscale and plugins for various build systems have been implemented to prove that the technique can be easily integrated with existing test systems. The technique was evaluated on twelve software systems of various sizes. I examined how stable coverage of individual tests is in general and how strongly changes have an effect on those coverage. I found that especially asynchronous actions invoked by a test case cause flickering coverage. To evaluate the effectiveness of the reduced test set with regard to revealing faults mutation analysis techniques have been applied to the study objects. I found that 99.2% of failures that can be detected by the whole test suite are also found by the reduced test suite. The results also show that ordering the tests makes more than 90% of the test fail within the first 10% of the total execution time of the selected tests.