diff --git a/test_broadcast/NDNTrafficClient.conf b/test_broadcast/NDNTrafficClient.conf
new file mode 100644
index 0000000..79b6a94
--- /dev/null
+++ b/test_broadcast/NDNTrafficClient.conf
@@ -0,0 +1,6 @@
+##########
+TrafficPercentage=100
+Name=ndn:/test-bcast/A
+ExpectedContent=AAAAAAAA
+NameAppendBytes=8
+##########
diff --git a/test_broadcast/NDNTrafficServer.conf b/test_broadcast/NDNTrafficServer.conf
new file mode 100644
index 0000000..499a882
--- /dev/null
+++ b/test_broadcast/NDNTrafficServer.conf
@@ -0,0 +1,4 @@
+##########
+Name=ndn:/test-bcast
+Content=AAAAAAAA
+##########
diff --git a/test_broadcast/README.md b/test_broadcast/README.md
new file mode 100644
index 0000000..2b2068a
--- /dev/null
+++ b/test_broadcast/README.md
@@ -0,0 +1,17 @@
+# BroadcastStrategy test scenario
+
+Test Broadcast Strategy
+
+Steps:
+
+1.  Start NFD on A,B,C,D.
+2.  On host B,C, start ndn-traffic-server to serve `ndn:/test-bcast`.
+3.  On host A, invoke nfdc to set BroadcastStrategy at `ndn:/test-bcast`.
+4.  On host A, invoke nfdc to create UDP tunnel to B, and add nexthop for `ndn:/test-bcast` to this face with cost 10.
+5.  On host A, invoke nfdc to create UDP tunnel to C, and add nexthop for `ndn:/test-bcast` to this face with cost 20.
+6.  On host D, invoke nfdc to create UDP tunnel to A, and add nexthop for `ndn:/test-bcast` to this face.
+7.  On host D, execute ndn-traffic-client to send 100 Interest to `ndn:/test-bcast/A/<random>`.
+8.  On host B,C, stop ndn-traffic-server.
+    Fail if total served Interests on either host is less than 80.
+9.  On host D, invoke nfd-status to observe counters on the face created in step 6.
+    Fail if total received Datas on this face is greater than 120 (because A should not forward the second copy of Data to D after PIT entry is satisfied).
diff --git a/test_broadcast/broadcast-test.sh b/test_broadcast/broadcast-test.sh
new file mode 100755
index 0000000..9cbc763
--- /dev/null
+++ b/test_broadcast/broadcast-test.sh
@@ -0,0 +1,91 @@
+#!/usr/bin/env bash
+source ../multi-host.conf
+mkdir -p logs
+workdir=$(pwd)
+
+clean_up() {
+    echo "cleaning up..."
+    r=$(sudo killall nfd 2>&1)
+    r=$(ssh $CTRL_B "sudo killall ndn-traffic-server 2>&1; sudo killall nfd 2>&1" 2>&1)
+    r=$(ssh $CTRL_C "sudo killall ndn-traffic-server 2>&1; sudo killall nfd 2>&1" 2>&1)
+    r=$(ssh $CTRL_D "sudo killall nfd 2>&1" 2>&1)
+}
+
+# start nfd on all hosts
+echo "starting nfd on all hosts..."
+ssh $CTRL_B "mkdir -p $workdir/logs;\
+    sudo nfd &> $workdir/logs/nfd.log &"
+ssh $CTRL_C "mkdir -p $workdir/logs;\
+    sudo nfd &> $workdir/logs/nfd.log &"
+ssh $CTRL_D "mkdir -p $workdir/logs;\
+    sudo nfd &> $workdir/logs/nfd.log &"
+sudo nfd &> $workdir/logs/nfd.log &
+sleep 5
+
+# start ndn-traffic-server on B and C
+echo "starting ndn-traffic-server on B and C"
+ssh $CTRL_B "ndn-traffic-server $workdir/NDNTrafficServer.conf &> $workdir/logs/serverB.log &"
+ssh $CTRL_C "ndn-traffic-server $workdir/NDNTrafficServer.conf &> $workdir/logs/serverC.log &"
+
+# set up forwarding on A
+echo "setting up forwarding on A..."
+nfdc set-strategy ndn:/test-bcast ndn:/localhost/nfd/strategy/broadcast
+faceid=$(nfdc create udp4://$IP4_B1 | grep -Po 'FaceId: .*?,' | sed 's/FaceId: //' | sed 's/,//')
+nfdc add-nexthop -c 10 ndn:/test-bcast $faceid
+faceid=$(nfdc create udp4://$IP4_C1 | grep -Po 'FaceId: .*?,' | sed 's/FaceId: //' | sed 's/,//')
+nfdc add-nexthop -c 20 ndn:/test-bcast $faceid
+
+# set up forwarding on D
+echo "setting up forwarding on D..."
+faceid=$(ssh $CTRL_D "nfdc create udp4://$IP4_A2" | grep -Po 'FaceId: .*?,' | sed 's/FaceId: //' | sed 's/,//')
+ssh $CTRL_D "nfdc add-nexthop ndn:/test-bcast $faceid"
+
+# run ndn-traffic client on D
+echo "running ndn-traffic client on D..."
+ssh $CTRL_D "ndn-traffic -c 100 -i 200 $workdir/NDNTrafficClient.conf > $workdir/logs/client.log 2>&1"
+
+# kill ndn-traffic-server on B and C
+echo "killing ndn-traffic-server on B and C..."
+ssh $CTRL_B "sudo killall ndn-traffic-server; sudo killall nfd"
+ssh $CTRL_C "sudo killall ndn-traffic-server; sudo killall nfd"
+
+# collect data from B, C and D
+echo "collecting data from B, C and D..."
+scp $CTRL_B:$workdir/logs/serverB.log $workdir/logs/serverB.log
+scp $CTRL_C:$workdir/logs/serverC.log $workdir/logs/serverC.log
+ssh $CTRL_D "nfd-status -f > $workdir/logs/nfd-status-D.log"
+scp $CTRL_D:$workdir/logs/nfd-status-D.log $workdir/logs/nfd-status-D.log
+scp $CTRL_D:$workdir/logs/client.log $workdir/logs/client.log
+nfd-status > $workdir/logs/nfd-status-A.log
+
+# analyze result
+echo "analyzing result"
+b_received=$(grep "Total Interests Received" $workdir/logs/serverB.log | head -1 | cut -d= -f2 | cut -d' ' -f2)
+if [[ $b_received -lt 80 ]]
+then
+    echo "FAIL: B did not receive at least 80 interests."
+    clean_up
+    exit 1
+fi
+c_received=$(grep "Total Interests Received" $workdir/logs/serverC.log | head -1 | cut -d= -f2 | cut -d' ' -f2)
+if [[ $c_received -lt 80 ]]
+then
+    echo "FAIL: C did not receive at least 80 interests."
+    clean_up
+    exit 2
+fi
+cat $workdir/logs/nfd-status-D.log | grep udp4 | while read line
+do
+    ind=$(echo $line | grep -Po "i .*?d} out" | sed 's/i //g' | sed 's/d} out//g')
+    if [[ $ind -gt 120 ]]
+    then
+        echo "FAIL: incoming data packet in D exceeded 120."
+        echo $line
+        clean_up
+        exit 3
+    fi
+done
+
+# clean up
+clean_up
+echo "Breadcast Test PASSED"
diff --git a/test_broadcast/test_broadcast.py b/test_broadcast/test_broadcast.py
new file mode 100644
index 0000000..da34c29
--- /dev/null
+++ b/test_broadcast/test_broadcast.py
@@ -0,0 +1,34 @@
+#!/usr/bin/python2
+# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+#
+# Copyright (C) 2014 University of Arizona
+# Author: Yi Huang <ltr120@email.arizona.edu>
+# See COPYING for copyright and distribution information.
+#
+
+import os
+import unittest
+import subprocess
+
+class test_broadcast(unittest.TestCase):
+    """Test case for broadcast scenario"""
+
+    def setUp(self):
+        print "\nTesting Broadcast scenario"
+        print "**************************"
+        os.chdir("test_broadcast")
+
+    def tearDown(self):
+        print "**************************"
+        os.chdir("..")
+
+    def test_unixface(self):
+        ret = subprocess.call(["./broadcast-test.sh"], shell=True)
+        print "Test script return value:", ret
+        errormsg = {
+            1 : "B did not receive at least 80 Interests.",
+            2 : "C did not receive at least 80 Interests.",
+            3 : "Incoming Data packets in D exceeded 120.",
+        }
+        if ret != 0:
+            self.fail(errormsg[ret])
