Presented by: Jered Aasheim Tom Cornelius October 27, 2000

Slides:



Advertisements
Similar presentations
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Advertisements

Sensor Network Platforms and Tools
Functions.
Introduction to Operating Systems – Windows process and thread management In this lecture we will cover Threads and processes in Windows Thread priority.
VirtexIIPRO FPGA Device Functional Testing In Space environment. Performed by: Mati Musry, Yahav Bar Yosef Instuctor: Inna Rivkin Semester: Winter/Spring.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
By Ryan Mowry.  Graphical models of system  Entire system or just parts  Complex systems easier to understand  “Capture key requirements and demonstrate.
 Knowledge and use of tools and resources in a system: standard libraries, system calls, debuggers, the shell environment, system programs and scripting.
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
Operating System Overview
Systems Development Lifecycle Testing and Documentation.
By Ian Jackman Davit Stepanyan.  User executed untested code.  The order in which statements were meant to be executed are different than the order.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Debugging Ensemble Productions CAMTA Meeting 11 th November 2010 John Murray.
Chapter 4 Test Design Techniques MNN1063 System Testing and Evaluation.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
1 ENERGY 211 / CME 211 Lecture 14 October 22, 2008.
Linux & UNIX OS Overview Fort Collins, CO Copyright © XTR Systems, LLC Overview of the Linux & UNIX Operating Systems Instructor: Joseph DiVerdi, Ph.D.,
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Principles of Programming & Software Engineering
EMBEDDED SYSTEMS S.HIMABINDU
Virtualization.
JavaScripts.
CHAPTER 4 Methodology.
14 Compilers, Interpreters and Debuggers
Applied Operating System Concepts
Lecture 1: Operating System Services
Programming Languages
MICROPROCESSOR BASED SYSTEM DESIGN
CS501 Advanced Computer Architecture
Introduction to Programming and Visual Basic
CSCI-235 Micro-Computer Applications
Crash Dump Analysis - Santosh Kumar Singh.
Designing For Testability
Lesson 5-2 AP Computer Science Principles
ECE 551: Digital System Design & Synthesis
Verification and Testing
Introduction to Operating System (OS)
Overview Introduction General Register Organization Stack Organization
Maintaining software solutions
Testing the Software with Blinders on
Assembler Design Options
CSCI/CMPE 3334 Systems Programming
Programmable Logic Controllers (PLCs) An Overview.
CSCI1600: Embedded and Real Time Software
Designing and Debugging Batch and Interactive COBOL Programs
Chapter 1: Intro (excerpt)
GEOMATIKA UNIVERSITY COLLEGE CHAPTER 2 OPERATING SYSTEM PRINCIPLES
What is an Operating System?
The Object-Oriented Thought Process Chapter 05
Introduction to Systems Analysis and Design
Interrupt Programming
CS 501: Software Engineering Fall 1999
Unit 1: Introduction to Operating System
What is Concurrent Programming?
Software testing and configuration : Embedded software testing
Programming.
Exception Handling Imran Rashid CTO at ManiWeber Technologies.
EE 472 – Embedded Systems Dr. Shwetak Patel.
System Testing.
ECE 103 Engineering Programming Chapter 56 Runtime Errors
Tonga Institute of Higher Education IT 141: Information Systems
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Systems Operations and Support
Tonga Institute of Higher Education IT 141: Information Systems
 Is a machine that is able to take information (input), do some work on (process), and to make new information (output) COMPUTER.
CSCI1600: Embedded and Real Time Software
VoiceXML An investigation Author: Mya Anderson
Presentation transcript:

Presented by: Jered Aasheim Tom Cornelius October 27, 2000 Debugging Techniques Chapter 10 - An Embedded Software Primer Presented by: Jered Aasheim Tom Cornelius October 27, 2000

Testing On Your Host Machine Most often it is best to keep as much testing as possible on the host machine because: the embedded environment is not stable (a.k.a. the hardware is “buggy”). a richer set of debugging tools and capabilities exist on the host system (i.e. file system, real-time debugger, simulator, terminal, user I/O, etc.). it is easier to create reproducible test procedures and simulate “hazard” situations. the main algorithms and flow control can be tested without dependencies on the underlying hardware.

Testing/Debugging Techniques Some effective techniques for testing embedded systems include: scaffolding - allows you to verify the overall correctness of the program and “abstract” the hardware as working properly. event simulation – allows you to simulate program events (i.e. timers, interrupts, etc.) to insure that responder routines are executing properly. scripting – provides a general way of testing program flow and simulating hazard conditions. real-time debugger/simulator – allows you to execute the program on the host as if it were running on the embedded system.

Robustness Testing Once the correctness of the system has been verified, its robustness can be tested by: erroneous input – purposefully try to crash/disrupt system operation. Find the “what ifs” and try them out. overloading – determine conditions that are unlikely to exist and subject your code to them. Does the system respond gracefully? field-testing – put the system into its actual environment and test it for some fixed length of time (a.k.a. “burn-in” period). extension – place the system into an environment for which it was not originally designed. Does the system still function? If not, can the algorithms used be made more general to handle this situation?