Unit Testing and Continuous Integration in context of IFDK reference product.

Slides:



Advertisements
Similar presentations
Software Engineering COMP 201
Advertisements

Test Yaodong Bi.
การทดสอบโปรแกรม กระบวนการในการทดสอบ
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Testing and Quality Assurance
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
2004 Cross-Platform Automated Regression Test Framework Ramkumar Ramalingam, Rispna Jain IBM Software Labs, India.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Outline Types of errors Component Testing Testing Strategy
Introduction to Software Testing
Requirement & release management Marko ”NarsuMan” Rintamäki 2012.
Error and Defect Management in context of IFDK reference product.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
Lecture 6 Software Testing and jUnit CS140 Dick Steflik.
Categories of Testing.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Validation Metrics. Metrics are Needed to Answer the Following Questions How much time is required to find bugs, fix them, and verify that they are fixed?
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Change Management in context of IFDK reference product.
Winrunner Usage - Best Practices S.A.Christopher.
Requirement & Release Management in context of IFDK reference product.
SOFTWARE TESTING Scope of Testing  The dynamic Indian IT industry has always lured the brightest minds with challenging career.
Test Driven Development Arrange, Act, Assert… Awesome Jason Offutt Software Engineer Central Christian Church
Software Research, Inc. Setting the Standard for Software Testing Windows Solution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Error and Defect Management in context of IFDK reference product.
Software Regression Testing
Test Design and Management in context of IFDK reference product.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Selenium January Selenium course content  Introduction (Session-1)Session-  Automation  What is automation testing  When to go for automation.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Testing in Android. Methods Unit Testing Integration Testing System Testing Regression Testing Compatibility Testing Black Box (Functional) White Box.
System Test Planning SYSTTPLAN 1 Location of Test Planning Responsibilities for Test Planning Results of Test Planning Structure of a Test Plan Test Definitions.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Dynamic Testing.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Geant4 is a toolkit to simulate the passage of particles through matter, and is widely used in HEP, in medical physics and for space applications. Ongoing.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
1/30/2003 Los Alamos National Laboratory1 A Migration Framework for Legacy Scientific Applications  Current tendency: monolithic architectures large,
Continuous Delivery and Team Foundation Server 2013 Ognjen Bajić Ana Roje Ivančić Ekobit.
Introduction Aaron Day ● Software Architect ● Open Solutions Interests and Hobbies ● Family ● Software Development ● Woodworking ● Gaming ● Shooting.
Software Testing Kobla Setriakor Nyomi Faculty Intern (Programming II)
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
Software Testing Training Online. Software testing is ruling the software business in current scenario. It provides an objective, independent view of.
Version 0.1 Draft – For Review Murali Mohan Murthy
Tool Support for Testing
Test Granularities Unit Testing and Automation
TESTING TOOLS MANUAL APPROACH BY J.ADI SESHU.
A scalable approach for Test Automation in Vector CAST/Manage with
SOFTWARE TESTING OVERVIEW
Understanding SOAP and REST calls The types of web service requests
Chapter 8 – Software Testing
Software Engineering D7032E
Introduction to Software Testing
Lecture 09:Software Testing
Transforming Automation through Artificial Intelligence
Testing and Test-Driven Development CSC 4700 Software Engineering
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Chapter 10 – Software Testing
Software Verification and Validation
Software Verification and Validation
Automated test.
Test Process “V” Diagram
Software Verification and Validation
Node.js Test Automation using Oracle Developer Cloud- Simplified
PSS0 Configuration Management,
Automated test.
Chapter 10: Testing and Quality Assurance
Presentation transcript:

Unit Testing and Continuous Integration in context of IFDK reference product

About this course material -This material if for general training for Test Design and management -Material is more supportive in class room -Material will be updated during courses -FreeNest Portable Project Platform is used to demonstrate things only in practice. This is not limiting usage for material for other training environments (I hope ) About material

TESTING LEVELS

Unit/Module/Compone nt Testing Customer/Business Requirements Customer/Business Requirements Sub System Requirements Sub System Requirements Component Requirements Component Requirements Component / Unit Testing Component / Unit Testing Integration Testing Integration Testing System Testing System Testing Acceptance Testing Acceptance Testing System Requirements System Requirements Architecture& Design& Implementatio n Architecture& Design& Implementatio n Product VALIDATION VERIFICATION Yläotsikko

What should be tested? How ?

How to verify component implementation -Unit Testing -Static Analyze -Dynamic Analyze -Unit Testing -Static Analyze -Dynamic Analyze Yläotsikko

Input ? Output?

/library/content/RationalEdge/sep04/bell/

xUnit Framework Implementation Test Framework

Component /Unit Testing Class Attributes Class Methods Class Attributes Class Methods Attributes TestClass TestMethodCall Unit Test Frame Work Test Method Call Method Result A=1 B=2 C=Class.TestMethodCo untValues(A+B) C<>3 FAIL C=3 PASS Implemented Class MethodCountValues( int x, int y) z=x+y+1 Return z Developer

Test Driven Development and Unit Testing Class Attributes Class Methods Class Attributes Class Methods Attributes TestClass TestMethodCall Unit Test Frame Work Test Method Call Method Result A=1 B=2 C=Class.TestMethodCo untValues(A+B) C<>3 FAIL C=3 PASS Implemented Class MethodCountValues( int x, int y) z=x+y+1 Return z Developer DEFINE TEST CASES FIRST!!! DEFINE TEST CASES FIRST!!! IMPLEMENT CODE AGAINST TESTS IMPLEMENT CODE AGAINST TESTS

Implemented Software Component #1 Implemented Software Component #1 Implemented Software Component #3 Implemented Software Component #3 Implemented Software Component #4 Implemented Software Component #4 Implemented Software Component #2 Implemented Software Component #2 Software Product Integration Software Product Integration Developer 1 Developer 2 Developer 3 Developer 4 Test Sand Box TESTS Integration test engineer #2Integration test engineer #1

Analyzing your implementation? 10 CLS: PRINT TAB(15); "Polysons': PRINT 20 PI= : TP=PI*2 30 INPUT "Number of Sides';SD 40 INPUT "Size (5 to 80)';SZ 50 SP=TP/SD 60 SCREEN 1 70 FOR A=0 TO TP+SP/2 STEP SP 90 X=SZ*SIN(A) Y=SZ OS(A) IF A=0 THEN LINE (X0, Y0)-(X, Y) 130 X0=X:Y0=Y 140 NEXT 150 GOTO graphics_wi.php ?

Code Coverage An analysis method that determines which parts of the software have been executed (covered) by the test suite and which parts have not been executed, e.g. statement coverage, decision coverage or condition coverage. Yläotsikko lexity

Code Coverage - Branch coverage The percentage of branches that have been exercised by a test suite. 100% branch coverage implies both 100% decision coverage and 100% statement coverage. Yläotsikko

Code Coverage - Line coverage The percentage of branches that have been exercised by a test suite. 100% branch coverage implies both 100% decision coverage and 100% statement coverage. Yläotsikko

Static Code Analyze – Heat Map Yläotsikko

Feature Component Feature Component Project Manager Designer/Coder Integration Test Engineer Integration Test Engineer Test Manager System Testing Feature Unit/Integration Testing System Acceptance Testing System Test Engineer System Test Engineer Test Automation Engineer Test Automation Engineer Acceptance Test Engineer Acceptance Test Engineer Validation Verification Product verification/validation and test automation Regression Testing Integration Testing Functional System Testing Acceptance Testing Unit Testing Product Release Component Integration Testing A A A A A Load, Stress, performance Load, Stress, performance

Continuous Integration

Source Code Repository Build Server Build 6. Report Code Commit Change Trigger Execute Build CODER Continuous Integration Job Report 4. Report One Commit Cycle

Analyzing & Unit Testing & CI

Code Checker Builder Make / Ant Gcc Javac Integration Tester Unit Tester Complexity Analyze Heat Map Source Code Interface Tester Statical AnalyzeDynamical Analyze

Source Code Repository Build Server Build Test Report Release Analyze Release Build Report Code Commit Report Change Trigger Build Request Build Slave Advanced Continuous Integration Job

Source Code Repository Build Server Build Test Report Release Analyze Release Build Report Code Commit Report Change Trigger Build Request Build Slave Job

Source Code Repository Build Server Build Test Report Release Analyze Release Build Report Code Commit Report Change Trigger Build Slave Build Test Report Release Analyze Release Build Build Slave Build Test Report Release Analyze Release Build Build Slave Build Request Windows Linux Mac OS Job

Integration Testing

Integration Test with stubs Tested Component/Application Log STUB/MOCK Component Scripted STUB Interface Control Configure Control Configure Simulated Interface Simulated Interface Messages/Events STUB/MOCK Component Control Interface Yläotsikko

in practice #1 IFDK android setup Tested Component Application Tested Component Application Activate/Control STUB/MOCK Component Scripted STUB Interface Control Configure Control Configure Simulated Interface Simulated Interface Messages/Events WEB SERVER simulating Service interface WEB SERVER simulating Service interface Control Interface Trace/Log Yläotsikko

in practice #2 server component testing Tested Component Application Tested Component Application Trace/Log Activate/Control Mock Server/Daemon Scripted STUB Interface Automated Test Interface Automated Test Interface Simulated Interface Simulated Interface Messages/Events WEB SERVER Control Interface Operating System Needed Fake Application Needed Fake Application Junit Scripted Interface Yläotsikko

Integration Testing with simulated Interfaces Fake Spotify Server Fake Spotify Server Fake Facebook Server Fake Facebook Server Simulated Bluetooth Interface Simulated Bluetooth Interface Simulated MIDI Interface Simulated MIDI Interface

What should be tested? How ? DB Appcliation

Yläotsikko