NFR Checklist: Security, Usability, Testability

Checklist สำหรับใช้จับประเด็น เพื่อช่วยตั้งคำถามด้าน non-functional requirement ในงาน requirement, ช่วยออกแบบ non-functional test case, ช่วยออกแบบโซลูชั่น   NFR Checklist ด้าน Security

ความต้องการ (Requirement)

สมมติฐาน (Assumption)

Business Actor

  • Business actor คือใคร?

Business Worker

  • Business worker คือใคร?

System Actor

  • System actor คือใคร? อยู่ที่ไหน? ติดต่อระบบผ่าน channel อะไร? ใช้โปรโตคอลอะไร?

Boundary

  • กำหนดขอบเขต (เช่น DMZ) อะไรบ้าง?
  • มี constraint ใดบ้างที่ส่งผลต่อ boundary?
  • ในแต่ละ boundary ประกอบด้วยทรัพยากรใดบ้าง?
  • แต่ละ boundary สื่อสารกันอย่างไร? กรณีใด?

Operation

  • Operation ใดบ้างที่มีผลต่อ security? เช่น modify, delete, access service

Artifact

  • สิ่งที่อาจได้รับผลกระทบหากมีปัญหาด้าน security คืออะไรบ้าง? เช่น ข้อมูล, operation, service, ทรัพยากร

Environment

  • สภาพแวดล้อมเป็นแบบใดได้บ้าง? เช่น online, offline, connected, disconnected, อยู่หลัง firewall หรือไม่มี firewall

Probability of Attack

  • มีโอกาสที่จะถูก attack แค่ไหน? จากใคร? จากที่ไหน?

Time/Effort/Resource

  • มีระยะเวลา/บุคลากร/ทรัพยากร แค่ไหน เท่าไรในการทดสอบ/ตรวจสอบ/แก้ไข ด้าน security?
  • และมี constraint ใดที่ส่งผลต่อทรัพยากรในการจัดการด้าน security บ้าง?

Action

  • มีการจัดการด้าน security อะไรบ้าง? เช่น authentication, authorization, grant/withdraw permission, transfer permission

Application Security

  • มีการใช้ information hiding ในจุดใดบ้าง?
  • มี single point of failure ในจุดใดบ้าง?
  • มีการใช้ pattern: Observer, Visitor, Proxy, Façade, Front Controller, Gateway ในจุดใดบ้าง? อะไรบ้าง? อะไรบ้าง?
  • มีการสร้าง abstraction layer ในจุดใดบ้าง?
  • มีการ access file, database, message queue server และทรัพยากรอื่นๆ ในจุดใดบ้าง?
  • การจัดการด้าน authentication, authorization, single sign-on จะพัฒนาเองหรือใช้เฟรมเวิร์กหรือใช้ middleware?
  • มีการทำ security data propagation ในจุดใดบ้าง?
  • การ parse หรือ convert ข้อมูล (เช่น XML, รูปกราฟฟิก) พัฒนาเองหรือใช้ไลบรารี่อื่น?

Reliability

  • มีจุดใดบ้างที่ต้องการความน่าเชื่อถือมากๆ?
  • มีจุดใดบ้างที่หากเกิดข้อผิดพลาดด้าน security แล้วส่งผลต่อความน่าเชื่อถือในส่วนต่างๆ? ส่งผลต่อส่วนใดบ้าง?

Performance

  • มีจุดใดบ้างที่จะมีการจัดการด้าน security ที่อาจส่งผลต่อประสิทธิภาพการประมวลผลและการใช้ทรัพยากร?
  • มี constraint ใดบ้างที่ส่งผลต่อประสิทธิภาพการประมวลผลและการใช้ทรัพยากร?

Availability

  • มีจุดใดบ้างที่หากถูก attack แล้วระบบจะล่มหรือหยุดทำงานหรือทำงานช้าลง

NFR Checklist ด้าน Usability

ความต้องการ (Requirement)

สมมติฐาน (Assumption)

Aesthetic

  • ความสวยงามของหน้าจอควรเป็นอย่างไร? เช่น layout, การใช้คำศัพท์, ฟอนต์, สี, รูปภาพ, ตาราง, เมนู, animation

User Friendly

  • ความใช้งานง่ายควรเป็นอย่างไร? เช่น layout, การแสดงผลข้อมูล, การแสดงข้อมูล error, help/guideline, การจัดการ user experience, screen flow, เมนู, usage model

Learning

  • ระยะเวลาในการทำความเข้าใจจนใช้หน้าจอนั้นๆ เป็นคือเท่าไร?
  • ระยะเวลาฝึกอบรมผู้ใช้ต่อครั้งคือเท่าไร?
  • ระยะเวลาในการทำความเข้าใจการใช้งานระบบนับจากวันแรกจนใช้ระบบคล่องคือเท่าไร?
  • การจัด layout, เมนู, การใช้คำศัพท์, การแสดงผลหน้าจอ ควรสื่อความหมายอย่างไรให้เข้าใจง่าย?

Efficiency

  • ระบบควรสนับสนุนการทำงานของผู้ใช้ให้มีประสิทธิภาพสูงสุดได้อย่างไร?
  • มีส่วนงานใด/หน้าจอใด/ฟังก์ชั่นใด ที่ผู้ใช้คาดหวังประโยชน์จากระบบมากๆ?
  • หากเกิดข้อผิดพลาดขึ้น มีส่วนใดบ้างที่อยากให้ผู้ใช้แก้ปัญหาด้วยตนเอง?

Error Handling

  • การแสดงผลข้อผิดพลาด (error) ควรแสดงผลอย่างไรให้ผู้ใช้เข้าใจและรู้สึกดี?
  • มี constraint ใดบ้างที่ส่งผลต่อการแสดงผลข้อผิดพลาด

Adaptability

  • มี constraint ใดบ้างที่ส่งผลต่อการปรับตัวผู้ใช้ให้เข้ากับระบบ
  • มีผู้ใช้ที่ใช้ภาษาแตกต่างกันหรือไม่? ภาษาอะไรบ้าง?
  • ผู้ใช้มีความหลากหลายมากน้อยแค่ไหน? เช่น อายุ, เพศ, ทักษะด้านคอมพิวเตอร์

Feel Comfortable

  • โครงการนี้จะมีการลดจำนวนพนักงานลงหรือไม่?
  • มีผู้ใช้กลุ่มใดแสดงการต่อต้านบ้าง?
  • ระบบนี้ส่งผลต่อตัวชี้วัด (KPI) ของพนักงานหรือผู้ใช้กลุ่มใดบ้าง?
  • จะมีการวัดผลการทำงานของพนักงานหรือผู้ใช้ภายหลังเริ่มใช้ระบบหรือไม่?
  • มีจุดใดใน business process ที่ได้รับผลกระทบสูงเมื่อจะมีระบบมาใช้งานในจุดนั้น? และจุดนี้มีพนักงานหรือผู้ใช้ใดเกี่ยวข้องบ้าง?
  • มีผู้ใช้กลุ่มใดบ้างที่มีความคาดหวังสูงในการใช้ระบบ? และเขาต้องการใช้ส่วนไหนบ้าง? เช่น หน้าจอ, ฟังก์ชั่น

Reliability

  • หากระบบทำงานผิดพลาด หรือใช้งานยาก จะส่งผลต่อความเชื่อมั่นและความไว้ใจระบบต่อผู้ใช้อย่างไร?
  • มี constraint ใดบ้างที่ส่งผลต่อความเชื่อมั่นหรือความไว้ใจระบบต่อการใช้งานของผู้ใช้?

Performance

  • มีงานใดบ้างที่มีสัดส่วนปริมาณงานต่อผู้ใช้สูงมาก?
  • มี constraint ใดบ้างที่ส่งผลต่อประสิทธิภาพการแสดงผลหน้าจอ?
  • มีหน้าจอใดบ้างที่มีแบบฟอร์มขนาดใหญ่ มีฟีลด์เยอะ? ใช้เวลาในการป้อนข้อมูลนาน?
  • มีหน้าจอใดบ้างที่มีตรวจสอบข้อมูลหรือการทำงานอยู่เยอะ?
  • มีหน้าจอใดบ้างที่การแสดงผลจำเป็นต้องโหลดข้อมูลจำนวนมาก/หลายประเภท/หลายครั้ง?

NFR Checklist ด้าน Testability

ความต้องการ (Requirement)

สมมติฐาน (Assumption)

Artifact

  • จะ test อะไรบ้าง? เช่น subsystem, model, component, configuration, architectural mechanism, function, architecture, complete system, traceability, impact

Source

  • ใครจะเป็นคน test บ้าง? เช่น programmer, tester, analyst, user acceptance tester, SQA, system integrator

Environment

  • สภาพแวดล้อมที่จะ test มีช่วงใดบ้าง? เช่น design time, build time, deployment time, run time

Test Data

  • มีแผนการเตรียม test data อย่างไร?
  • มีการจัดการ configuration และ version control กับ test data หรือไม่?
  • จะจัดเก็บ test data อย่างไร?

Preparation

  • มีกรอบ/เกณฑ์ในการเตรียมการ test อย่างไร?
  • มีระยะเวลาในการเตรียมการ test โดยรวม และแต่ละครั้งเท่าไร?

Probability of Failure

  • มีกรอบ/เกณฑ์ควบคุมโอกาสในการเกิดข้อผิดพลาดกรณีที่ bug ยังอยู่อย่างไร?

Area of Concern

  • ทราบ key business goal, key use case, key non-functional requirement หรือยัง? มีอะไรบ้าง?
  • มี constraint อะไรบ้างที่มีผลต่อการออกแบบ test และการ test ให้สอดคล้องกับ key requirement เหล่านี้?

Time to Perform Test

  • ระยะเวลาในการ test แต่ละครั้งมีค่าเท่าไร? (อาจแสดงเป็นช่วงเวลา)
Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s