ความแตกต่างระหว่างการทดสอบการยอมรับและการทดสอบการทำงาน?


147

ความแตกต่างที่แท้จริงระหว่างการทดสอบการยอมรับและการทดสอบการทำงานคืออะไร?

อะไรคือไฮไลท์หรือเป้าหมายของแต่ละคน ทุกที่ที่ฉันอ่านพวกมันคล้ายกันอย่างคลุมเครือ

คำตอบ:


172

ในโลกของฉันเราใช้เงื่อนไขดังต่อไปนี้:

การทดสอบการทำงาน : นี่คือกิจกรรมการตรวจสอบ ; เราสร้างผลิตภัณฑ์ที่ใช้งานได้ถูกต้องหรือไม่ ซอฟต์แวร์มีคุณสมบัติตรงตามข้อกำหนดทางธุรกิจหรือไม่

สำหรับการทดสอบประเภทนี้เรามีกรณีทดสอบที่ครอบคลุมสถานการณ์ที่เป็นไปได้ทั้งหมดที่เราสามารถนึกได้แม้ว่าสถานการณ์นั้นไม่น่าจะมีอยู่ "ในโลกแห่งความเป็นจริง" เมื่อทำการทดสอบประเภทนี้เรามีจุดมุ่งหมายเพื่อให้ครอบคลุมรหัสสูงสุด เราใช้สภาพแวดล้อมการทดสอบใด ๆ ที่เราสามารถคว้าได้ในเวลานั้นไม่จำเป็นต้องมีความสามารถ "การผลิต" ตราบใดที่สามารถใช้งานได้

การทดสอบการยอมรับ : นี่เป็นกิจกรรมการตรวจสอบ พวกเราสร้างสิ่งที่ถูกต้อง? นี่คือสิ่งที่ลูกค้าต้องการจริงๆหรือ

โดยปกติจะทำร่วมกับลูกค้าหรือโดยตัวแทนลูกค้าภายใน (เจ้าของผลิตภัณฑ์) สำหรับการทดสอบประเภทนี้เราใช้กรณีทดสอบที่ครอบคลุมสถานการณ์ทั่วไปที่เราคาดว่าจะใช้ซอฟต์แวร์ การทดสอบนี้จะต้องดำเนินการในสภาพแวดล้อมที่ "เหมือนผลิต" บนฮาร์ดแวร์ที่เหมือนกับหรือใกล้เคียงกับสิ่งที่ลูกค้าจะใช้ นี่คือเมื่อเราทดสอบ "ilities" ของเรา:

  • ความน่าเชื่อถือความพร้อมใช้งาน : ผ่านการทดสอบความเครียด

  • ความสามารถในการปรับขนาด : ผ่านการทดสอบโหลดแล้ว

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

  • ความปลอดภัย (aka ความปลอดภัยเพียงเพื่อให้พอดี) : ผ่านการตรวจสอบความถูกต้องแล้ว บางครั้งลูกค้าจะจ้าง บริษัท ภายนอกเพื่อทำการตรวจสอบความปลอดภัยและ / หรือการทดสอบการบุกรุก

  • การบำรุงรักษา : ตรวจสอบแล้วผ่านการสาธิตวิธีที่เราจะส่งมอบการอัปเดต / แพทช์ซอฟต์แวร์

  • การกำหนดค่า : ตรวจสอบความถูกต้องผ่านการสาธิตวิธีที่ลูกค้าสามารถปรับเปลี่ยนระบบเพื่อให้เหมาะกับความต้องการของพวกเขา

นี่ไม่ใช่มาตรฐานและฉันไม่คิดว่าจะมีคำจำกัดความ "มาตรฐาน" เนื่องจากคำตอบที่ขัดแย้งกันแสดงให้เห็นที่นี่ สิ่งที่สำคัญที่สุดสำหรับองค์กรของคุณคือคุณต้องกำหนดข้อกำหนดเหล่านี้อย่างแม่นยำและยึดติดกับข้อกำหนดเหล่านั้น


บวก 1 สำหรับคำตอบที่ดีและ "aka ความปลอดภัยเพียงเพื่อให้พอดีกับ" :) สิ่งที่ตลก :) ทีมงานไม่ได้คำนึงถึงความจริงที่ว่าในโลกแห่งความจริงบางคนอาจแทนที่เครื่องหมาย + ด้วยคำจริงเช่นเดียวกับฉัน ดังนั้นพวกเขาจึงไม่อนุญาตให้พิมพ์ +1 เป็นคำแรกในความคิดเห็น แต่พวกเขาอนุญาตให้ "บวก 1" :) ดังนั้นในทางปฏิบัติพวกเขาไม่สามารถทดสอบได้อย่างถูกต้อง :) Myabe พวกเขาเพียงแค่ลองตอบรับการทดสอบ :)
Geo C.

71

ฉันชอบคำตอบของ Patrick Cuff สิ่งที่ฉันต้องการเพิ่มคือความแตกต่างระหว่าง ระดับการทดสอบและประเภทการทดสอบที่เปิดตาให้ฉัน

ระดับการทดสอบ

การทดสอบระดับเป็นเรื่องง่ายที่จะอธิบายโดยใช้V-รูปแบบตัวอย่าง: ป้อนคำอธิบายรูปภาพที่นี่ แต่ละการทดสอบระดับมีของที่สอดคล้องกันในระดับการพัฒนา มันมีลักษณะเวลาทั่วไปพวกมันจะถูกดำเนินการในบางช่วงของวงจรการพัฒนา

  1. การทดสอบส่วนประกอบ / หน่วย => ตรวจสอบการออกแบบรายละเอียด
  2. การทดสอบการรวมองค์ประกอบ / หน่วย => ตรวจสอบการออกแบบระดับโลก
  3. การทดสอบระบบ => การตรวจสอบข้อกำหนดของระบบ
  4. การทดสอบการรวมระบบ => การตรวจสอบข้อกำหนดของระบบ
  5. การทดสอบการยอมรับ => การตรวจสอบความต้องการของผู้ใช้

ประเภทการทดสอบ

การทดสอบประเภทคือลักษณะที่จะมุ่งเน้นวัตถุประสงค์การทดสอบที่เฉพาะเจาะจง ประเภทการทดสอบจะเน้นด้านคุณภาพของคุณหรือที่เรียกว่าด้านเทคนิคหรือไม่ใช้งาน ประเภทการทดสอบ สามารถที่จะดำเนินการใด ๆ ในการทดสอบระดับ ฉันชอบที่จะใช้เป็นประเภทการทดสอบลักษณะคุณภาพที่กล่าวถึงใน ISO / IEC 25010: 2011

  1. การทดสอบการทำงาน
  2. การทดสอบความน่าเชื่อถือ
  3. การทดสอบประสิทธิภาพ
  4. การทดสอบการใช้งาน
  5. การทดสอบความปลอดภัย
  6. การทดสอบความเข้ากันได้
  7. การทดสอบการบำรุงรักษา
  8. การทดสอบการถ่ายโอน

เพื่อให้มันสมบูรณ์ นอกจากนี้ยังมีสิ่งที่เรียกว่าการทดสอบการถดถอย นี้จำแนกพิเศษถัดจากการทดสอบระดับและประเภทการทดสอบ ทดสอบการถดถอยคือการทดสอบที่คุณต้องการที่จะทำซ้ำเพราะมันสัมผัสบางสิ่งบางอย่างที่สำคัญในผลิตภัณฑ์ของคุณ มันอยู่ในความเป็นจริงเป็นส่วนหนึ่งของการทดสอบคุณกำหนดไว้สำหรับแต่ละการทดสอบระดับ หากมีการแก้ไขข้อบกพร่องเล็ก ๆ ในผลิตภัณฑ์ของคุณจะไม่มีเวลาทำซ้ำการทดสอบทั้งหมด การทดสอบการถดถอยเป็นคำตอบสำหรับสิ่งนั้น


2
นี่คือคำตอบที่ดีที่สุดสำหรับคำถามนี้และ "ความแตกต่างระหว่างระดับการทดสอบและประเภทการทดสอบ" เป็นสิ่งที่คำตอบส่วนใหญ่คิดถึงที่นี่และคุณคิดว่ามันเป็น "เครื่องเปิดตา"
zmilan

23

ความแตกต่างคือระหว่างการทดสอบปัญหาและแนวทางแก้ไข ซอฟต์แวร์เป็นวิธีการแก้ปัญหาที่ทั้งสองสามารถทดสอบได้

การทดสอบการใช้งานเป็นการยืนยันว่าซอฟต์แวร์ทำหน้าที่ภายในขอบเขตของวิธีการที่คุณแก้ไขปัญหา นี่เป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์เทียบได้กับการทดสอบที่ทำกับผลิตภัณฑ์ที่ผลิตจำนวนมากก่อนที่จะออกจากโรงงาน การทดสอบการใช้งานเป็นการยืนยันว่าผลิตภัณฑ์ใช้งานได้จริงตามที่คุณ (นักพัฒนา) คิดว่าทำ

การทดสอบการยอมรับตรวจสอบว่าผลิตภัณฑ์แก้ปัญหาได้จริง สิ่งนี้สามารถทำได้โดยผู้ใช้ (ลูกค้า) เช่นการปฏิบัติงานของเขา / เธอที่ซอฟต์แวร์ช่วยด้วย หากซอฟต์แวร์ผ่านการทดสอบในโลกแห่งความเป็นจริงก็ยอมรับว่าจะแทนที่โซลูชันก่อนหน้านี้ การทดสอบการยอมรับบางครั้งสามารถทำได้อย่างถูกต้องในการผลิตโดยเฉพาะถ้าคุณมีลูกค้าที่ไม่ระบุชื่อ (เช่นเว็บไซต์) ดังนั้นคุณสมบัติใหม่จะได้รับการยอมรับหลังจากวันหรือสัปดาห์ที่ใช้งานเท่านั้น

การทดสอบเชิงหน้าที่ - ทดสอบผลิตภัณฑ์เพื่อตรวจสอบว่ามีคุณสมบัติที่คุณออกแบบหรือสร้างขึ้น (ฟังก์ชั่นความเร็วข้อผิดพลาดความสอดคล้อง ฯลฯ )

การทดสอบการยอมรับ - ทดสอบผลิตภัณฑ์ในบริบทของมันสิ่งนี้ต้องการ (การจำลอง) ปฏิสัมพันธ์ของมนุษย์ทดสอบว่ามันมีผลที่ต้องการในปัญหาดั้งเดิม


9

คำตอบคือความเห็น ฉันทำงานในหลายโครงการและเป็นผู้ทดสอบและผู้ออกตราสารและบทบาทที่แตกต่างกันทั้งหมดและคำอธิบายในหนังสือต่าง ๆ แตกต่างกันดังนั้นนี่คือความแตกต่างของฉัน:

การทดสอบการใช้งาน:ใช้ความต้องการทางธุรกิจและทดสอบทุกอย่างดีและ thorougly จากมุมมองการทำงาน

การทดสอบการยอมรับ:ลูกค้า "ชำระเงิน" ทำการทดสอบที่เขาชอบเพื่อให้เขาสามารถรับผลิตภัณฑ์ที่ส่งมอบได้ ขึ้นอยู่กับลูกค้า แต่โดยทั่วไปแล้วการทดสอบจะไม่ละเอียดเท่าการทดสอบฟังก์ชั่นโดยเฉพาะอย่างยิ่งหากเป็นโครงการในบ้าน

อย่างที่ฉันบอกว่านี่เป็นมุมมองและประสบการณ์ของฉัน การทดสอบฟังก์ชั่นนั้นเป็นระบบและการทดสอบการยอมรับนั้นเป็นสิ่งที่แผนกธุรกิจทำการทดสอบ


ฉันชอบคำตอบนี้ :) พวกเขาเหมือนกันมาก
anbanm

1
เอือดคือใช่ในที่สุดก็ทำโดยลูกค้า "จ่าย" อย่างไรก็ตามเป็นส่วนใหญ่ทำครั้งแรกโดยบุคคลที่ควบคุมคุณภาพที่ "ดี" กับการทดสอบและ "พยายาม" เพื่อทำลายระบบและมองหาทุกสิ่ง "น้อย" ก่อนที่ลูกค้า "จ่าย" ได้รับมัน ซีลีเนียมอัตโนมัติสำหรับการทำสิ่งที่น่าเบื่อซ้ำ ๆ สามารถใช้ร่วมกับการทดสอบ UAT จริงโดยเครื่องทดสอบ QA แต่ไม่ต้องทำการทดสอบจริงซ้ำ ๆ เพื่อทดสอบการทำงานทั้งหมดที่คาดหวังกับเบราว์เซอร์ที่คาดหวังทั้งหมด เอือดเป็นคนอธิบายตนเอง ฉันคิดว่าคำอธิบายการทดสอบฟังก์ชั่นส่วนใหญ่ดูเหมือนจะเป็นหุ่นยนต์และพจนานุกรม
Tom Stickel

ดังที่ฉันได้กล่าวมานี่เป็นประสบการณ์ของฉันว่าจะตีความข้อกำหนดอย่างไร
Hol

นั่นเป็นเรื่องปกติ เมื่อฉันสังเกตเห็นคำจำกัดความที่คลุมเครือนี้ ... ฉันเพิ่งจะแสดงความคิดเห็น "การทดสอบการใช้งาน: ใช้ความต้องการทางธุรกิจและทดสอบทั้งหมดนั้นดีและ thorougly จากมุมมองของการทำงาน"
Tom Stickel

ฮ่าฮ่าใช่ตอนนี้ฉันเข้าใจคุณแล้ว โอเคนี่คือสิ่งที่คุณสามารถเขียนหนังสือทั้งเล่มเกี่ยวกับมันได้ ฉันไม่ต้องการที่จะเข้าไปในสิ่งนี้มากเกินไปในขณะที่ฉันเขียนมัน
hol

8
  1. ผู้ชม. การทดสอบเชิงหน้าที่คือการรับรองสมาชิกของทีมที่ผลิตซอฟต์แวร์ว่าทำสิ่งที่พวกเขาคาดหวัง การทดสอบการยอมรับคือการรับรองผู้บริโภคว่าตรงตามความต้องการของพวกเขา

  2. ขอบเขต. ฟังก์ชั่นการทดสอบทดสอบการทำงานของส่วนประกอบหนึ่งครั้งเท่านั้น การทดสอบการยอมรับครอบคลุมถึงทุกแง่มุมของผลิตภัณฑ์ที่มีความสำคัญต่อผู้บริโภคมากพอที่จะทดสอบก่อนที่จะยอมรับซอฟต์แวร์ (กล่าวคือสิ่งใดที่คุ้มค่ากับเวลาหรือเงินที่จะใช้ในการทดสอบเพื่อตรวจสอบการยอมรับ)

ซอฟต์แวร์สามารถผ่านการทดสอบการทำงานการทดสอบการรวมและการทดสอบระบบ เท่านั้นที่จะล้มเหลวในการทดสอบการยอมรับเมื่อลูกค้าพบว่าคุณสมบัติไม่เป็นไปตามความต้องการของพวกเขา นี่มักจะบอกเป็นนัยว่ามีคนล้มลงบนสเป็ค ซอฟต์แวร์อาจล้มเหลวในการทดสอบการใช้งานบางอย่าง แต่ผ่านการทดสอบการยอมรับเนื่องจากลูกค้ายินดีที่จะจัดการกับข้อบกพร่องบางอย่างที่ใช้งานได้ตราบใดที่ซอฟต์แวร์ทำสิ่งสำคัญที่พวกเขาต้องการได้รับการยอมรับอย่างดี (ซอฟต์แวร์เบต้ามักจะได้รับการยอมรับ ทำงานได้อย่างสมบูรณ์)


2

การทดสอบหน้าที่: การประยุกต์ใช้ข้อมูลการทดสอบที่ได้มาจากข้อกำหนดการทำงานที่ระบุโดยไม่คำนึงถึงโครงสร้างโปรแกรมสุดท้าย หรือที่เรียกว่าการทดสอบกล่องดำ

การทดสอบการยอมรับ:การทดสอบอย่างเป็นทางการดำเนินการเพื่อพิจารณาว่าระบบเป็นไปตามเกณฑ์การยอมรับหรือไม่ - ทำให้ผู้ใช้ปลายทางสามารถกำหนดได้ว่าจะยอมรับระบบหรือไม่


1

ในมุมมองของฉันความแตกต่างหลักคือใครบอกว่าการทดสอบสำเร็จหรือล้มเหลว

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

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


การทดสอบการยอมรับจะพิจารณาว่าระบบตรงตามเกณฑ์การยอมรับของกรณีการใช้งานที่กำหนดหรือกรณีการใช้ทั้งหมดเท่าที่จะเป็นไปได้ มันมักจะดำเนินการโดยผู้ใช้ผู้เชี่ยวชาญเพื่อตรวจสอบว่าระบบเป็นที่ยอมรับหรือไม่ ในวิชาการบินนักบินทดสอบเป็นนักบินที่ทำการทดสอบอากาศยานใหม่โดยการซ้อมรบเฉพาะ นักบินนักเดินเรือและวิศวกรชั้นนำทำการทดสอบการบินและเมื่อสิ้นสุดภารกิจการทดสอบพวกเขาจะให้ข้อมูลการประเมินและการรับรอง
jjpcondor

1

การทดสอบการยอมรับ :

... เป็นการทดสอบกล่องดำที่ดำเนินการบนระบบ (เช่นซอฟต์แวร์ชิ้นส่วนเครื่องจักรที่ผลิตขึ้นจำนวนมากหรือชุดผลิตภัณฑ์เคมี) ก่อนส่งมอบ

แม้ว่าสิ่งนี้จะกล่าวต่อไปว่า:

มันยังเป็นที่รู้จักกันในนามการทดสอบการทำงานการทดสอบกล่องดำการยอมรับการทดสอบ QA การทดสอบแอปพลิเคชันการทดสอบความมั่นใจการทดสอบขั้นสุดท้ายการทดสอบการตรวจสอบหรือการทดสอบการยอมรับจากโรงงาน

ด้วยเครื่องหมาย "อ้างอิงที่จำเป็น"

ฟังก์ชั่นการทดสอบ (ซึ่งจริง ๆ แล้วเปลี่ยนเส้นทางไปยังการทดสอบระบบ):

ดำเนินการในระบบบูรณาการที่สมบูรณ์เพื่อประเมินความสอดคล้องของระบบตามข้อกำหนดที่ระบุ การทดสอบระบบอยู่ในขอบเขตของการทดสอบกล่องดำและดังนั้นจึงไม่จำเป็นต้องมีความรู้ในการออกแบบภายในของรหัสหรือตรรกะ

ดังนั้นจากคำจำกัดความนี้พวกเขาก็ค่อนข้างเหมือนกัน

ในการทดสอบการยอมรับประสบการณ์ของฉันมักจะเป็นชุดย่อยของการทดสอบการทำงานและใช้ในกระบวนการลงชื่อออกอย่างเป็นทางการโดยลูกค้าในขณะที่การทดสอบการทำงาน / ระบบจะเป็นสิ่งที่ดำเนินการโดยฝ่ายพัฒนา / แผนกควบคุมคุณภาพ


0

ความสัมพันธ์ระหว่างสอง: การทดสอบการยอมรับมักจะรวมถึงการทดสอบการทำงาน แต่อาจรวมถึงการทดสอบเพิ่มเติม ตัวอย่างเช่นการตรวจสอบข้อกำหนดการติดฉลาก / เอกสาร

การทดสอบการทำงานคือเมื่อผลิตภัณฑ์ภายใต้การทดสอบถูกวางลงในสภาพแวดล้อมการทดสอบที่สามารถสร้างความหลากหลายของการกระตุ้น (ภายในขอบเขตของการทดสอบ) สิ่งที่สภาพแวดล้อมเป้าหมายมักจะผลิตหรือเกินกว่าในขณะที่ตรวจสอบการตอบสนองของอุปกรณ์ภายใต้การทดสอบ

สำหรับผลิตภัณฑ์ทางกายภาพ (ไม่ใช่ซอฟต์แวร์) มีการทดสอบการยอมรับที่สำคัญสองประเภท: การทดสอบการออกแบบและการทดสอบการผลิต การทดสอบการออกแบบมักใช้ตัวอย่างผลิตภัณฑ์จำนวนมากซึ่งผ่านการทดสอบการผลิต ผู้บริโภคที่แตกต่างกันอาจทดสอบวิธีการออกแบบที่แตกต่างกัน

การทดสอบการยอมรับจะเรียกว่าการตรวจสอบเมื่อการออกแบบทดสอบกับข้อกำหนดของผลิตภัณฑ์และการทดสอบการยอมรับจะเรียกว่าการตรวจสอบความถูกต้องเมื่อวางผลิตภัณฑ์ในสภาพแวดล้อมจริงของผู้บริโภค


0

การทดสอบการยอมรับเป็นเพียงการทดสอบที่ดำเนินการโดยลูกค้าและรวมถึงการทดสอบประเภทอื่น ๆ :

  • การทดสอบการทำงาน: "ปุ่มนี้ใช้งานไม่ได้"
  • การทดสอบที่ไม่ทำงาน: "หน้านี้ใช้งานได้ แต่ช้าเกินไป"

สำหรับการทดสอบการใช้งานเทียบกับการทดสอบที่ไม่ใช้งานได้ (ชนิดย่อย) - ดูคำตอบของคำถามSOนี้


-1

พวกเขาเป็นสิ่งเดียวกัน

การทดสอบการยอมรับจะดำเนินการในระบบที่เสร็จสมบูรณ์ในสภาพแวดล้อมจริงที่เป็นไปได้สำหรับการผลิต / การใช้งานจริงก่อนที่จะมีการปรับใช้หรือส่งมอบระบบ

คุณสามารถทำการทดสอบการยอมรับในลักษณะอัตโนมัติหรือด้วยตนเอง


1
ในขณะที่ระบบอัตโนมัติกับ Selenium และ Watin (หรือ Watir) ฯลฯ ... เป็นสิ่งที่มีค่ามากสำหรับการป้องกันแนวแรกไม่มีอะไรเลยที่จะได้รับการฝึกฝน QA คนที่ได้รับการฝึกฝนเรื่อง "การทำลายระบบอัตโนมัติเป็นสิ่งที่ยอดเยี่ยม แต่ด้วยการพัฒนาสมัยใหม่ และการเปลี่ยนเอาท์พุตบนหน้าเว็บเพื่อให้ทุกอย่างเป็นอัตโนมัติเป็นสคริปต์อัปเดตฝันร้ายพวกเขาไม่เหมือนกัน
Tom Stickel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.