Question-learn-test-feedback pattern to test emerging software construction paradigms

by Benoit Baudry
Abstract:
This habilitation introduces the question-learn-test-feedback pattern that resulted from a series of investigations in the domains of software testing and modular software construction. The contributions to these fields are of various natures, but are all fundamentally related through two major assumptions: software construction paradigms have to constantly evolve in order to deal with the increasingly complex requirements that software-intensive systems have to meet; a tester’s perspective can support this evolution through the development of effective testing techniques and new empirical knowledge about these paradigms. Abstraction, modularity and separation of concerns have been advocated as key factors for rigorous software engineering for a long time. These principles have been incarnated by various software construction paradigms such as object-oriented programming and design, model-driven development and aspect-oriented modeling. These paradigms evolve in order to deal with the increasing number of heterogeneous requirements, the large number of variations and the need for adaptation that software-intensive systems have to integrate. The work presented here is about the integration of effective testing techniques in these paradigms and how this led us towards a more precise understanding of these paradigms. A major discovery in our work is that we could follow a systematic pattern when investigating these paradigms to integrate error detection capabilities. First, we have to question these paradigms about the new assumptions they introduce on software systems. When answering these questions we can can perform the following actions: learn through rigorous evaluation of hypotheses about these paradigms; test software systems developed in these new paradigms; provide feedback to the paradigms in the form of new construction techniques that improve testability. We capture these four facets for the investigation of software construction paradigms in the question-learn-test-feedback pattern (QLTF). This habilitation reports on investigations in three software construction techniques: object-oriented programming and design, aspect-oriented programming, model transformations. Each investigation is synthesized around the question-learn-test-feedback pattern.
Reference:
Question-learn-test-feedback pattern to test emerging software construction paradigms (Benoit Baudry), PhD thesis, Université Européenne de Bretagne, 2010.
Bibtex Entry:
@phdthesis{Baudry2010a,
	Abstract = {{T}his habilitation introduces the question-learn-test-feedback pattern that resulted from a series of investigations in the domains of software testing and modular software construction. {T}he contributions to these fields are of various natures, but are all fundamentally related through two major assumptions: software construction paradigms have to constantly evolve in order to deal with the increasingly complex requirements that software-intensive systems have to meet; a tester's perspective can support this evolution through the development of effective testing techniques and new empirical knowledge about these paradigms. {A}bstraction, modularity and separation of concerns have been advocated as key factors for rigorous software engineering for a long time. {T}hese principles have been incarnated by various software construction paradigms such as object-oriented programming and design, model-driven development and aspect-oriented modeling. {T}hese paradigms evolve in order to deal with the increasing number of heterogeneous requirements, the large number of variations and the need for adaptation that software-intensive systems have to integrate. {T}he work presented here is about the integration of effective testing techniques in these paradigms and how this led us towards a more precise understanding of these paradigms. {A} major discovery in our work is that we could follow a systematic pattern when investigating these paradigms to integrate error detection capabilities. {F}irst, we have to question these paradigms about the new assumptions they introduce on software systems. {W}hen answering these questions we can can perform the following actions: learn through rigorous evaluation of hypotheses about these paradigms; test software systems developed in these new paradigms; provide feedback to the paradigms in the form of new construction techniques that improve testability. {W}e capture these four facets for the investigation of software construction paradigms in the question-learn-test-feedback pattern ({QLTF}). {T}his habilitation reports on investigations in three software construction techniques: object-oriented programming and design, aspect-oriented programming, model transformations. {E}ach investigation is synthesized around the question-learn-test-feedback pattern.},
	keywords = {test, MDE},
	Author = {{B}audry, {B}enoit},
	Day = {10},
	Language = {English},
	Month = {12},
	School = {{U}niversit{'e} {E}urop{'e}enne de {B}retagne},
	Title = {{Q}uestion-learn-test-feedback pattern to test emerging software construction paradigms},
	Type = {HDR},
	Url = {http://tel.archives-ouvertes.fr/tel-00553854/PDF/hdr.pdf},
	X-Language = {EN},
	Year = {2010},
	Bdsk-Url-1 = {http://tel.archives-ouvertes.fr/tel-00553854/PDF/hdr.pdf}}