แหล่งข้อมูลสำหรับการทดสอบพัฒนาที่ขับเคลื่อนด้วยเว็บแอพพลิเคชั่น [ปิด]


15

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

ฉันได้อ่านเกี่ยวกับและลองใช้ TDD และการทดสอบหน่วย แต่ตัวอย่างก็คือฟังก์ชั่น 'ที่เป็นของแข็ง' และค่อนข้างง่ายเช่นตัวแปลงสกุลเงินเป็นต้น

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

Googling สำหรับ "การพัฒนาเว็บทดสอบการขับเคลื่อน" ทำให้ฉันได้รับบทความเก่า ๆ เมื่อหลายปีก่อนโดยครอบคลุมตัวอย่างเดียวกันของฟังก์ชั่นเหมือนเครื่องคิดเลขหรือการอภิปรายเกี่ยวกับสาเหตุที่ TDD ดีกว่าอะไร (โดยไม่มีตัวอย่าง)


1
เครื่องมือที่มีจะขึ้นอยู่กับภาษา คุณใช้ภาษาอะไร
Alb

ฉันรู้ว่า - แต่ฉันกำลังมองหาบทความสนทนาและบทความมากกว่าเครื่องมือเฉพาะ ฉันรู้ว่ามีเครื่องมืออะไรบ้าง แต่ต้องการเรียนรู้วิธีการใช้งานให้ดีที่สุดสำหรับแอพพลิเคชั่นที่ขับเคลื่อนด้วย Front-end
HorusKol

คำตอบ:


2

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

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

เมื่อพูดถึงการทดสอบ UI ให้แทนที่กฎธุรกิจของคุณด้วยการใช้งานจำลองที่ตอบสนองด้วยวิธีที่คาดการณ์ได้

ข้างต้นสองกฎที่นำมาจากการพูดคุยบ๊อบมาร์ตินที่ RailsConf 2010 การพูดคุยไม่ได้เกี่ยวกับ TDD และส่วนที่เขากล่าวถึงการทดสอบสั้นและอยู่ตรงกลาง

มีเครื่องมืออย่างJsUnit , JSSpec , YUI Testสำหรับทดสอบ JavaScript และSeleniumและWatirสำหรับการทดสอบ UI

ศาสตร์ Bookshelfมีหนังสือไม่กี่เล่มที่ครอบคลุมการทดสอบการใช้งานเว็บ รายชื่อหนังสือที่ติดแท็กการทดสอบเป็นที่http://www.pragprog.com/categories/design หนังสือทดสอบแอปพลิเคชันเว็บ Bookshelf ของ Pragmatic เน้นไปที่ Ruby และ Rails เป็นหลัก


ปัญหาสำคัญอย่างหนึ่งของการออกแบบเว็บคือการทดสอบ CSS - กฎ CSS ใหม่อาจมีผลกระทบที่ไม่ตั้งใจ แต่เฉพาะในเพจที่มีเนื้อหาเฉพาะ ... คุณสามารถทดสอบหน่วยนั้นได้หรือไม่
HorusKol

คำถามที่ดี. ฉันอยากจะแนะนำว่านี่เป็นส่วนหนึ่งของการทดสอบ UI ของคุณ คุณพัฒนาแบบทดสอบเพื่อรวมเนื้อหาของหน้าต่างๆที่คุณคาดหวัง (และบางส่วนที่คุณไม่คาดคิด) และเขียนการตอบรับของคุณอย่างเหมาะสม จากนั้นเมื่อคุณแนะนำกฎ CSS ใหม่การทดสอบ UI ของคุณควรเน้นที่การถดถอยใด ๆ อาจเป็นเพราะกระบวนการนี้ใช้เวลานานเกินไปและคุณอาจได้รับการบริการที่ดีขึ้นโดยเพียงแค่มีคนทำการทดสอบคุณภาพในเว็บไซต์และรายงานปัญหา
Anthony Cramp

3

Test-Driven JavaScript Developmentเป็นหนังสือที่ดีมากจาก Christian Johansen ผู้พัฒนาที่อยู่เบื้องหลังSinon.jsและBuster.jsซึ่งครอบคลุมหัวข้อต่างๆเช่น (นำมาจากเว็บไซต์):

  • ทำความเข้าใจเกี่ยวกับการทดสอบหน่วยและ TDD
  • การเลือกกรอบการทดสอบหน่วยที่ถูกต้อง
  • การสร้าง API ที่สะอาดขึ้น JavaScript ที่ได้มาตรฐานและมีประสิทธิภาพ
  • ปรับปรุงรหัสอย่างต่อเนื่องผ่านการปรับโครงสร้างใหม่
  • ห้าเซสชัน TDD ที่ใช้งานได้จริง: Ajax, การจัดการ DOM, Node.js และอื่น ๆ
  • การทดสอบที่ขับเคลื่อนด้วยทัวร์ไปยัง JavaScript สำหรับนักพัฒนาที่ไม่คุ้นเคยกับภาษา

ขณะนี้เราใช้ Sinon.js กับ Mocha แต่พร้อมที่จะเปลี่ยนเป็น Buster.js เนื่องจากคุณสมบัติของมันนั้นเนี้ยบจริงๆ!


1

ในโครงการที่ฉันทำงานเมื่อเร็ว ๆ นี้ผู้พัฒนานำตัดสินใจที่จะใช้Unityเพื่อให้การเยาะเย้ยและ TDD นั้นง่ายขึ้นในแอปพลิเคชันเว็บขนาดใหญ่ - ฉันคิดว่าการใช้ Unity มักจะมาพร้อมกับ TDD เป็นเว็บแอพพลิเคชัน

การตรวจสอบการทดสอบหน่วย CMS มีแนวโน้มที่จะนำไปสู่จุดจบเพราะไม่มีสิ่งที่สมเหตุสมผลในการเยาะเย้ย ฉันไม่เห็นสิ่งที่สามารถทดสอบได้โดยไม่ล้อเลียนการเข้าชม http ไปยังหน้าเว็บและ ณ จุดนั้นการทดสอบมีค่าน้อย

ฉันคิดว่ากฎง่ายๆที่มีประโยชน์กับเว็บแอปพลิเคชันคือถ้ามันสามารถใช้จำลองเพื่อลดความซับซ้อนแล้วมันอาจจะเป็นหน่วยทดสอบ

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


0

ฉันเขียนหนังสือเกี่ยวกับ TDD สำหรับการพัฒนาเว็บไซต์ด้วย Python + Django มันครอบคลุม TDD ทั้งด้วยการทดสอบแบบ end-to-end / functional (ซีลีเนียม) และการทดสอบระดับ "ยูนิต" ที่ต่ำกว่า ฉันยังครอบคลุมถึงการพัฒนา dev ที่ทันสมัยเช่นการรวม git เข้ากับเวิร์กโฟลว์ของคุณวิธีการปรับใช้กับเซิร์ฟเวอร์และทำให้เป็นอัตโนมัติและทดสอบการรวมอย่างต่อเนื่อง mocks และการแยกการทดสอบและอื่น ๆ อีกมากมาย:

http://www.obeythetestinggoat.com/

(หรือhttp://shop.oreilly.com/product/0636920051091.do )


ลิงก์ใช้งานไม่ได้
Keldon Alleyne
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.