Hardware-less Testing for RAS Software

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Chapter Nine NetWare-Based Networking. Objectives Identify the advantages of using the NetWare network operating system Describe NetWare’s server hardware.
1 DOS with Windows 3.1 and 3.11 Operating Environments n Designed to allow applications to have a graphical interface DOS runs in the background as the.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Installing software on personal computer
Lesson 4 Computer Software
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Device Drivers.
ERP. What is ERP?  ERP stands for: Enterprise Resource Planning systems  This is what it does: attempts to integrate all data and processes of an organization.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Chapter Nine NetWare-Based Networking. Introduction to NetWare In 1983, Novell introduced its NetWare network operating system Versions 3.1 and 3.1—collectively.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
Week #3 Objectives Partition Disks in Windows® 7 Manage Disk Volumes Maintain Disks in Windows 7 Install and Configure Device Drivers.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Mark E. Fuller Senior Principal Instructor Oracle University Oracle Corporation.
Software Testing Process By: M. Muzaffar Hameed.
High Availability in DB2 Nishant Sinha
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
(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.
Understanding Performance Testing Basics by Adnan Khan.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
OPERATING SYSTEMS DO YOU REQUIRE AN OPERATING SYSTEM IN YOUR SYSTEM?
OPERATING SYSTEM CONCEPTS AND PRACTISE
Software Testing.
Kernel Design & Implementation
Chapter Objectives In this chapter, you will learn:
Regression Testing with its types
Project Center Use Cases Revision 2
Project Center Use Cases
High Availability Linux (HA Linux)
Chapter 11: File System Implementation
N-Tier Architecture.
Segments Basic Uses: slides minutes
IS301 – Software Engineering Dept of Computer Information Systems
Chapter 18 Maintaining Information Systems
Designing For Testability
Project Center Use Cases
Verification and Testing
Software Testing.
Computer Organization & Assembly Language Chapter 3
Operating System Structure
Part 3 Design What does design mean in different fields?
How We Think Of Computers
Project Center Use Cases Revision 3
Hierarchical Architecture
Project Center Use Cases Revision 3
KERNEL ARCHITECTURE.
5 SYSTEM SOFTWARE CHAPTER
RAID RAID Mukesh N Tekwani
Sharing the good, the bad, the ugly & What can we do about it?
Software Architecture
Software Test Automation and Tools
5 SYSTEM SOFTWARE CHAPTER
Software testing and configuration : Embedded software testing
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
5 SYSTEM SOFTWARE CHAPTER
Software visualization and analysis tool box
CSE 303 Concepts and Tools for Software Development
Integration Testing CS 4311
Modern PC operating systems
RAID RAID Mukesh N Tekwani April 23, 2019
Component Based & Software Reuse
Test Cases, Test Suites and Test Case management systems
Software Testing.
Presentation transcript:

Hardware-less Testing for RAS Software Aviad Zlotnick and Orna Raz IBM Haifa Research Laboratory

Overview Early testing has many benefits Mocking and simulation are two extremes in enabling early testing Frequently neither is applicable We suggest a mid-way solution that can be adjusted to available resources Give an example from a real RAS system – one of the most challenging domains

Contents Early Testing Related Work Small Scale Simulation RAS HTDR – the Haifa Test Driver for RAS Concluding Remarks

Early Testing Products have faults The later a fault is discovered, the more expensive it is Customer unhappy Customer to Support to Development chain Access to data … Test early, test much, test wisely Early – limited by dependencies Much – limited by time and resources Wisely – not in our scope today

Contents Early Testing Related Work Small Scale Simulation RAS HTDR – the Haifa Test Driver for RAS Concluding Remarks

Dependency Test program Unit under test Collaborator The TEST decides who is called Collaborator

Dependency Test program Unit under test May not exist yet Expensive resource Difficult to activate Slow … The TEST decides who is called Collaborator

Mock: collaborator's behavior tailored to a specific test Test program Unit under test Selection Expected results The TEST decides who is called Mock collaborator Collaborator

Mocking Enables “test early” by eliminating dependencies Test script defines behavior High coupling of test and code Usually, many small tasks Done by the developers Painful when “many” becomes “very many”

Simulation Test program Unit under test Simulated System Collaborator Selection The TEST decides who is called Simulated System Collaborator

Simulation ACM Classification: Hardware, Performance Assumed to be done at hardware boundaries External specification defines behavior No coupling of test and code Very expensive A big, concentrated effort Done by a separate simulation team Very slow Conflicts with “test much”

Contents Early Testing Related Work Small Scale Simulation RAS HTDR – the Haifa Test Driver for RAS Concluding Remarks

Small Scale Simulation - between mocking and simulation Test program Unit under test Selection Collaborator logic Expected results The TEST decides who is called Mock collaborator Collaborator

What’s small about it? This is a simulation of a part of a system Not necessarily on hardware boundaries Some functions are just not there It requires less resources (smaller server, less memory)‏ Tests logic, not performance Sometimes – using a “micro” model (e.g., 2 byte data block) It is FASTER than the real thing In contrast with full scale simulators Note: there seems to be a continuum between mocks and full simulation Choosing where to break it is a challenge

Small Scale Simulation: Schematic Diagram Script: Configure Execute Synchronize Inject Verify Environment, (e.g., ODM)‏ Driving Functions Exercised Code Interface Layer One step ahead of Mock Objects – adds external control Also, ideal mocks are very simple, there is no logic in them Semantic Model

Contents Testing Related Work Small Scale Simulation RAS HTDR – the Haifa Test Driver for RAS Concluding Remarks

RAS - for the fortunate who have not been there… RAS – Reliability, Availability, Serviceability Managing a system when things go wrong Prevention Maintenance and service Repair In mission critical domains No single point of failure (SPOF) Concurrent repair, code load, upgrade

RAS Challenges Many more bad paths than good paths Physical actions, e.g., replace a faulty component Very hard to automate Timing is an issue – resources cannot be locked Time consuming Restart system Format disk drive Recover from everybody else’s bugs At the end of the day, you will be blamed

RAS Challenges Many more bad paths than good paths Physical actions, e.g., replace a faulty component Very hard to automate Timing is an issue – resources cannot be locked Time consuming Restart system Format disk drive Recover from everybody else’s bugs At the end of the day, you will be blamed RAS really stands for “It’S All youR fault”

Contents Testing Related Work Small Scale Simulation RAS HTDR – the Haifa Test Driver for RAS Concluding Remarks

The Enterprise Storage Environment Regression Scripts RMC Methods APIs: Device driver Device driver ODM APIs RAS Code The Enterprise Storage Environment Model Utilities The HTDR Environment Interface utilities Interface utilities Machine State RMC Objects ODM Physical State File System Model

Semantic Model (in a file system)

Automatic Regression – Capture and Replay Test Scripts Expected Results Run Output compare Passed Failed

Test Scripts Unix shell commands Include commands that simulate physical operations Synchronization: waitUntilGT “lsrsrc Disks | grep ‘state = 0’ | wc –l” 4 5 30

Status Alive and kicking Used mainly for unit tests High impact in integrating new hardware Automatic regression suite with dozens of tests Several bugs found, including timing Major issues: Some code under test is not deterministic Deciding why a test failed

Bottom line: We are still searching for the golden path Concluding Remarks Reviewed early testing Discussed mocking and simulation for overcoming dependencies Introduced Small Scale Simulation in between mocking and simulation Introduced RAS Described the Haifa Test Driver for RAS The issues of domain knowledge, deployment, and who-does-what are elaborated in the full paper Bottom line: We are still searching for the golden path