Tutorial - Introduction.background

Jump to Topic:
MuSL allows you to model everything from the simple ARP to complex SIP exchanges, NoSQL databases, traffic in LTE mobile environments like GTP and S1AP, RESTful exchanges, HTML5 apps with Web Sockets and so on. Mu Studio, automatically generates intelligent fuzz tests from this canonical format and allows fuzzing of even proprietary application protocols.

In the chapters that follow, we will explore some key concepts of MuSL with an interactive playground that you can experiment with.

Some things you ought to know about MuSL:

  • MuSL is not a programming language
  • It's a declarative, abstract representation of a multi-protocol transaction between two or more hosts
  • You can easily model complex transactions across layers 2 through 7
  • MuSL was designed on the KISS principle. This means we focused on making the 99% of use cases brain-dead simple at the cost of not handling the other 1%
  • MuSL is not a protocol implementation, but a specific scenario
  • A MuSL scenario is automatically generated from a packet capture
If you see a

Edit Me!

textarea in the subsequent chapters, you can interactively type MuSL!

What is MuSL?

MuSL (Mu Scenario Language) is a canonical Domain Specific Language that we use in Mu Studio to represent complex transactions between multiple hosts using multiple transports and layers. The language itself borrows constructs from numerous languages and was designed to be protocol friendly.

Functional Testing

Functional testing, especially with a parametrized scenario, involves executing each test case one at a time to identify failures, if any and reporting on it. Studio Verify enables you to execute MuSL for functional testing.

Fuzz Testing

Fuzz Testing is a software testing technique that provides invalid, unexpected or random data to the inputs of a program. Studio Fuzz automatically generates 100's of 1000's of negative test cases from MuSL.

Scale Testing

Studio Scale enables you to take the exact same MuSL transaction and run them concurrently so you can simulate 100's of 1000's of users or flows.