280 likes | 545 Views
FRE 2661. Projet Cassis. UP MBT. Extending the Unified Process with Model-Based Testing Fabrice Bouquet, Stéphane Debricon , Bruno Legeard and Jean-Daniel Nicolet MoDeV 2 a 2006 Monday, March 10, 2014. > Outline. 1. Unified Process (UP) 1.1 Overview 1.2 Structure
E N D
FRE 2661 Projet Cassis UPMBT • Extending the Unified Process • with Model-Based Testing • Fabrice Bouquet, Stéphane Debricon, Bruno Legeard • and Jean-Daniel Nicolet • MoDeV2a 2006 • Monday, March 10, 2014
> Outline 1. Unified Process (UP) 1.1 Overview 1.2 Structure 2. Model-Based Testing (MBT) 3. Extending the Unified Process with Model-Based Testing (UPMBT) 3.1 Process 3.2 Workflows 3.3 Phases 4. RTAXPM case study 5. Conclusion and Future work UPMBT
Test Model Design model Analysis model <<refine>> <<refine>> > Introduction • Process • The UP : a software engineering process (SEP). • MBT : a process conducting the generation and execution of tests. • UP + MBT = UPMBT : methodological framework for MBT. • Modeling UPMBT
> Outline 1. Unified Process (UP) 1.1 Overview 1.2 Structure 2. Model-Based Testing (MBT) 3. Extending the Unified Process with Model-Based Testing (UPMBT) 3.1 Process 3.2 Workflows 3.3 Phases 4. RTaxPM case study 5. Conclusion and Future work UPMBT
> UP > Overview (1) • The UP, a SEP • Requirements Software. • A template of process to be customized. • The UP is : • Iterative : short time-boxed iterations made of workflows. • Incremental : each iteration generates a partially complete version of the final system. UPMBT
> UP > Overview (2) • Architecture-centric : • Develop and evolve a robust system architecture. • Focus of early iterations. • Risk driven : • Develop high-risk elements in early iterations. • Requirements driven through use case : • To help plan iteration. UPMBT
> UP > Structure • A SEP (here the UP) defines : • WHO participate? • WHAT is there to do? • HOW to develop it? • WHEN to deliver a version? • A 2 axes structure : • Workflows • Phases UPMBT
> Outline 1. Unified Process (UP) 1.1 Overview 1.2 Structure 2. Model-Based Testing (MBT) 3. Extending the Unified Process with Model-Based Testing (UPMBT) 3.1 Process 3.2 Workflows 3.3 Phases 4. RTAXPM case study 5. Conclusion and Future work UPMBT
> MBT > Overview • Goals : • Identify failures in software. • Functional validation of a system using a model. • Key practices : • Use of a model, abstract enough, that capture the expected behavior of a system. • Test cases generation from selection criteria. • Execution on the System Under Test. UPMBT
Activities Documents 1 Building a model 2 Defining test selection criteria 3 Generating tests 4 adapter Setting up adapter adapter layer SUT 5 Executing tests Test selection criteria Model Test cases Test scripts verdict > MBT > Processes UPMBT
> Outline 1. Unified Process (UP) 1.1 Overview 1.2 Structure 2. Model-Based Testing (MBT) 3. Extending the Unified Process with Model-Based Testing (UPMBT) 3.1 Process 3.2 Workflows 3.3 Phases 4. RTAXPM case study 5. Conclusion and Future work UPMBT
Use case model Test Model Design model <<realize>> <<refine>> <<implement>> Adaptation layer Implementation model <<refine>> <<use>> Development Process Validation Analysis model <<implement>> Executable scripts <<use>> Tests generation Validation Process > UPMBT > Process
> UPMBT > Workflows • Design workflow : • Production of the test model, • Design and Test models are : • Produced in parallel, • Independent to ensure the quality of the generated tests. • Test target and selection criteria definition • Test Cases UPMBT
> UPMBT > Workflows • Implementation workflow : • Production of an implementation for the design model, • Production of the adapter and the adaptation layer, • Generation of test scripts from the adapter and the test cases. • Test workflow : • Execution of tests scripts on the system. UPMBT
> UPMBT > Phases • Inception : • Not impacted by the approach. • Elaboration : • Production of the test model, the adapter and the adaptation layer. • The adaptation layer architecture should be defined. UPMBT
> UPMBT > Phases • Construction : • Evolution of points of control and observation to keep coherence with design. • Transition : • Manually produced tests scripts and generated tests scripts are executed on the SUT. UPMBT
Test Model Analysis model > UPMBT > Benefits • Corrections produced earlier in the process. • Quality improvement and better coverage of produced tests. • Increased productivity : • Automatic tests generation. • Functional evolutions are easy to introduce in test campaign. • From an incremental point of view. Feedback Questions UPMBT
> Outline 1. Unified Process (UP) 1.1 Overview 1.2 Structure 2. Model-Based Testing (MBT) 3. Extending the Unified Process with Model-Based Testing (UPMBT) 3.1 Process 3.2 Workflows 3.3 Phases 4. RTAXPM case study 5. Conclusion and Future work UPMBT
> RTaxPM > Context • Project with the Canton of Geneva Information and Technology Center (CTI), Switzerland. • Good practices exist, but they are not applied systematically in every project • A reference UML model used to capture many project aspects, like business modeling, use cases, analysis, design... • Most projects perform some testing, but neither in asystematic nor uniform way. UPMBT
> RTaxPM > Overview • The Cantonal Fiscal Administration (AFC) started, a few years ago, the rebuilding of all taxing applications. • An important sub-project is the taxation of legal entities named RTaxPM (Refonte Taxation Personnes Morales). • Once a taxation file has been completed, several different taxes are calculated (federal, cantonal and commune-bound). • These taxes must then be distributed among the various communes of the canton. UPMBT
> RTaxPM > Overview • The tax computation itself involves complex business rules (several taxes, percentage lookup tables, threshold effects, …) • Besides unit testing, a functional testing framework has been developed previously • Specific cases have been manually devised with the help of a complex Excel spreadsheet • It relies on a database updated with production data (percentages) on a regular basis • A need for testing of both the computation and the life cycle exists UPMBT
Embedded states Computing-bound conditions Back loops Complex business rules Security issues (stamping requires special privileges) In taxation Controlled To stamp To correct Canceled To notify Notified At work Correct Validate [No stamp] Opposition Stamp Notify Suppress Cancel > RTaxPM > Taxation Lifecycle Stamp
Correct In taxation To stamp Controlled Canceled To correct At work To notify Notified Creation Login( taxer) Logout( taxer) Check Login( group leader) Validate [taxer.allow_stamp=true or taxation.stamp_needed=false] Taxer logged out Taxer logged in Group leader logged in [taxer.allow_stamp=false and taxation.stamp_needed=true] Opposition Stamp Stamp Notify Suppress Cancel > RTaxPM > Lifecycle for MBT
> RTaxPM > Generated Test cases • Function – Taxation computation • 250 generated test cases and expected results • Combinatory on tax reduction and tax scale • Function – Taxation life cycle • 50 generated test cases : • all transitions • all-one-loop paths on the life cycle • Test combinatory as round trips within the UML state machine UPMBT
> RTaxPM > Tests execution • Use a XML framework with JUnit to execute generated test cases
> Outline 1. Unified Process (UP) 1.1 Overview 1.2 Structure 2. Model-Based Testing (MBT) 3. Extending the Unified Process with Model-Based Testing (UPMBT) 3.1 Process 3.2 Workflows 3.3 Phases 4. RTAXPM case study 5. Conclusion and Future work UPMBT
> Conclusion • This first experimentation is a success for the CTI and UPMBT • Integration of MBT into a SEP : • Can accelerate its adoption. • Reduce the risk of incoherence between design and test model. • Give permanent feedback from the test model to the analysis model. • Don’t start from scratch but use the analysis model to derive the test model. • UPMBT can be used with any tools supporting UP UPMBT
> Future work • Experimenting : • With other case study • the parallel development of the design and test model. • Defining : • Guidelines to model for test. • A subset of UML. • An action language to be used for MBT.