ออกแบบ test cases เพื่อทำ non-functional test โดย...

26

Upload: prathan-d

Post on 19-Jan-2015

7.588 views

Category:

Technology


1 download

DESCRIPTION

ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

TRANSCRIPT

Page 1: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
Page 2: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
Page 3: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

ซอฟต์แวร์มีหลายมิติ

Page 4: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

มิติง่ายๆ

Page 5: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Functional Test Scenario & Test Case

Page 6: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Scenario & Test Case

Page 7: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Test Case

Page 8: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Traceability

Page 9: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Architecture Test Cases

Page 10: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Test Driven Development

1

23

4

55

5

4

Page 11: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

จะ Test อะไรกันดี????

Page 12: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

จะ Test อะไรกันดี????

Page 13: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Attribute Refinements (Attributes of System Quality)

Page 14: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

เทคนิคตีความ •  ช่วงเวลา = Availability •  ความเร็ว/ปริมาณ = Performance •  อนาคตจะมีผู้ใช้/ฟังก์ชั่น/เซอร์วิสเพิ่ม = Scalability •  มีส่วนที่ต้องปรับปรุง/แก้ไข/เพิ่มเติมได้ =

Modifiability •  ซีเรียสเรื่องการเข้าใช้งาน/เข้าถึงข้อมูล = Security •  หน้าจอซับซ้อน/ผู้ใช้หลากหลาย = Usability •  ต้องเชื่อมต่อกับ External Resources =

Integrability •  External Resources หลากหลาย =

Interoperability •  มีการแลกเปลี่ยนข้อมูล/import/export/migrate =

Portability •  ฯลฯ

Page 15: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Simulate Test Environment for “Test Architecture”

Page 16: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Quality Scenarios

Page 17: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Case Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘easy  use’  of  cri<cal  form Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบว่าแบบฟอร์มสําคัญของระบบต้องใช้งานง่าย Approaches:  Non-­‐Func6onal  Test:  Usability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: 80% ของผู้ใช้ทั้งหมด ให้คะแนนความง่ายไม่ต่ํากว่า  80 คะแนน No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘handling  load’  of  withdraw  request  (16:00  –  18:00) Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบว่าระบบ Core  Bank  System รองรับโหลด  request ‘ถอนเงิน’  ในช่วงเวลา  16:00-­‐18:00  ได้ Approaches:  Non-­‐Func6onal  Test:  Performance  +  Availability  +  Reliability Required  Input  /  Test  Data: จํานวนตู้ทั้งหมด  1,500 ตู้ทั่วประเทศ Expected  Output  /  Outcome: รองรับ  Request ‘ถอนเงิน’  ได้ 40  request/ตู้/ช.ม. ช่วงเวลา  16:00-­‐18:00 No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Page 18: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Case Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘avg  response  <me’  aTer  service  increased Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบว่าค่า  response  <me เฉลี่ยของทุก  TX ต้องเท่าเดิม แม้มีบริการเพิ่มขึ้นภายหลัง Approaches:  Non-­‐Func6onal  Test:  Scalability  +  Performance  +  Reliability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: avg  response  <me  <=  X  วินาที  (+/-­‐  Y  วินาที) นับจาก  ATM  -­‐>  CBS  -­‐>  ATM No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Page 19: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Quality Scenarios

Page 20: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Case Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘scheduling’  of  load  balancer Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบการ  scheduling ของการ dispatch  request ไปยังเว็บเซิร์ฟเวอร์ Approaches:  Non-­‐Func6onal  Test:  Performance  +  Reliability +  Availability  +  Scalability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: dispatch  ได้สม่ําเสมอ เป็นธรรม!  สมดุลกับ  resource ที่เหลือของเว็บเซิร์ฟเวอร์ No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Page 21: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Quality Scenarios

Page 22: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Case Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘balance  of  stateless  object  crea<on’ Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบ latency ในการสร้าง  stateless  object (เช่น XXXWebCMD และ XXXBusinessService) ที่ต้องสมดุลกับปริมาณ  incoming  request Approaches:  Non-­‐Func6onal  Test:  Performance  +  Scalability  +  Availability  +  Reliability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: เมื่อ  client  request มาถึงอ็อบเจ็คต์ที่ต้องการใช้  (a) ต้องใช้เวลาไม่เกิน  x  ms ในการสร้างและเตรียมจน client  request ได้เริ่มใช้  (b)  ตัวอย่างสมการ  b  –  a  <=  x  ms No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘offline  locking  strategy’  of  shared  resource  (MFU)  for  upexpected  TX Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบการเข้าถึง  shared  resource ที่ถูกเข้าถึงบ่อยๆ โดย  TX คาดการณ์ไม่ได้ว่าจะ  commit เมื่อไหร่ Approaches:  Non-­‐Func6onal  Test:  Availability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: offline  locking  strategy ต้องเป็น  op<mis<c  lock No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Page 23: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Quality Scenarios

Page 24: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Case Test  Case  ID:  XXX  Test  Case  Name:  Test  size  of  ‘unwanted’  data  sending  from  service  to  client Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบการขนาดข้อมูลที่ส่งจากเซอร์วิสกลับไปยังไคลเอ็นต์ ซึ่งเป็นข้อมูลส่วนที่ไคลเอ็นต์ไม่ต้องการใช้ Approaches:  Non-­‐Func6onal  Test:  Performance  +  Availability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: size  of  unwanted  data  =  0  byte! No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘Data  Source’s configura<on’  modifica<on  online Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบการแก้ไขค่าคอนฟิกฯ ของ  Data  Source ขณะออนไลน์ โดยไม่ต้อง  shutdown  system

Approaches:  Non-­‐Func6onal  Test:  Modifiability  +  Availability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: repair  <me  =  0  วินาที No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Page 25: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Case Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘evic<on’  of  LRU  resource  in  pool  and  cache Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบการ ‘เคลียร์’ resource ที่ไม่ค่อยได้ใช้ออกจาก  pool และ  cache Approaches:  Non-­‐Func6onal  Test:  Performance  +  Availability +  Scalability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: evict/passivate/swap  out/delete/serialize  ทันทีเมื่อ  resource นั้นครบ  idle  <me  out ตามที่คอนฟิกฯ ไว้ No. Ac6vity Pass? Fail? Remark/Condi6on

1.

Page 26: ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย

Non-Functional Test Case Test  Case  ID:  XXX  Test  Case  Name:  Test  ‘evic<on’  of  LRU  resource  in  pool  and  cache Relevant  Requirement  IDs:

Objec6ves:  เพื่อทดสอบการ ‘เคลียร์’ resource ที่ไม่ค่อยได้ใช้ออกจาก  pool และ  cache Approaches:  Non-­‐Func6onal  Test:  Performance  +  Availability +  Scalability Required  Input  /  Test  Data:

Expected  Output  /  Outcome: evict/passivate/swap  out/delete/serialize  ทันทีเมื่อ  resource นั้นครบ  idle  <me  out ตามที่คอนฟิกฯ ไว้ No. Ac6vity Pass? Fail? Remark/Condi6on

1.