Fuego Test System Status Summary June 2018

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Test Case Management and Results Tracking System October 2008 D E L I V E R I N G Q U A L I T Y (Short Version)
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Doxygen: Source Code Documentation Generator John Tully.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Linux Operations and Administration
MCTS Guide to Microsoft Windows Server 2008 Applications Infrastructure Configuration (Exam # ) Chapter Two Deploying Windows Servers.
Christopher Jeffers August 2012
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Software Project Documentation. Types of Project Documents  Project Charter  Requirements  Mockups and Prototypes  Test Cases  Architecture / Design.
Cluster Consistency Monitor. Why use a cluster consistency monitoring tool? A Cluster is by definition a setup of configurations to maintain the operation.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
Cloud Installation & Configuration Management. Outline  Definitions  Tools, “Comparison”  References.
1 RIC 2009 Symbolic Nuclear Analysis Package - SNAP version 1.0: Features and Applications Chester Gingrich RES/DSA/CDB 3/12/09.
Arklio Studija 2007 File: / / Page 1 Automated web application testing using Selenium
 1- Definition  2- Helpdesk  3- Asset management  4- Analytics  5- Tools.
Section 10.1 Define scripting
Architecture Review 10/11/2004
Doron Orbach UCMDB Product Manager
DHTML.
Appium Studio Appium testing made easy at any scale.
Bringing Dynamism to OPNFV
Business rules.
Core LIMS Training: Project Management
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
Open-O Integration Project Introduction
Stress Free Deployments with Octopus Deploy
Simulation Production System
Essentials of UrbanCode Deploy v6.1 QQ147
Continuous Integration (CI)
How to link a test to a launcher (in this case a shell launcher)
D.Y.O. Web The new and easy way to create and maintain your own professional dynamic website.
z/Ware 2.0 Technical Overview
Self Healing and Dynamic Construction Framework:
IBM Rational Rhapsody Advanced Systems Training v7.5
Outline SOAP and Web Services in relation to Distributed Objects
LCGAA nightlies infrastructure
Accelerate define.xml using defineReady - Saravanan June 17, 2015.
A technical look at new capabilities and features
Outline SOAP and Web Services in relation to Distributed Objects
Core WG Meeting November 16th, 2017.
API Documentation Guidelines
Prepared by Kimberly Sayre and Jinbo Bi
Testing REST IPA using POSTMAN
Design and Programming
Chapter 2: System Structures
Modern web applications
Lecture 1: Multi-tier Architecture Overview
Fuego Test System Projects, Industry Initiatives, and Vision June 2018
Benchmark Series Microsoft Word 2016 Level 2
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
In this session… Introduce what we’re talking about
Electronics II Physics 3620 / 6620
Microsoft PowerPoint 2007 – Unit 2
Modern web applications
Overview of Oracle Site Hub
Exploring the Power of EPDM Tasks Working with and Developing Tasks in SolidWorks Enterprise PDM (EPDM) By: Marc Young xLM Solutions
Tutorial 7 – Integrating Access With the Web and With Other Programs
Fuego Test System Roadmap and Priorities Discussion June 2018
ITAS Risk Reporting Integration to an ERP
PyWBEM Python WBEM Client: Overview #2
Presentation transcript:

Fuego Test System Status Summary June 2018 Tim Bird Fuego Maintainer Sony Electronics

Introduction Feature List Feature Status Outline Introduction Feature List Feature Status

Micro-Introduction Fuego = (Fuego Linux distribution + host scripts + pre-packaged tests + Jenkins) all inside a container

Architecture Diagram Host machine: Container build system Docker container: Fuego Linux distribution Jenkins Test programs Scripts Target board Volume Mount Web control interface Toolchains Config Builds Logs

Core features Distribution of Linux for testing Build system Architecture-neutral & inherently cross-platform Includes a collection of tests Scripts for test execution Results parsing, analysis, and visualization Report generation Multiple transports Jenkins front end Also has a command line tool

Introduction Feature List Feature Status Outline Introduction Feature List Feature Status

Slide key Italic header = reference material

Feature Areas Installation Test Execution Results Analysis User Interface Visualization Reports Tests Fuego Distribution Infrastructure Usability Documentation Marketing

Installation Docker build Adding a board Adding a toolchain Pre-built Docker image (partially completed) Problems with container customization Adding a board Adding a toolchain Populating Jenkins artifacts Provisioning setup (none)

Pre-built docker image Ability to use Fuego without building the docker image Create a pre-built Fuego docker image, and host it at docker.io e.g. “docker run fuego” Requires automatic container customization Network proxy User and group Volume mount customization Includes refactoring the Fuego directory layout Turned out to be too intrusive for 1.3 release

Execution Launch – jenkins job or command line main.sh, ftc run-test Test customization (plans, specs, criteria) Overlay system (ovgen.py) Test dependency system (need_check.sh) Transports (serial, ssh, local, ttc, lava) Build system Source retrieval Deployment Remote execution Log retrieval Error handling/Abort Timeouts

Results Analysis Log parsing log_compare Pass-criteria Jenkins history Unified Output Format log_compare Pass-criteria per-board pass-criteria Jenkins history

User Interface Jenkins UI Job launching ftc to manage Jenkins objects ftc add-node, add-job, add-view History, status, result indicators Not very rich (no icon for abort or skip) log links, results description Failure reason (missing)

Visualization Charts Log splitting by testcase Tables Plots (jquery flot module) chart_config A few items missing from JTA (hide/unhide data sets) Log splitting by testcase

Log splitting by testcase Ability to split the test log into pieces, according to testcase boundaries Only works for some logs Requires slight modification to test’s parser.py Addition to UI Can click on testcase in Jenkins UI, and see section of log related to that testcase Very handy for examining results details

Reports ftc list-runs, gen-report Dynamic documents field control output formats --where (filtering) (time comparisons are a bit confusing) (could use a batch id) Dynamic documents chart insertion (missing) coverage (very little)

Report generation improvements More output formats html, rst, pdf, excel, csv Control of fields displayed header_fields report fields More filtering (--where options) especially tguid:result Try this: ftc gen-report –where “tguid:result!=PASS”

Tests LTP – see next slide kselftest Realtime, Filesystem, Network POSIX System benchmarks Security/vulnerability autopkg ptest Fuego self-tests / release test

LTP lots of specs skiplists supports separate build and manual deploy Autodetect skiplist items supports separate build and manual deploy one_test execute a single test program Problems: realtime parsing is not good should separate POSIX from other tests

New tests Realtime benchmarks: Other tests (updated or new): backfire, deadlinetest, migratetest, pmqtest, ptsematest, sigwaittest, svsematest Other tests (updated or new): dbench4, dd, iperf3, vuls, autopkgtest, year2038 LTP_one_test fuego_board_status Fuego self-tests: fuego_lint, fuego_tguid_check, fuego_ftc_check fuego_release_test

Fuego release test Complicated test to do a full release test Builds docker container Runs docker container for “release under test”, alongside “test-runner” container Checks Jenkins web interface Using HTML DOM element checks Using comparisons of web page rendered images Adds capabilities to Fuego distribution for testing of other DUT web or image features

Fuego Distribution Additions clitest Tests expected output of commands Selenium Web page HTML testing Chromium, imagemagick, python-pillow Web page image testing pexpect, flake8 (python lint) Fuego self-test python-reportlab Report formats iperf3 Network testing

Web page and image comparison tools Added Selenium to Fuego distribution For web page testing Added Chromium to Fuego distribution For web page rendering automation Added tools for: Comparison of returned HTML Web page image capture Image comparison With support for masked regions Note: This is not generalized yet Need to read Functional.fuego_release_test scripts and use as example

Infrastructure bitbucket git repositories Hardware board control Individual test phases ftc outside the docker container

Hardware board control General feature is ability to control board under automation Added in 1.3: Hook for hardware board reboot Shows method for adding board control hooks Goal is to support provisioning and other hardware functions, as well ex. off-DUT test hardware control and multiplexing Would rather re-use some other board control layer e.g. LAVA, labgrid, Dryad (from SLAV), ttc, etc.

Individual test phases Ability to run test phases individually Main purpose is to allow separation of: Test program build (on host) Test execution on target Can use ftc option: ftc run-test –p ‘pcb’ Executes pre_test, pre_check and build phases, then stops Can use environment variable FUEGO_TEST_PHASES=“pre_test pre_check build”

ftc outside the docker container docker adds unneeded overhead to some commands Some commands can now be run outside the docker container New fuego.conf file to specify directory locations list-runs, gen-report can be done directly on host Partial step towards use of low-level Fuego functionality with alternate UIs and frameworks

Usability End user Developer support License Web site Ease of installation/use Consistency Obviousness Robustness Error Handling Developer support Coding style Languages (bash, python, json) Debugging Documentation

Contributor guidelines Recently added to wiki Coding style guide Mostly indentation (4 spaces, no tabs) See http://fuegotest.org/wiki/Coding_style License guide Patch submission tips See http://fuegotest.org/wiki/License_And_Contribution_Policy

Documentation Installation (quickstart guide) End-user docs (wiki, pdf) User’s guide (adding...) Walkthroughs (none) Jenkins help (none) Setting up triggers (needed) Setting up notifications (needed) Developer docs (wiki) Architecture API reference Tutorials ?? (Some presentations exist, but they’re old)

Documentation conversion Conversion of docs to reStructuredText Replace PDF and wiki docs with rst Move all docs under source repository Use sphynx to create multiple formats Publish on readthedocs.io Made some progress Have sphynx templates in place Got stuck on markup conversion Considered automation, but hit some hurdles See http://fuegotest.org/wiki/rst_docs

Marketing Outreach Visibility User growth (slower than expected)

Test server (prototype) Test store (put-test, get-test) Distributed test requests (put-request) Aggregation Results sharing (put-run) Data mining (nothing)

Introduction Feature List Feature Status Outline Introduction Feature List Feature Status

Feature Status Feature Area Status Potential Improvements Installation Pretty Good Pre-built image, provisioning help Test Execution Good Handle timeouts better Results Analysis Very Good Report of failure reason User Interface ?? Visualization Add more chart_config options Reports OK Integration into dynamic docs Tests More tests Fuego Distribution Ability to load packages as needed Infrastructure Move to gitlab Usability Documentation Need tutorials and walkthroughs Marketing Test server Not Good Finish implementation, provide server code

Final Thoughts Don’t want to focus on negatives Fuego is a very rich, capable, flexible system An amazing amount of features It’s often easy to implement a new feature, because of rich existing infrastructure Can usually support what you want to do Very friendly community

Fuego