Testing Basics
Boundary Checks
Test the edges of an allowed range.
boundary-check
Boundary tests probe the smallest and largest accepted values. Here the upper edge 10 is inside the range while 0 and 11 fall outside.
Boundary Checks
BoundaryCheck.scala
Replay: real traced execution (multi-file project)
object Main {
def inRange(n: Int): Boolean = {
n >= 1 && n <= 10
}
def main(args: Array[String]): Unit = {
val value = 10
val ok = inRange(value)
val status = if (ok) "inside" else "outside"
println("value=" + value)
println("status=" + status)
}
}
object Main {
def inRange(n: Int): Boolean = {
n >= 1 && n <= 10
}
def main(args: Array[String]): Unit = {
val value = 0
val ok = inRange(value)
val status = if (ok) "inside" else "outside"
println("value=" + value)
println("status=" + status)
}
}
object Main {
def inRange(n: Int): Boolean = {
n >= 1 && n <= 10
}
def main(args: Array[String]): Unit = {
val value = 11
val ok = inRange(value)
val status = if (ok) "inside" else "outside"
println("value=" + value)
println("status=" + status)
}
}
value ← 10
6def main(args: Array[String]): Unit = {7 val value→ 10 = 10 //@value=0, 118 val ok = inRange(value10)9 val status = if (ok) "inside" else "outside"def inRange(n: Int): Boolean =
1object Main {2 def inRange(n10: Int): Boolean = {3 n10 >= 1 && n <= 104 }ok ← true, status ← inside
7 val value = 10 //@value=0, 118 val ok→ true = inRange(value10)9 val status→ inside = if (oktrue) "inside" else "outside"1011 println("value=" + value10)12 println("status=" + statusinside)13 }14}outputvalue=10 status=inside
value ← 0
6def main(args: Array[String]): Unit = {7 val value→ 0 = 08 val ok = inRange(value0)9 val status = if (ok) "inside" else "outside"def inRange(n: Int): Boolean =
1object Main {2 def inRange(n0: Int): Boolean = {3 n0 >= 1 && n <= 104 }ok ← false, status ← outside
7 val value = 08 val ok→ false = inRange(value0)9 val status→ outside = if (okfalse) "inside" else "outside"1011 println("value=" + value0)12 println("status=" + statusoutside)13 }14}outputvalue=0 status=outside
value ← 11
6def main(args: Array[String]): Unit = {7 val value→ 11 = 118 val ok = inRange(value11)9 val status = if (ok) "inside" else "outside"def inRange(n: Int): Boolean =
1object Main {2 def inRange(n11: Int): Boolean = {3 n11 >= 1 && n <= 104 }ok ← false, status ← outside
7 val value = 118 val ok→ false = inRange(value11)9 val status→ outside = if (okfalse) "inside" else "outside"1011 println("value=" + value11)12 println("status=" + statusoutside)13 }14}outputvalue=11 status=outside