Rahul Verma Sr QA Technical Lead, Anti-Malware Core, McAfee Labs.

Slides:



Advertisements
Similar presentations
Requirements for a UI Test Framework Stanislaw Wozniak Bernie Miles.
Advertisements

EIONET Training Beginners Zope Course Miruna Bădescu Finsiel Romania Copenhagen, 27 October 2003.
Configuration management
The map and reduce functions in MapReduce are easy to test in isolation, which is a consequence of their functional style. For known inputs, they produce.
xUnit Test Patterns (Some) xUnit Test Patterns (in practice) by Adam Czepil.
MIT Lincoln Laboratory A Service-Oriented Approach to Application Development Robert Darneille & Gary Schorer WPI MQP Presentations ICS Group 10 October.
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
COM vs. CORBA.
HP Quality Center Overview.
Snejina Lazarova Senior QA Engineer, Team Lead CRMTeam Dimo Mitev Senior QA Engineer, Team Lead SystemIntegrationTeam Telerik QA Academy SOAP-based Web.
Test Automation Framework Ashesh Jain 2007EE50403 Manager Amit Maheshwari.
2004 Cross-Platform Automated Regression Test Framework Ramkumar Ramalingam, Rispna Jain IBM Software Labs, India.
1 Generic logging layer for the distributed computing by Gene Van Buren Valeri Fine Jerome Lauret.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
Web Applications Development Using Coldbox Platform Eddie Johnston.
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
Software Testing and Quality Assurance
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Quality Assurance CS 615. Mission Statement The Quality Assurance team will provide assurance to stakeholders in CS-615/616 projects that their projects.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Design & Documentation Adrian Marshall.
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
Software Self-Testing
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
UNIT-V The MVC architecture and Struts Framework.
TOPIC 1 – SERVER SIDE APPLICATIONS IFS 234 – SERVER SIDE APPLICATION DEVELOPMENT.
Separating VUI from business logic Caller Experience-centered design approach Alex Kurganov, CTO Parus Interactive
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Creating Data Marts from COBOL Files (ISAM to RDBMS)
© 2012 WIPRO LTD | 1 Version 1.0a, 23 rd April 2012 TTCN-3 Users Conference Practical integration of TTCN-3 with Robot test automation framework.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Testing Life Cycle
Introduction Telerik Software Academy Software Quality Assurance.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Advanced PI Calculation Engine Makes Complex PI Calculations Easy! Use of EDICTvb for Multi-Plant Advanced PI Calculations Dane OverfieldEXELE Information.
AUTOBUILD Build and Deployment Automation Solution.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
Winrunner Usage - Best Practices S.A.Christopher.
Standalone Java Application vs. Java Web Application
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
ISetup – A Guide/Benefit for the Functional User! Mohan Iyer January 17 th, 2008.
K.Furukawa, Nov Database and Simulation Codes 1 Simple thoughts Around Information Repository and Around Simulation Codes K. Furukawa, KEK Nov.
Experiment Management System CSE 423 Aaron Kloc Jordan Harstad Robert Sorensen Robert Trevino Nicolas Tjioe Status Report Presentation Industry Mentor:
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
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.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Unit Testing with FlexUnit
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
DDM Central Catalogs and Central Database Pedro Salgado.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Tools for Automated Testing Presented by: Žygimantas Mockus.
Aaron Corso COSC Spring What is LAMP?  A ‘solution stack’, or package of an OS and software consisting of:  Linux  Apache  MySQL  PHP.
Fuzzing Machine By Nikolaj Tolkačiov.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
z/Ware 2.0 Technical Overview
Testing The JCOP Framework
Module 1: Getting Started
General Purpose Test Framework
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Exploring the Power of EPDM Tasks Working with and Developing Tasks in SolidWorks Enterprise PDM (EPDM) By: Marc Young xLM Solutions
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Framework Anil
Presentation transcript:

Rahul Verma Sr QA Technical Lead, Anti-Malware Core, McAfee Labs

Rahul Verma is a Sr QA Technical Lead with McAfee Software India, with special interest in performance testing, security testing, Python and design of test automation frameworks. Rahul has presented at several conferences, organizations and academic institutions including CONQUEST, STeP-IN, ISQT, TEST2008, Yahoo! India, McAfee, Applabs, IIT Chennai and STIG. He runs the website – Testing Perspective ( ) for which he got the Testing Thought Leadership Award. His paper on the subject of Design of Fuzzing Frameworks won the Best Innovative Paper Award at TEST2008. He also recently launched a website Python+Testing ( ) powered by Google AppEnginewww.testingperspective.comhttp://

A Generic, Object Oriented Test Framework AMCore Specific Libraries AMCore- TMS Python/C++DjangoSQLiteMatplotlib Unit Tests API Tests Black –Box Tests Any Product Any Tool(s) Any Language Testing Non- AMCore Products Testing AMCore

Unit Tests -C/C++ -Use: AMCore White-box and Test Double (DLL Mocking) Library OR CPPUnitLite framework - BullsEye Coverage for tests measured against – Unit Tests Code Coverage Component Tests -C/C++ -Use: AMCore White-box and Test Double (DLL Mocking) Library - BullsEye Coverage for tests measured against – Component Tests Code Coverage System Tests - Python/Perl/AutoIt -Use: AMCore Python Utilities Library - BullsEye Coverage for tests measured against – System Tests Code Coverage Non-Functional Tests - Python/Perl/AutoIt -Use: AMCore Python Utilities Library - Include performance and fuzzing tests Python Library All of these use the underlying Python library for Scheduling/Running/Script Generation and Reporting AMCore- TMS

Name ID Purpose Author(s) Creation/Modification Date Version Meta-Data Central / Custom Report Err/Debug Logs Performance Logging? Resource Utilization / Timing Logging Priority Version Bugs Product API Checks – Max Ver, Min Ver etc. Meant For Platforms Meant for Mode For Run-Time Internal-ID Parent Groups/SubGroups Type of Test Priority Extended Meta-Data Product Under Test Build Under Test Platform Under Test Regression Options – Priority / Author/ Creation Date /Version / Bugs etc. Performance Logging Options Debug Mode On/Off Base Reference Directory Path Mode of Execution – Actual mode /Stub mode From Run-Time Configuration Build Path Tools Path Number of Threads Sleep Time Tool options / configuration file / Script file Path to input files Result Asserts – Total / Passed / Failed / Error Execution Properties There are a lot of things a test would like to KNOW for itself at run time…

Set-up the values of the Test properties Prepare Creation of test environment Set-Up Run one or more sub-tests Run Log the results in agreed upon format Report Release handles/uninstall etc. Clean-up There are a lot of things a test would like to DO at run time…

The properties and methods discussed in the previous slides are common across most tests but their values/implementation would vary for different tests. Framework should support: Populating test properties provided as constants e.g. Test Author / Creation Date etc. Populating test properties that are known at run time e.g. Platform under test Execute the Test API in the expected sequence. E.g. Test.prepare() Test.setup() Test.run() Test.report() Test.teardown() via the framework.

Notes on Key Aspects of AMCore-TMS – Built on top of a general purpose object-oriented library – Has library to support DLL Mocking as well as the white box test library – Runs in three modes – Offline/Runner/Controller – Supports offline development with Script generation – Pickling is employed for configurations/results/interface state management – Tests are scheduled for a given platform-label and not a particular machine IP or name. – For each platform-label there could be multiple runner machines configured and a machine could belong to multiple platform-labels – Runner names are logical and do not map to the actual machine name. So, is the platform of a given runner name.

Notes on AMCore-TMS – Groups tests into Test-Group, Test Sub-Group, Type (Black- box/whitebox) and Test Category. – Class names and purpose map to the testing theory – Test Category, Test, TestOracle, TestResults, TestRunner etc. – All information that is required to run a test is contained in a test – via properties – Any run-time errors in a test are confined to the test and does not stop execution. – Reports detailed information for a test category right to the level of timestamp, oracle, actual result, employed tool etc. for an individual check

Notes on AMCore-TMS – Employs Pull Model of execution – a runner machine pulls execution details by sending a single parameter i.e. its name (logical) – State of execution of a runner machine is maintained on the controller machine so that tests are managed across multiple restarts or even fresh snapshots. – Apache web server is used as the controller side multi- threaded daemon. So, no socket programming involved. – Runners use HTTP protocol to pull execution settings, intermittent reporting of status and fetching state information – Status of execution for current or past test cycles can be seen in the web interface – Easy archiving because everything is file based including the DB.

AMcore-TMS – What it employs – Programming: Python 2.5 (controller)/2.6(test nodes) as the base language C/C++ for white-box lib (utilities and test doubles) AutoIt for behavior generation – Apache web server (2.2) + mod_python – SQLite as the database (file based) – Following Python modules are used: Django for Web interface (based on MVC design pattern) Matplotlib for plotting test cycle status and performance statistics API-documentation for the package is done using epydoc WMI is used for performance stats logging Urllib2 for http communication

Q/A I hear and I forget. I see and I remember. I do and I understand. - Confucious