120 likes | 132 Views
This article discusses the fundamentals of testing, formal verification, testability, and testing in a software engineering process. It also explores test automation and provides insights into testing practices at C.E.S.A.R. Motorola Brazil Test Center.
E N D
Reusing Test Asset in Software Factories Jorge A. M. Corrêa de Oliveira jorge.oliveira@cesar.org.br
Summary • Introduction • Fundaments of Testing • Formal Verification, Testability and Testing • Component Testing in a Software Engineering Process • Phases of Testing • Test Automation • Testing in C.E.S.A.R • Motorola Brazil Test Center
Formal Verification, Testability and Testing • [VOAS et al, 1995] • Combine Testability, Formal Verification and Testing • Testability "The degree to which a system or component facilitates the establishent of test criteria and the performance of tests to determine whether those criteria have been met.” IEEE Standard Glossary of Software Engineering Technology • Formal Verification “Process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.” IEEE Standard Glossary of Software Engineering Technology • Testing • ?????????
Component Testing in a Software Engineering Process • [GOUVEIA, 2004] • “unir o processo de teste ao processo de desenvolvimento do software, isto é, fazer com que estas duas etapas ocorram paralelamente e de forma colaborativa, e não uma após a outra.”
Phases of Testing • [WHITTAKER, 2000] • Modeling the software’s enviroment • 1st Point • 2nd Point • Selecting test scenarios • 1st Point • 2nd Point • Running and evaluating test scenarios • 1st Point • 2nd Point • Measuring testing progress • 1st Point • 2nd Point
Software Test Automation • Advantages • 1st Point • 2nd Point • Disadvantages • 1st Point • 2nd Point • Statistically • 1st Point • 2nd Point • How to make it worthful? • 1st Point • 2nd Point
Tests on C.E.S.A.R • Motorola E2E • Web Testing • Motorola P2K Brazil Test Center • Mobile software testing
Brazil Test Center • BTC Test Design • Writes test cases based on scaped defects • BTC Test Execution • Runs Sanity, Regression, Integration and Load Tests • BTC Feature Test • Writes test cases based on software requirements and Executes the test cases • BTC Test Automatic Execution • Executes Automated Test Cases for Sanity, Integration and Stress Tests • BTC Test Automation • Develops a Test Automation Framework and Automated Test Cases
Reuse in Test Design • High Level Test Cases • What is? • Why? • How to?
Reuse in Test Execution • Execution History • What is? • Automation of the tests’ initial condition • What is?
Test Automation: Reuse • Framework based on reuse • Implementation + Design • Design Patterns Memento Composite Builder Facade Visitor Template Method Abstract Factory Singleton Adapter Bridge • Same test case for all kinds of software • More than 6 executions per machine
References • [VOAS et al, 1995] Jeffrey M. Voas and Keith W. Miller, Software Testability: The New Verification, IEEE Software, May 1995. • [WHITTAKER, 2000] James A. Whittaker, What is Software Testing? And Why Is It So Hard?, IEEE Software, Practice Tutorial, January 2000. • [GOUVEIA, 2004] Cidinha C. Gouveia, Testes de Integração para Sistemas Baseados em Componentes. Master’s thesis, UFCG, July 2004. • [OLIVEIRA et al, 2005] Jorge Corrêa de Oliveira, Cidinha C. Gouveia, Romulo Quidute, Test automation viability analysis method, November 2005.