Discussion on Testing Simantics Technical Board Meeting 30.1.2012.

Slides:



Advertisements
Similar presentations
High level QA strategy for SQL Server enforcer
Advertisements

Why Use Test Driven Development (TDD)?.  Why the need to change to TDD.  Talk about what TDD is.  Talk about the expectations of TDD.
How to Optimize Your Existing Regression Testing Arthur Hicken May 2012.
Introduction to Eclipse, Unit Testing and JUnit David Rabinowitz.
Delta Debugging - Demo Presented by: Xia Cheng. Motivation Automation is difficult Automation is difficult fail analysis needs complete understanding.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Red-Green-Refactor! EclipseCon 2008 Kevin P. Taylor, Nicolaus Malnick Test-Driven Development (TDD) for Eclipse RCP.
Continuous Integration April 2014 tap|QA Presentation.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
Anthony Borton. MV P “It was an epic failure... I tried to get on and couldn't” I'm really annoyed that I wasted so much time trying to get onto.
Test-Driven Development With Visual Studio 2005 Erno de Weerd Info Support.
From 3 weeks to 30 minutes – a journey through the ups and downs of test automation.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
1 Testing – Part 2 Agile Testing In which we talk about nothing, because having unit tests solves all problems forever. Really. It’s not a subtitle balance.
Introduction to Software Testing (Paul deGrandis) [Reading assignment: Chapter 15, pp and notes by Paul deGrandis]
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
When is a Project Ready for Software Automation? Michael Christesen Mat Krueper Ty Henson 1.
Software Testing. Definition To test a program is to try to make it fail.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Bogor-Java Environment for Eclipse MSE Presentation II Yong Peng.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
EMI INFSO-RI Metrics review Claudio (SA1), Lars, Duarte, Eamonn and Maria (SA2)
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Development Methodology N. Draper. Introduction Development Process Test driven development Continuous Integration –Automated build and test Trac Ticket.
INFSO-RI JRA2: Testing senarious ETICS AH meeting Budapest, Iune 2009 Eva Takacs, Jozsef Kuti, András Milassin 4D Soft.
Object Oriented Software Development 8. Exceptions, testing and debugging.
By for Testing Tools: Test Automation and supporting tools Jariro Pava, Robert Vanderwall 1 WISTPC-14.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Problem of the Day  Why are manhole covers round?
Software Research, Inc. Setting the Standard for Software Testing Windows Solution.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
Testing, Testing & Testing - By M.D.ACHARYA QA doesn't make software but makes it better.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Discussion on Testing Simantics Technical Board Meeting
Copyright 2015, Robert W. Hasker. Continuous Inspection  Code reviews  Powerful tool  Difficult to ensure meaningful reviews take place  Static analysis.
Software Architecture in Practice Mandatory project in performance engineering.
TSSG Case Study: Using Free & Open Source Tools to Manage Software Quality EECS811: Software/IT Project Management Agile Integration Management Case Study.
Eclipse Outlines: What is Eclipse? How to Install Eclipse? Eclipse Platform Eclipse Plug in Eclipse UML JUnit in Eclipse. References Latifa AlAbdulkarim.
Software Design– Unit Testing SIMPLE PRIMER ON Junit Junit is a free simple library that is added to Eclipse to all automated unit tests. The first step,
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
1. ENTERPRISE AGILE TRANSFORMATION AT THE US POSTAL SERVICE MAY 24, Agile Business Solutions.
1 Punishment Through Continuous Delivery If it hurts, do it more often…
By SPEC INDIA. TestComplete – An Introduction An automated testing tool by SmartBear – TestComplete is a comprehensive product with umpteen features and.
Project Dow: Extending EclipseTrader Emmanuel Sotelo Fall 2008.
Copyright © 2010 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. ODS Tools – Fannie Mae.
Test Plans Test Driven Development – Unit test plan first Code coverage Automated Regression built as you go Debug is easier Serves as system doc – Still.
Automated Testing with PHPUnit. How do you know your code works?
Findbugs Tin Bui-Huy September, Content What is bug? What is bug? What is Findbugs? What is Findbugs? How to use Findbugs? How to use Findbugs?
Test all the things! Improving code quality at the OU with Continuous Integration MoodleMoot Ireland UK 2016 Mark Johnson Tony Lin.
ALM Deployment Pipeline Implementation. Create a Repeatable, Reliable Process for Releasing Software. Automate Almost Everything Keep Everything in Version.
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Continuous Integration (CI)
RemoteLaunch - Overview
Champions League Test Automation
Helping you make your code better
Module 01 ETICS Overview ETICS Online Tutorials
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
DSDP Mobile Tools for Java 1
Helping you make your code better
Testing.
Software Testing Software Testing is a process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements.
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Presentation transcript:

Discussion on Testing Simantics Technical Board Meeting

Organizing Test Suites Suggestion: new plug-in org.simantics.tests – Contains test suites for different testing activities: Regression TDD Performance Stress – Composes test suites for the SDK from around the codebase, doesn’t contain test cases – Most suites are automatically tested via Jenkins

Testing Activities Regression – First step is to move all currently existing and passing tests into regression tests TDD – Development-time, moved into regression when development is complete, manually executed Performance/Scalability – Focus on performance-critical parts of the SDK right now: databoard, DB, graphics, history Stress – For uncovering hidden unstabilities, mainly relevant for DB

Tools to Incorporate Squish (finally) EMMA (code coverage for unit tests) Possibly static analysis tools

Static Analysis Several (free) tools available for Java [1] that have Eclipse & Jenkins plug-ins :[1] – PMD, FindBugs, Checkstyle AFAIK, none of us has been actively using any of these with Simantics Relatively cheap to automate Need to test the tools first to say anything definitive of usefulness

What to Test? org.simantics.tests: everything that is part of the platform – not products built on top of it (sysdyn, modelica, etc.) A separate test suite for every product UI testing – Difficult without a Workbench product – Use movie tutorial ? – Perhaps create the planned diagram editor for it ?

Reporting Jenkins provides unit/squish test reports Performance testing needs different logging – Instrument all tested code with necessary performance logging (See Eclipse tracing facility)Eclipse tracing facility – See about using Apache JMeter (Jenkins plug-in)Apache JMeterJenkins plug-in For stress tests it is important to have proper logging enabled and relevant data kept for failed tests (databases, etc.)

Epics (prioritized) Create and automate org.simantics.tests Sysdyn product test suite with UI tests List most important testing topics Coverage/Static analysis tools into use Performance testing plan – How to measure? Relativity of results? Reporting/tools? Prevent publishing of builds with broken tests & ensure is delivered about breakage – Try to force developers to react to acute problems

Working with tests and failure Regression tests divided into three suites: – 1st: only intended to contain tests that work. It is important to know when something breaks, and it is easiest to discover this when builds turn from green to red/yellow or vice versa. – 2nd: broken tests that have been moved from 1st if fixing the bug that caused the regression is not possible immediately. – 3rd: broken tests that have no incoming fix for a long time. 2nd->3rd moves done only at the turns of sprints.

References [1]