คุณสมบัติที่จำเป็นของเงื่อนไขการทดสอบประกอบด้วย (1) Fast เงื่อนไขการทดสอบจะต้องทำได้อย่างรวดเร็ว ทั้งในแง่ของการทำงานและการรอผลลัพธ์ ทั้งนี้หากเงื่อนไขการทดสอบที่ได้ผลช้า มีโอกาสจะถูกหลีกเลี่ยงไม่ทดสอบ (2) Reliable เงื่อนไขการทดสอบจะต้องเชื่อถือได้ ไม่แสดงผลแบบสุ่ม ข้อผิดพลาดที่ได้จะต้องตรงกับข้อบกพร่องในโปรแกรม ไม่เช่นนั้นจะไม่เกิดประโยชน์ใดๆหากเราไม่สามารถหาข้อสรุปได้ว่าเกิดข้อผิดพลาดตรงไหน (3) Isolate แต่ละเงื่อนไขการทดสอบจะต้องรับผิดชอบข้อผิดพลาดเพียงเรื่องเดียวเท่านั้น เพื่อให้สามารถระบุส่วนโปรแกรมที่บกพร่องได้อย่างรวดเร็ว ดังนั้นเราต้องย่อยส่วนของโปรแกรมหรือฟีเจอร์ให้มากที่สุดก่อนที่จะออกแบบเงื่อนไขการทดสอบ (4) Simulate Users นอกจากการทดสอบในระดับโปรแกรมแล้ว เงื่อนไขในการทดสอบจะต้องรองรับในระดับการใช้งานซึ่งเป็นส่วนที่ผู้ใช้งานจะสัมผัสด้วย เพื่อตรวจจับข้อผิดพลาดที่อาจจะเกิดได้จากการใช้งานของผู้ใช้งาน