TU Darmstadt / ULB / TUbiblio

Automatic testing of sequential and concurrent substitutability

Pradel, Michael ; Gross, Thomas R. (2013)
Automatic testing of sequential and concurrent substitutability.
San Francisco, CA, USA
doi: 10.1109/ICSE.2013.6606574
Konferenzveröffentlichung, Bibliographie

Kurzbeschreibung (Abstract)

Languages with inheritance and polymorphism assume that a subclass instance can substitute a superclass instance without causing behavioral differences for clients of the superclass. However, programmers may accidentally create subclasses that are semantically incompatible with their superclasses. Such subclasses lead to bugs, because a programmer may assign a subclass instance to a superclass reference. This paper presents an automatic testing technique to reveal subclasses that cannot safely substitute their superclasses. The key idea is to generate generic tests that analyze the behavior of both the subclass and its superclass. If using the subclass leads to behavior that cannot occur with the superclass, the analysis reports a warning. We find a high percentage of widely used Java classes, including classes from JBoss, Eclipse, and Apache Commons Collections, to be unsafe substitutes for their superclasses: 30% of these classes lead to crashes, and even more have other behavioral differences.

Typ des Eintrags: Konferenzveröffentlichung
Erschienen: 2013
Autor(en): Pradel, Michael ; Gross, Thomas R.
Art des Eintrags: Bibliographie
Titel: Automatic testing of sequential and concurrent substitutability
Sprache: Deutsch
Publikationsjahr: Mai 2013
Verlag: IEEE Press
Buchtitel: Proceedings of the 2013 International Conference on Software Engineering
Reihe: ICSE '13
Veranstaltungsort: San Francisco, CA, USA
DOI: 10.1109/ICSE.2013.6606574
Kurzbeschreibung (Abstract):

Languages with inheritance and polymorphism assume that a subclass instance can substitute a superclass instance without causing behavioral differences for clients of the superclass. However, programmers may accidentally create subclasses that are semantically incompatible with their superclasses. Such subclasses lead to bugs, because a programmer may assign a subclass instance to a superclass reference. This paper presents an automatic testing technique to reveal subclasses that cannot safely substitute their superclasses. The key idea is to generate generic tests that analyze the behavior of both the subclass and its superclass. If using the subclass leads to behavior that cannot occur with the superclass, the analysis reports a warning. We find a high percentage of widely used Java classes, including classes from JBoss, Eclipse, and Apache Commons Collections, to be unsafe substitutes for their superclasses: 30% of these classes lead to crashes, and even more have other behavioral differences.

Freie Schlagworte: Generators, Runtime, Computer bugs, Java, Programming, Libraries
ID-Nummer: TUD-CS-2013-0482
Fachbereich(e)/-gebiet(e): Profilbereiche > Cybersicherheit (CYSEC)
Profilbereiche
Hinterlegungsdatum: 28 Aug 2017 12:58
Letzte Änderung: 15 Mai 2018 10:33
PPN:
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen