1 “Embedded” Dominion NO GUI, NO NETWORK, NO NOTHING NO REAL USER INTERFACE You may want to build a limited UI for testing A simple text interface is in.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Version Control System (Sub)Version Control (SVN).
{ Dominion - Test Plan Version 1 – 22 nd Apr Aravind Palanisami.
1 “Embedded” Dominion NO GUI, NO NETWORK, NO NOTHING NO REAL USER INTERFACE You may want to build a limited UI for testing A simple text interface is in.
API Design CPSC 315 – Programming Studio Fall 2008 Follows Kernighan and Pike, The Practice of Programming and Joshua Bloch’s Library-Centric Software.
Event Driven Programming and GUIs Part 3 CS221 – 4/15/09.
THEMIS Science Software Training1July 2007 The THEMIS Graphical User Interface J. McTiernan 23-Jul-2007
Adapted from Prof. Necula CS 169 Project Planning1 Project Planning.
Microprocessors Introduction to ia64 Architecture Jan 31st, 2002 General Principles.
1 Today More on random testing + symbolic constraint solving (“concolic” testing) Using summaries to explore fewer paths (SMART) While preserving level.
CSCD 330 Network Programming Winter 2012 Lecture 1 - Course Details.
U-Mail System Design Specification Joseph Woo, Chris Hacking, Alex Benson, Elliott Conant, Alex Meng, Michael Ratanapintha April 28,
Academic Computing Services 2010 Microsoft ® Office Visio ® 2007 Training Get to know Visio.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
NEW INDEXING TOOL COMING IN 2014 February I ATTENDED A CLASS ABOUT THE NEW INDEXING TOOL AT ROOTSTECH14 IN FEBRUARY 2014.
WIKI IN EDUCATION Giti Javidi. W HAT IS WIKI ? A Wiki can be thought of as a combination of a Web site and a Word document. At its simplest, it can be.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Offline Performance Monitoring for Linux Abhishek Shukla.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
Software Testing.
Unit 1 – Improving Productivity Tyler Dunn Instructions ~ 100 words per box.
Nachos Phase 1 Code -Hints and Comments
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
REVIEW On Friday we explored Client-Server Applications with Sockets. Servers must create a ServerSocket object on a specific Port #. They then can wait.
Go to your school’s web locker site school name.schoolweblockers.com) Your user name is the first letter of your first name, the first four.
…using Git/Tortoise Git
CSCD 330 Network Programming Fall/Winter/Spring 2014 Lecture 1 - Course Details.
What makes a good interactive resume? Click for detailed information Multimedia Navigation Communication.
Copyright (c) Cem Kaner. 1 Software Testing 1 CSE 3411 SWE 5411 Assignment #1 Replicate and Edit Bugs.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Unit 2 (task 28) In this PowerPoint I will tell you about 7 important IT job roles and if a candidate might want one what he would have to do to get one.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Black box (Finite State Machine) testing Design for testability Coverage measures Random testing Constraint-based testing Debugging and test case minimization.
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
Go to your school’s web locker site Your user name is the first letter of your first name, the first four letters of.
Model View Controller A Pattern that Many People Think They Understand, But Has A Couple Meanings.
By: Anuj Sharma. Topics covered:  GIT Introduction  GIT Benefits over different tools  GIT workflow  GIT server creation  How to use GIT for first.
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
A Few Review Questions Dan Fleck Fall System Test Case Enter invalid username in the input box Able to enter text Enter invalid password in the.
MA471 Fall 2003 Lecture 2. On With The Games Today we are going to watch each group play a couple of rounds of cards. We will go through the game slowly.
Black box (Finite State Machine) testing Design for testability Coverage measures Random testing Constraint-based testing Debugging and test case minimization.
1 Running Experiments for Your Term Projects Dana S. Nau CMSC 722, AI Planning University of Maryland Lecture slides for Automated Planning: Theory and.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
CSCD 330 Network Programming Winter 2015 Lecture 1 - Course Details.
Software Quality Assurance and Testing Fazal Rehman Shamil.
It’s Time to Write a strong Thesis Statement! Packet #3 Working Thesis.
Version Control and SVN ECE 297. Why Do We Need Version Control?
CSE 143 Lecture 13 Recursive Backtracking slides created by Ethan Apter
© 2015 albert-learning.com How to talk to your boss How to talk to your boss!!
1 1.Log in to the computer in front of you –Temp account: 210class / 2.Update your in Cascadia's system –If I need to you I'll use.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
A Few Review Questions Dan Fleck Fall System Test Case Enter invalid username in the input box Able to enter text Enter invalid password in the.
POKER-6S ooA, OOD, OOP.
Development Environment
Testing Verification and the Joy of Breaking Code
CSE 374 Programming Concepts & Tools
CSC 591/791 Reliable Software Systems
Adding Assignments and Learning Units to Your TSS Course
A Few Review Questions.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

1 “Embedded” Dominion NO GUI, NO NETWORK, NO NOTHING NO REAL USER INTERFACE You may want to build a limited UI for testing A simple text interface is in the directory Only need to implement cards in the enum If we’re missing state needed for other cards, don’t worry about it Assume “customer” use is for simulation of various strategies, rather than real game play Caller will be other code, and cards with “interactive” decisions are not included

2 “Embedded” Dominion Support 2-4 players (ignore Intrigue’s support for more players) Use cards played to determine what phase someone is in: While playing actions, in Phase A Buying a card indicates moving to B Calling endTurn() ends turn Return -1 if their choice is illegal AND DO NOT CHANGE THE STATE All supply piles are ‘face up’ – only deck is face down

3 “Embedded” Dominion Player 0 is always starting player Over multiple games, we’ll need to reassign player numbers, if following the rules – responsibility of calling code, not our code Means we have enough info to compute tiebreakers… Right? Deck is sorted before shuffle, so as long as you have the right cards in the discard pile (then move them to deck before shuffling) it doesn’t matter what order things go in discard pile (or played card area)

4 Question Time, Inspect the Code

5 How to Test Test Plans Can be text documents or slides Can include a bit on what you’ve already done (getting the thing to compile, very basic bugs, letting developer finish a few more cards…) Should outline your future plans Broad enough that it doesn’t take 40 minutes to present Detailed enough to allow for criticism, applause, response in general by the audience (fellow software developers/management (that’s me)) Tools: will you be using any? You can use any kind of tool, but don’t BUY anything! Contingency plans: if a tool doesn’t work, if test technique X has problems, what is Plan B?

6 How to Test Test Plans Things to include, unless there is an amazingly good reason not to: SCHEDULE TYPES OF TESTING TO BE DONE, e.g.: Random testing Coverage-based approaches TOOLS METRICS TO EVALUATE TESTING, e.g.: Branch, statement coverage FORMAT OF BUG REPORTS RISKS INITIAL EVAL OF TESTED CODE e.g., LOC, quality, does it compile?

7 BUGS BUGS BUGS BUGS BUGS Due date is in admin slides Send to my , with subject CS362S11 BUGS [onidid] Include, for both bugs: Relevant code snippet What does it do? How do you trigger it? Why do you think it might be tricky to find? Any cool game consequences?

8 Tools gcov Shall I show it to you again? I included flags to use it in the makefile Basic minimal tool use; you probably don’t want to plan testing without including use of some source coverage tool Delta-debugging Minimization for test cases Code is in python, but very easily adapted even if you don’t know python If you want, we can try it out in class today? Also a good basic point for tools; courtesy to developer, and it will please me as well

9 Tools GinkoTest In the repository

10 Tools: Concolic Testing CREST (Successor to CUTE) localization-0 localization-0 I haven’t really used it myself; you’re somewhat on your own Might very well automatically generate all the tests you’d care to have Splat Looks like when Ru-Gang graduated, at some point UCLA reclaimed his web pages, which had the download link Probably best not to try for it, given that

11 Tools: Runtime Analysis Daikon Generally up to date I haven’t used this on C programs in a couple of years; do not know the current method well We can try it out in class, if you wish Valgrind Linux only Good for finding memory allocation / access errors

12 Tools: Static Analysis Uno Static analysis for C code We’ll discuss static analysis a bit later in class, briefly Could give you a hint as to bugs before you test, if you feel like brave exploration

13 Tools: Model Checking Spin Backtracking exploration (“explicit-state model checking”) for C programs Topic of class soon (once we’re done with debugging)! If you want to download/start playing, I suggest grabbing it and then looking in the SPIN directory in the repository CBMC Bounded model checking: exhaustive up to loop bounds On Windows, needs a Visual Studio install

14 VOLUNTEERS NEEDED Who will join my PROJECT TEST PLAN PRESENTATION ARMY? No draft, though; it wouldn’t help me get re-elected Let’s take hands and start making a schedule now. Will Boshuizen Canaan Hadley-Voth

15 SUBMITTING THE TESTER Requirement: You turn in code such that: > make testdom >./testdom 20 minutes later I can take a look at your test results – failures, success, coverage, etc.

16 THE PROJECT REPORT Contents: Detailed discussion of test approach taken I want to see source code – show, don’t just tell Not a dump of all your code, but representative portions to indicate any of these that apply: Structure of a test case Length of test cases Method for choosing inputs Specification method used How to handle segfaults/crashes Development history of the test system Areas particularly well tested, areas that have not been thoroughly tested – remaining risks of failure Complete set of test statistics gathered: coverages, number of tests performed, number of faults detected, etc.

17 THE PROJECT REPORT Contents: Detailed discussion of the test process Communications with partners Give some representative examples, show me what a bug report and response looked like Revisions to tested code (and to tester) Regression strategy, regression failures discovered Quality of code on first testing Quality of code when finished Lines of code at beginning, when finished Final status of all bugs reported so far (FIXED, WONTFIX, BOGUS…) Details of bugs (possibly of all discovered bugs, if it fits), including the severity, nature, fix, pointer to test case (or full test case if it is small enough)

18 THE PROJECT REPORT Contents: Opinions for future testers What would you have done differently, given time How well did any tools you used work? What infrastructure did you develop or did you need How useful was automated testing vs. hand unit tests vs. code inspection, in your case? I expect a written document rather than a powerpoint here. Ok, it it’s a REALLY GOOD powerpoint, fine. I doubt you can do it in less than 5 pages. That is not a challenge to do it in 4.

19 GENERAL WARNINGS & CAUTIONS Do not just trust that svn is working for you CONFIRM YOUR COMMITS Browse source in the beaversource repository CONFIRM YOUR COMMITS svn add Adds this directory to the repository, but does not check it in Doesn’t actually DO anything by itself svn ci –m “my message” This checks in everything below the current directory Don’t imagine you can do the whole project late in the term, since the early plan/reports aren’t many points. You can’t. There is a strong correlation between “did not turn in the early stuff” and “got a bad grade on the project” “If you start late, you’re going to arrive late” (speeding doesn’t actually get you there that much sooner)