SoarUnit Bob Marinier 11/29/2018.

Slides:



Advertisements
Similar presentations
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Advertisements

Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Common project problems From Twin Cities CFUG meeting7/10/02.
1 VisualSoar Update Andrew Nuxoll 09 June A Visual Editor for Soar Projects.
University of Southern California Center for Systems and Software Engineering 1 © USC-CSSE Unified CodeCounter (UCC) with Differencing Functionality Marilyn.
HTML Recall that HTML is static in that it describes how a page is to be displayed, but it doesn’t provide for interaction or animation. A page created.
Thinking inside the box 26 June 2003 Soar Workshop - Slide 1 © 2003 Soar Technology, Inc. Thinking… …inside the box SoarDoc Presented on Thursday, 26 June.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
IMP: InputLink Manipulation Plug-in Devvan Stokes Cory Dunham.
Language Issues Misunderstimated? Sublimable? Hopefuller? "I know how hard it is for you to put food on your family.” "I know the human being and fish.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Advance Model Builder Features. Advance Features Using Lists (also Batching) Iteration Feedback Model Only Tools Inline Variable Substitution Preconditions.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
© FPT Software Code Review with VS © FPT Software Agenda What is Code review? Run Code analysis in VS 2012 Configuring Code Analysis rule set.
Capture-Replay Mocks Scandinavian Developer Conference 4 th April 2011 Geoff Bache.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
1 Debugging. 2 A Lot of Time is Spent Debugging Programs Debugging. Cyclic process of editing, compiling, and fixing errors. n Always a logical explanation.
Ganga A quick tutorial Asterios Katsifodimos Trainer, University of Cyprus Nicosia, Feb 16, 2009.
Working with arrays (we will use an array of double as example)
Ant & Jar Ant – Java-based build tool Jar – pkzip archive, that contains metadata (a manifest file) that the JRE understands.
Review, Pseudocode, Flow Charting, and Storyboarding.
SilkTest 2008 R2 SP1: Silk4J Introduction. ConfidentialCopyright © 2008 Borland Software Corporation. 2 What is Silk4J? Silk4J enables you to create functional.
A Pure Java Implementation of Soar Dave Ray
Javascript Static Code Analyzer
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Test Automation Using Selenium Presented by: Shambo Ghosh Ankit Sachan Samapti Sinhamahapatra Akshay Kotawala.
Perfecto Mobile Automation
End of the beginning Let’s wrap up some details and be sure we are all on the same page Good way to make friends and be popular.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Debuggers. Errors in Computer Code Errors in computer programs are commonly known as bugs. Three types of errors in computer programs –Syntax errors –Runtime.
DSL implementation for UNICOS-CPC Ivan Prieto Barreiro Jeffrey Goderie BE-ICS.
1 A New Soar Editor Miller Tinkerhess University of Michigan.
SWE 434 SOFTWARE TESTING AND VALIDATION LAB2 – INTRODUCTION TO JUNIT 1 SWE 434 Lab.
Static Software Metrics Tool
Continuous Testing in Eclipse
Error Analysis Logic Errors.
Jacob Crossman With help from Bob Marinier Anthony Deschamps
FOP: Multi-Screen Apps
Dive Into® Visual Basic 2010 Express
Appendix A Barb Ericson Georgia Institute of Technology May 2006
CST 1101 Problem Solving Using Computers
Unit Testing.
Adient PLC - Global Supplier Scorecard Report Training
14 Compilers, Interpreters and Debuggers
Eclipse Navigation & Usage.
COMPSCI210 Recitation 12 Oct 2012 Vamsi Thummala
Executable Specification for Soar Theory
Accessible Formal Methods A Study of the Java Modeling Language
IT Atoumation / Conf. Mgmt...
Testing & Testing Tools
Soar 9.6.0’s Instance-Based Model of Semantic Memory
Learning Java with Alice 3.0 Game Design Kathy Bierscheid
New Goal System (NGS-4) TankSoar example Timothy W. Saucer, Ph.D.
CSE341: Programming Languages Section 1
Playing with Semantic Memory
Soar IDE 2.0 Bob Marinier, Kyle Aron, Preetom Chakraborty 12/8/2018.
EEC-492/693/793 iPhone Application Development
Bringing more value out of automation testing
CS 240 – Advanced Programming Concepts
HP Quality Center 10.0 The Test Plan Module
Review of Previous Lesson
Project Iterations.
Building a Geodatabase
Ponder policy toolkit Jovana Balkoski, Rashid Mijumbi
Workshop for Programming And Systems Management Teachers
Testing Slides adopted from John Jannotti, Brown University
Adient PLC - Global Supplier Scorecard Report Training
Presentation transcript:

SoarUnit Bob Marinier 11/29/2018

Motivation Creating and maintaining Soar code is hard Soar syntax/architecture does little to help (e.g., no type checking) But partly this is what makes Soar powerful Some existing tools provide static help Syntax checking/highlighting finds common syntactical issues Datamap can find many structural issues But testing logic is still hard: need runtime testing Some ad hoc solutions have been tried, but nothing particularly flexible or reusable Other languages have standard tools and frameworks for creating unit tests: small scale, repeatable tests that can be run quickly to test various parts of the system 11/29/2018

SoarUnit Created by Dave Ray Inspired by JUnit (a unit testing framework for Java) Provides a way to define tests, including initial and success/failure conditions Part of JSoar (open source, BSD), but works with CSoar, too 11/29/2018

Tests Define rules and commands to execute before the test runs One or more rules need to call the “pass” RHS function Can also call “fail”, but that’s uncommon Related tests in a single .soarunit file can share common rules and commands SoarUnit will process all .soarunit files in a given directory or directory tree A new Soar agent is created for each test, so no state is maintained across tests 11/29/2018

Example setup { source my-agent.soar learn --on sp {fake-input (state <s> ^io.input-link <il>) --> (<il> ^foo bar) } test input-processing-started { sp {check-for-input-processing-operator-selected (state <s> ^operator <o>) (<o> ^name process-input) (pass) test input-processing-completed { sp {check-for-expected-structure (state <s> ^saw-foo-bar true) 11/29/2018

Other Features Can right-click on any test to launch debugger with that test loaded Coverage tab shows union of firing counts across all rules Error tab shown when there is a problem loading/running a test (e.g., syntax errors) In JSoar, supports Tcl and other scripting languages Can run multithreaded (multiple tests simultaneously) 11/29/2018

Demo 11/29/2018

Has really helped me write complex agents Some missing features Nuggets Coal Has really helped me write complex agents Helps identify bugs quickly Supports agent development even when the environment is not ready Helps spec out what the environment connection should look like Some missing features Ability to re-run a single test or subset of tests Ability to see the results of individual tests as they run Can be slow when using Tcl, or when the tests are failing A few minor bugs 11/29/2018

More Info https://code.google.com/p/jsoar/wiki/SoarUnit Soar Technology, Inc. Proprietary 11/29/2018