1 / Platform Development Process In-house limited Automatically Measuring Code Coverage in Distributed Environment Li Fei Peng Platform QA Part, NSC 2009-

Slides:



Advertisements
Similar presentations
ITR3 lecture 7: more introduction to UNIX Thomas Krichel
Advertisements

17 Copyright © 2005, Oracle. All rights reserved. Deploying Applications by Using Java Web Start.
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
By SAG Objectives Cross platform QA Automation for web applications Scheduling the automation Automatically build the test scripts Generate the.
Setting up and configuring BCO EE (BPA) Linux Console How I Learned to Stop Worrying and Love BCO EE Dima Seliverstov 3/3/2014.
Jun-15 1 Management Information Systems Class Web Server Usage Instructions.
Setting up your System Contents Required Software Flip and flop servers at OSU Using WinSCP Using Putty Using ssh, scp from Linux terminal.
Building Web Pages With Microsoft Office. Introduction This tutorial is for the beginning web builder. It utilizes software that you already have, Microsoft.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
Creating and Publishing Your own website
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
NDT Tools Tutorial: How-To setup your own NDT server Rich Carlson Summer 04 Joint Tech July 19, 2004.
Sharepoint Portal Server Basics. Introduction Sharepoint server belongs to Microsoft family of servers Integrated suite of server capabilities Hosted.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
DIRAC API DIRAC Project. Overview  DIRAC API  Why APIs are important?  Why advanced users prefer APIs?  How it is done?  What is local mode what.
Remote access and file transfer Getting files on and off Bio-Linux.
Ssh: secure shell. overview Purpose Protocol specifics Configuration Security considerations Other uses.
2440: 141 Web Site Administration Remote Web Server Access Tools Instructor: Enoch E. Damson.
GenSAS: Genome Sequence Annotation Server, a Tool for Online Annotation and Curation Dorrie Main, Taein Lee, Ping Zheng, Sook Jung, Stephen P. Ficklin,
Abstracting the Underlying Multiple Operating System Architecture for Comprehensive Command Line Graphical Interface.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
11 Getting Started with C# Chapter Objectives You will be able to: 1. Say in general terms how C# differs from C. 2. Create, compile, and run a.
Remote OMNeT++ v2.0 Introduction What is Remote OMNeT++? Remote environment for OMNeT++ Remote simulation execution Remote data storage.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
WORK ON CLUSTER HYBRILIT E. Aleksandrov 1, D. Belyakov 1, M. Matveev 1, M. Vala 1,2 1 Joint Institute for nuclear research, LIT, Russia 2 Institute for.
Business Unit or Product Name © 2007 IBM Corporation Introduction of Autotest Qing Lin.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
HTML_Generators WB_HTML_Generators. What method are you going to choose to build your web page? MethodWrite Convert Html IssuesHTML HTML Editors Tool.
Creating and Publishing Your own web site PC Version SEAS 001 Professor Ahmadi.
AE6382 Secure Shell Usually referred to as ssh, the name refers to both a program and a protocol. The program ssh is one of the most useful networking.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Jul 1, CUnit & Coverage Larry Shi. Jul 1, Agenda  Aim  CUnit  Screenshots(Automated)  Demo  TO-DO list.
1998 PI System Users’ Conference PI 3.2 New Features Enhancements Product Support Plans for the next release.
A Brief Documentation.  Provides basic information about connection, server, and client.
Java Portals and Portlets Submitted By: Rashi Chopra CIS 764 Fall 2007 Rashi Chopra.
Open Source Evaluation - FileZilla Michael Nye ITEC 400 Assignment 14-1 Professor D’Andrea Franklin University April 10, 2008.
INFSO-RI Enabling Grids for E-sciencE SCDB C. Loomis / Michel Jouvin (LAL-Orsay) Quattor Tutorial LCG T2 Workshop June 16, 2006.
Good MDM IOS Overview Presented by: Jerry Wen 02/09/2012.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
FTP File Transfer Protocol Graeme Strachan. Agenda  An Overview  A Demonstration  An Activity.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Unix Servers Used in This Class  Two Unix servers set up in CS department will be used for some programming projects  Machine name: eustis.eecs.ucf.edu.
© 2012 LogiGear Corporation. All Rights Reserved FitNesseFitNesse Authors: Nghia Pham 1.
Agenda Using FTP What is FTP? How to Use the FTP Program How to transfer files Using FTP.
17 Copyright © 2004, Oracle. All rights reserved. Deploying an ADF Application.
Integrity Check As You Well Know, It Is A Violation Of Academic Integrity To Fake The Results On Any.
File Transfer Protocol (FTP) CIS 130. File Transfer Protocol (FTP) Copy files from one internet host (server) to your account on another host –Need domain.
IBM Express Runtime Quick Start Workshop © 2007 IBM Corporation Deploying a Solution.
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
Integrity Check As You Well Know, It Is A Violation Of Academic Integrity To Fake The Results On Any.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
INTERNET APPLICATIONS CPIT405 Install a web server and analyze packets.
CERN IT Department CH-1211 Genève 23 Switzerland t Bamboo users meeting IT-CS-CT.
Panasonic UC Pro - Activation Keys installation -
An Introduction to Ant. What is Ant? How do you use it? Why would you want to?
Introduction to Ansible
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com SSH Thomas Petazzoni Free.
Chapter 13 Web Application Infrastructure
CSC 215 : Procedural Programming with C
Build Fundamentals and Continuous Integration
Lab 1 introduction, debrief
slides borrowed and adapted from Alex Mariakis and CSE 390a
J2EE Application Development
Getting Started With Solr
Web Application Development Using PHP
Presentation transcript:

1 / Platform Development Process In-house limited Automatically Measuring Code Coverage in Distributed Environment Li Fei Peng Platform QA Part, NSC

2 / Platform Development Process In-house limited Content Introduction Tools for code coverage, lcov and bullseye Executing command remotely, jsch A tool for automatically measuring code cover age Troubles in this work Improvement

3 / Platform Development Process In-house limited Introduction A complicated application which runs in a distributed environment, CUBRID Code coverage need to be measured automatically Set up environment, update and compile source cod e Run test cases Process code coverage result and upload to QA web site Linux (support SSH by default)

4 / Platform Development Process In-house limited …… Introduction SVN Server Machines Running TC QA Website Control Machine

5 / Platform Development Process In-house limited Tools for code coverage Lcov –Line coverage –Function coverage –Free –Compile: -fprofile-arcs -ftest-coverage Bullseye –Function coverage –Condition/Decision coverage –Proprietary –User command cov01 to enable/disable coverage build

6 / Platform Development Process In-house limited Tools for code coverage - lcov a graphical front-end for gcov collect gcov data for multiple source files create HTML pages containin g the source code annotated with coverage information add overview pages for easy navigation within the file struc ture

7 / Platform Development Process In-house limited Tools for code coverage - bullseye Function coverage gives you a quic k overview and condition/decision c overage gives you high precision Works with everything you can writ e in C++ and C, including system-l evel and kernel mode Short learning curve Include or exclude any portion of y our project code Run-time source code included, for custom environments Simple licensing. Merge results from distributed testi ng Integration with Microsoft Visual St udio

8 / Platform Development Process In-house limited Jsch JSch is a pure Java implementation of SSH2. JSch allows you to connect to an sshd server and us e port forwarding, X11 forwarding, file transfer, etc., a nd you can integrate its functionality into your own Ja va programs. Ant provides sshexec and scp tasks by using Jsch We use two functions: –Remote exec: ls, lcov, cubrid server start –File transfer: scp, sftp

9 / Platform Development Process In-house limited Jsch We use two functions: –Remote exec: lcov cubrid server start cov01 make install … –File transfer: scp sftp

10 / Platform Development Process In-house limited A tool for automatically measuring cod e coverage Configure environment in each machines –Install lcov, bullseye, subversion –Set up environment variables, add the bin directory of lcov and bullseye to PA TH –Checkout the source code, save password Runing process –Update source code –Set up environment, compile and Install in local machine –Compress the source code and upload the source code to other machines –Set up enviroment, uncompress, compile and install in each remote machine –Run test cases –For lcov, collect code coverage data –Copy the code coverage data from other machines to control machine –Generate the visual result of code coverage in control machine –Upload the result to QA website

11 / Platform Development Process In-house limited A tool for automatically measuring cod e coverage SSHClient.java –Encapsulate the exec and file transfer functions in this class –SSHClient.exec(String host, String user, String pa ssword, String command) –SSHClient.scpFrom(String host, String user, String password, string rfile, String lfile)

12 / Platform Development Process In-house limited A tool for automatically measuring cod e coverage CovUtil.java –Main() –Update and install: updateAndInstallCubrid() –updateAndInstallCubridLocal –updateAndInstallCubridRemote –Code coverage collectCCAndUpload() –collect bullseye data or lcov data –analyze code coverage data(genhtml, no analyze for bullseye) –Upload the result to QA website

13 / Platform Development Process In-house limited A tool for automatically measuring cod e coverage Usage Usage: java com.nhncorp.cubridqa.codecoverage.C ovUtil mode: install, sa, cc 0 20 * * 5 java -jar ~/cubrid_cov/cubrid_cov.jar install ~/cubrid_cov/cov.properties 0 20 * * 6 java -jar ~/cubrid_cov/cubrid_cov.jar sa ~/cubrid_cov/cov.properties 0 23 * * 6 java -jar ~/cubrid_cov/cubrid_cov.jar cc ~/cubrid_cov/cov.properties java -jar ~/cubrid_cov/cubrid_cov.jar

14 / Platform Development Process In-house limited A tool for automatically measuring cod e coverage Configuration file –The production installation directory –The directories of related tools –QA website –Remote machines –Other parameters: removeCubrid Bullseys or lcov Exec locally or remotely Etc.

15 / Platform Development Process In-house limited A tool for automatically measuring cod e coverage cubridBuildDir=/home/xdbms/build/RB cubridHome=/home/xdbms/CUBRID lcovHome=/home/xdbms/opt/lcov-1.7 svnPath=/home/xdbms/opt/subversion/bin/svn removeCubrid=true debug=true enable64bit=false uploadHost= uploadUser=qahome uploadPassword=password uploadPath=/home/qahome/tomcat /webapps/qaresult/qaresultfile/cubrid/code coverage sqlDir=/home/xdbms/workspace/qa_repository/scenario/sql execLocal=true execRemote=true svnUpdate=true bullseyeHome=/home/xdbms/opt/bullseye enableBullseye=true #remote.1= ,xdbms,password,/home/xdbms/build/RB-8.2.0,/home/xdbms/CUBRID,/home/xdbms/opt/lcov-1.7,/home/xdbms/opt/subversion/bin/svn #remote.2= ,xdbms,password,/home/xdbms/build/RB-8.2.0,/home/xdbms/CUBRID,/home/xdbms/opt/lcov-1.7,/home/xdbms/opt/subversion/bin/svn #remote.3= ,xdbms,password,/home/xdbms/build/RB-8.2.0,/home/xdbms/CUBRID,/home/xdbms/opt/lcov-1.7,/home/xdbms/opt/subversion/bin/svn #remote.4= ,xdbms,password,/home/xdbms/build/RB-8.2.0,/home/xdbms/CUBRID,/home/xdbms/opt/lcov-1.7,/home/xdbms/opt/subversion/bin/svn #remote.5= ,xdbms,password,/home/xdbms/build/RB-8.2.0,/home/xdbms/CUBRID,/home/xdbms/opt/lcov-1.7,/home/xdbms/opt/subversion/bin/svn #remote.6= ,xdbms,password,/home/xdbms/build/RB-8.2.0,/home/xdbms/CUBRID,/home/xdbms/opt/lcov-1.7,/home/xdbms/opt/subversion/bin/svn remote.7= ,xdbms,password,/home/xdbms/build/RB-8.2.0,/home/xdbms/CUBRID,/home/xdbms/opt/lcov-1.7,/home/xdbms/opt/subversion/bin/svn

16 / Platform Development Process In-house limited Troubles in this work Environement variables: execute. /etc/profile. ~/.bas h_profile before executing each command Bullseye can not enabled with lcov In order to successfully merge two coverage files, th e source files used to build them must have the sam e timestamps There is some problems in utility lcov of v1.7: v1.6 is ok An error will be thrown when using genhtml: modifyin g the source code of genhtml

17 / Platform Development Process In-house limited Improvement Analyzing the data generated by bullseye Output the visual result and upload them to Q A website Code reorganization

18 / Platform Development Process In-house limited