Okay, maybe it's not a tautology. But it sure quacks like one.
boolean = ((X \[Or] Y) \[Implies] Z) \[Or] ((! X \[Implies] ! Y) \[Implies] ! Z);
ruleList =
Map[Thread,
Map[{X, Y, Z} -> # &,
Flatten[Outer[List, {True, False}, {True, False}, {True, False}],
2]]]
(* Out[116]= {{X -> True, Y -> True, Z -> True}, {X -> True, Y -> True,
Z -> False}, {X -> True, Y -> False, Z -> True}, {X -> True,
Y -> False, Z -> False}, {X -> False, Y -> True,
Z -> True}, {X -> False, Y -> True, Z -> False}, {X -> False,
Y -> False, Z -> True}, {X -> False, Y -> False, Z -> False}} *)
boolean /. ruleList
(* Out[117]= {True, True, True, True, True, True, True, True} *)