Combinatorial Testing on ID3v2 Tags of MP3 Files

Slides:



Advertisements
Similar presentations
SDL+ The Simplest, Useful Enhanced SDL-Subset The documentation is the design, the design is the system! Copyright © SDL Task Force Consortium.
Advertisements

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
                      Digital Audio 1.
2 Information Processing
Dr. Kalpakis CMSC 661, Principles of Database Systems Representing Data Elements [12]
Lecture # 20 Image and Data Compression. Data Compression.
Name Matrix No CHIA EE LOON(LEADER) OW CHEE YEE LAURA TIONG UNG KAH CAT200 Integrated Software Development Workshop Storyboard.
Microprocessors General Features To be Examined For Each Chip Jan 24 th, 2002.
Today’s Agenda  HW #1 Due  Quick Review  Finish Input Space Partitioning  Combinatorial Testing Software Testing and Maintenance 1.
© 2005 Prentice Hall4-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Binary Expression Numbers & Text CS 105 Binary Representation At the fundamental hardware level, a modern computer can only distinguish between two values,
1 Storing Digital Audio. 2 Storage  There are many different types of storage medium and encoding methods for the storage of digital audio  CD  DVD.
1 Programming & Programming Languages Overview l Machine operations and machine language. l Example of machine language. l Different types of processor.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Microsoft ® Office Word 2007 Training Mail Merge II: Use the Ribbon and perform a complex mail merge [Your company name] presents:
I Power Multimedia Technology Video Data. Video data Video is a sequence of individual pictures or frames, taken one after another. These are played back.
HYPERTEXT MARKUP LANGUAGE (HTML)
CIS679: RTP and RTCP r Review of Last Lecture r Streaming from Web Server r RTP and RTCP.
CSC 386 – Computer Security Scott Heggen. Agenda Introduction to Software Security.
Topics Introduction Hardware and Software How Computers Store Data
File Formats Chapter 9 Bit Literacy. File formats are often ignored by users Applications automatically save files in the application’s format All formats.
Rujchai Ung-arunyawee Department of Computer Engineering Khon Kaen University.
STATISTIC & INFORMATION THEORY (CSNB134) MODULE 8 INTRODUCTION TO INFORMATION THEORY.
Electronic Mail. Client Software and Mail Hosts –Client PC has client software that communicates with user’s mail host –Mail hosts deliver.
Common file formats  Lesson Objective: Understanding common file formats and their differences.  Learning Outcome:  Describe the type of files which.
CHAPTER TEN AUTHORING.
In This Presentation Instructors using Pearson AP & Elective Courses will Receive: Step by step instructions for product initial registration Instruction.
MediaServer:1 Device Template Version 1.01 Date: June 25, 2002 For UPnP™ Version 1.0 Status: Standardized DCP File from: MediaServer1.0.pdf Author: John.
Data Compression. Compression? Compression refers to the ways in which the amount of data needed to store an image or other file can be reduced. This.
76 © 1998, 1999, 2000 David T. Gray, Howard Duncan, Jane Kernan Frames When displaying information in a browser, it is sometimes useful to divide the display.
File Systems in Real-Time Embedded Applications March 5th Eric Julien Understanding How the File Allocation Table (FAT) Operates 1.
From Lucent, Inc. This is the Sablime® home page. It has access to all the functionality of the Sablime® Configuration Management System.
Data Files on Computers Text Files (ASCII) Files that can be created by typing on the keyboard while using a text editor such as notepad or TextEdit.
StarTeam URLs: Creating and Using Persistent Links to StarTeam Artifacts  Jim Wogulis  Principal Architect, Borland Software Corporation.
UHD:CS2401: A. Berrached1 The Intel x86 Hardware Organization.
Liang, Introduction to Programming with C++, Second Edition, (c) 2010 Pearson Education, Inc. All rights reserved Chapter 13 File Input and.
The physical parts of a computer are called hardware.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Marwan Al-Namari 1 Digital Representations. Bits and Bytes Devices can only be in one of two states 0 or 1, yes or no, on or off, … Bit: a unit of data.
Files Chapter 4.
Lecture 25 May 16, Agenda Using JComboBox Class ID3V1_Tag –Using it. –Implementation. Class MP3_File –Dummy Version Quiz.
Guerino Mazzola (Fall 2015 © ): Introduction to Music Technology IIIDigital Audio III.7 (M Nov 04) The MP3 frame format.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
Module 3: Dealing with Files Robotics – ll. Objectives Understand the file access block and its configuration Create and use files inside NXT programs.
Lecture Focus: Data Communications and Networking  Data Link Layer  MAC Frame Format Lecture 25 CSCS 311.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Virtual File System for Streaming Video Developers: – Uri Goldenberg – Henry Abravanel
Chapter 8 File Systems FAT 12/16/32. Defragmentation Defrag a hard drive – Control Panel  System and Security  Administration tools  Defrag hard drive.
1 Part A Multimedia Production Chapter 2 Multimedia Basics Digitization, Coding-decoding and Compression Information and Communication Technology.
Mike Switlick. Overview What is a covert channel? Storage / Timing Requirements Bunratty attack Covert_tcp Questions.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
Software Testing and Quality Assurance Practical Considerations (1) 1.
Pouya Ostovari and Jie Wu Computer & Information Sciences
III Digital Audio III.7 (W Nov 04) The MP3 frame format.
CSC 108H: Introduction to Computer Programming
Section 9 Tagged File Support Design
Network Controllable MP3 Player
Microprocessor Systems Design I
III Digital Audio III.7 (F Oct 20) The MP3 frame format.
Web Programming– UFCFB Lecture 8
OpenStorage API part II
                      Digital Audio 1.
Playing Audio (Part 2).
III Digital Audio III.7 (Mo Oct 22) The MP3 frame format.
Topics Introduction Hardware and Software How Computers Store Data
Project 3: An Introduction to File Systems
Advanced UNIX progamming
Web Programming– UFCFB Lecture 8
Real-World File Structures
Presentation transcript:

Combinatorial Testing on ID3v2 Tags of MP3 Files Zhiqiang Zhang1, Xiaojian Liu2, Jian Zhang1 1 Institute of Software, Chinese Academy of Sciences 2 Institute of Automation, Shandong Academy of Sciences

Introduction MP3 (MPEG-1 or MPEG-2 audio layer III) is an audio file format developed by the Moving Pictures Experts Group (MPEG) One of the most popular audio formats Supported by almost all audio players Usually, an MP3 file comes with an ID3 tag, which stores audio information such as: Title, artist, album, … ID3 has two unrelated versions: ID3v1 & ID3v2

Overview ID3v2 tag format Test goals Modeling Experiments & Results Conclusion

Combinatorial Testing Considerably high fault coverage Model the system under test (SUT) as a parameterized black box Usually use a covering array as the test set Small # of test cases

MP3 frames & ID3v2 tags An MP3 file is built up from a sequence of MP3 frames (MPEG frames) A short segment of audio data The first 11 or 12 bits are always set, can be used for synchronization Sometimes MP3 frames depend on each other, and cannot be freely cut ID3v2 tag: A metadata container for audio file information Located at the beginning of an MP3 file ID3v2 tag MP3 frames

ID3v2 tag format In our work, we consider a subset of the ID3v2 tag format An ID3v2 header Several ID3v2 frames ID3v2 header format: ID3v2/file identifier “ID3” ID3v2 version $03 00 ID3v2 flags %abc00000 ID3v2 size 4 * %0xxxxxxx ID3v2 header ID3v2 frame 1 ID3v2 frame 2 ID3v2 frame 3 … Tag size

ID3v2 Frames An ID3v2 frame consists of a frame header and the frame content Frame header Frame ID $xx xx xx xx (four characters) Size $xx xx xx xx Flags $xx xx Text information frames Text encoding $xx Information <text string> Frame header Frame content Frame size

Text Encodings Encodings commonly used in China: $00: ASCII or GBK $01: Unicode (UTF-16) Little-endian (LE) Big-endian (BE) $02: Unicode BE $03: UTF-8

Test Goals Usually, tag processing and audio playing are performed by separate modules of MP3 players Audio playing is often done by a decoder (out of the scope of our work) ID3v2 tag processing Goal I: text information recognition and display Text encodings of some frames may influence the processing of other frames Goal II: robustness against bad header & frame sizes Offset related May cause buffer overflow or vulnerable read operations

Modeling (Test Goal I) Six types of text information frames The model: TIT2 (title), TPE1 (artist), TALB(album), TRCK (track number), TCON (genre) and TYER(year) The model: TIT2 TPE1 TALB TRCK TCON TYER NONE ASCII GBK ULE UBE UBE2 UTF-8

Modeling (Test Goal II) The sizes indicated by the ID3v2 header & frame size bytes might be faulty May cause critical failures For building each test case Set the header and frame size bytes Set the actual header and frame sizes Build an ID3v2 frame Build an ID3v2 tag by filling the content with frames Attach MP3 frames

Modeling (Test Goal II) Building an ID3v2 frame Building an ID3v2 tag Frame size bytes Frame header $00 AAAAAA… Tag size bytes ID3v2 header ID3v2 frame … Actual frame size Actual tag size

Modeling (Test Goal II) Building a complete MP3 file Attach a sequence of MP3 frames after the ID3v2 tag In some cases, the actual tag size is not an integral multiple of the total frame size To fill the remaining space: 4 filling modes

Filling Modes None Safe Cut Overflow Tag size ID3v2 frame MP3 frames $00 00 00… Tag size ID3v2 frame MP3 frames ID3v2 frame MP3 frames Tag size None Safe Cut Overflow

Modeling (Test Goal II) TS TSD FS FSD FM ATCHMP3 0KB 0B NONE YES 4KB 1KB 256B 64B SAFE NO 64KB -1KB -64B CUT OVFL TS: tag size indicated by the ID3v2 header size bytes TSD: difference of the actual tag size compared with TS FS: frame size indicated by the frame header size bytes FSD: difference of the actual frame size compared with FS FM: filling mode ATCHMP3: whether MP3 frames are attached or not

Modeling (Test Goal II) Normal constraints IF TS=0KB THEN TSD<>-1KB IF FS=0KB THEN FSD<>-64B When TS=0KB and TSD=0KB, the actual tag size is 0KB. So no frames will be filled. Thus FS, FSD and FM are invalid parameters Introduce a special parameter value ‘#’ for invalid parameters IF TS=0KB AND TSD=0KB THEN FS=# AND FSD=# AND FM=# IF TS<>0KB OR TSD<>0KB THEN FS<># AND FSD<># AND FM<>#

Experiments Test subjects: Test generation: I: an on-vehicle leisure and entertainment system II: a portable MP3 player Test generation: Use Microsoft’s PICT Test Goal I: 57 test cases (strength=2) Test Goal II: 59 test cases (strength=3)

Experimental Results (Test Goal I, Subject I) Condition Results ALL ASCII text is correctly displayed. UBE2 text is incorrectly displayed.* TIT2=NONE Title is displayed as file name. TPE1=NONE Artist is displayed as folder name. TPE1{ASCII,UBE2} AND TIT2{GBK,ULE,UBE,UTF-8} Title is not displayed.* TPE1{ASCII,UBE2} AND TIT2{GBK,ULE,UBE,UTF-8} Title is displayed as file name.* Artist is displayed as folder name.* 2 passed, 55 failed Actually, only ASCII text can be displayed

Experimental Results (Test Goal I, Subject II) Condition Results TIT2{UBE2,UTF-8} File name is displayed as the title.* TIT2<>NONE AND TPE1{UBE2,UTF-8} OTHERWISE All information is correctly displayed. 33 passed, 24 failed Problem when processing two encodings Failures caused by 1-2 parameters

Experimental Results (Test Goal II, Subject I) Condition Results TS=0KB AND TSD=1KB AND FS<>0KB AND ATCHMP3=NO The subject encounters a failure, and all audio files copied into the subject cannot be played.* ATCHMP3=YES The file can be successfully played. The file is skipped. 52 passed, 7 failed Failures caused by 4 parameters

Experimental Results (Test Goal II, Subject II) Condition Results ATCHMP3=YES The file can be successfully played. ATCHMP3=NO The player shows that the file is damaged and proceeds to the next file. All test cases passed We occasionally found a bug When ATCHMP3=NO, the subject Displays that the file is damaged for a few seconds Proceeds to the next file. Just between this two moments, it is not possible to play back to the previous file Not Discovered by CT!!

Conclusion Benefit from CT: Small test suite Test Goal I: 57 out of 7323=2744 exhaustive test cases Test Goal II: 59 out of 3442=648 exhaustive test cases (including test cases not satisfying the constraints) Interaction faults discovered Failures are caused by 1-4 parameters

Additional Results Experiments are conducted on two PC audio players PC audio player I perfectly passes all the tests PC audio player II: Test Goal I: similar failures as subject I Test Goal II: When all test cases are added to the player playlist, the player’s UI begin to respond slowly The player got stuck when playing 4 test cases

Thank you!