Category Software Engineering

[KBTG-GO#03] Software Testing

0. Go Basic เหมือนมันมา Go Testing เลย ลองอะไรแล้วสงสัยมาแปะในนี้ และกัน แต่อาจจะมีแซมๆที่จุดอื่นบ้าง และก็ Go เป็นภาษาที่ใช้ PascalCase มีกฏระดับนึง แต่อาจจะไม่ Strick เท่ากับ Space ของ Python – Package – Variable + Operator + Control Flow – Function – Loop – Pointers เหมือนย้อนกลับมาเรียน C ยังไงไม่รู้ 555…

[KBTG-GO#02] Software Design

อันนี้เน้นจด Keyword เหมือนเดิม หัวข้อประมาณนี้ เกือบลืมสารบัญ 55 1. Software Development Approach Problem Domain alight with Solution Space 2. Design Step Understand the problem > Clarify requirement + Define Scope > High Level Design > Proposal & Validation > Deep Drive Design…

Software Telemetry คือ อะไร

Earth observations taken by Expedition 44 crewmember

ตัวคำนี้ผมได้ยินมาตั้งแต่สมัยตอนทำ Thesis ว่ามันเอา metric ไปใช้ต่อ แต่คิดว่ามาเขียนให้เป็นรูปเป็นร่างดีกว่า เผื่อต้องมาลองย้อนนึกๆ อีกครับ โดยก่อนที่เราต้องมารู้จัก Telemetry สิ่งที่ต้องรู้อย่างแรก นอกจาก Software จะถูกออกแบบให้มันทำงานตาม Business ใน Domain นั้นๆ แล้ว สิ่งที่ตัว Software ที่ดีควรจะทำเพิ่ม เพื่อเอามาติดตามปัญหา หรือจะทำ Preventive Maintenance มี 3 ส่วน ได้แก่ แล้วที่นี้ตัว Software Telemetry คือ อะไร Reference

Code Coverage คือ อะไร และสำคัญยังไง ?

ช่วงนี้พยายามจะดันให้ทุกคนในบริษัทเขียน Test แบบ (Automate) มันมีคำถามว่า แล้วเราจะรู้ได้ยังไง ว่า Test ที่เขียนไปมันมีคุณค่า ไม่ใช่ Test เข้าไป execute ที่ code จุดเดิมซ้ำๆ เลยเป็นที่มาของ Blog นี้ครับ โดยจะมีหัวข้อย่อยๆ ดังนี้ Code Coverage คือ อะไร ? KEY: Code Coverage มันบอกว่าเราเข้าใจ Code ที่เขียนมากแค่ไหน จากตัว Testแต่ Code ที่เขียนมา มันจะถูกต้องตาม Business ไหน มันอีกเรื่องนะ…

ลองใช้ Headless Chrome ทำ ScreenShot

เรื่องก็มีอยู่ว่า Project นึง คนส่วนใหญ่ไม่ค่อยยอมทำ Test บางทีบอกว่า Coverage Report มันเปิดยาก / ตัวเค้าเองไม่รู้ว่าตอนนี้ Coverage มันลดลง แล้วต้องมาทำ Test เพิ่ม เป็นต้น ผมเลยมีไอเดียเลยว่าเดี๋ยวจะส่งตัว Report Coverage Summary ไปให้ โดยตอนนี้ใช้ Tools reportgenerator.io หลังจากที่มัน Generate เสร็จแล้ว มันจะได้ HTML Report หน้าตาสวยงามครับ ตามรูป จากหน้าตานี้แหละ ผมได้มี Idea ว่าจะหาทาง Capture Coverage Status…

ผมว่ามันน่าจะขาดอะไรไปนะ

เรื่องมีอยู่ว่าที่ บ มี Inhouse Training สอนเรื่องการเก็บ Requirement แหละ ผู้สอนมีบอกถึง Cost ที่ต้องเสียไปหากมี Defect หลุดไปแต่ละช่วงตามรูปด้านล่าง ซึ่งมันถูกต้อง ถ้าในช่วงของ Project หรือ SDLC (ไม่ว่าจะเป็น Waterfall / Agile) ทำให้ทุกอย่างชัดเจน และ Test ได้ตั้งแต่ช่วง Requirement จะดีที่สุดครับ แก้ในเอกสาร ช่วงอื่นๆ กระทบไป Code / Architecture หรือ สอนงานไปแล้ว (Field Operation) ยิ่งหลุดไปเท่าไหร่คนที่เกี่ยวข้องจะเยอะขึ้น แต่ในการทำงานจริง…

ตั้งชื่อ Unit Test กันยังไงนะ ?

Unit Test

อันนี้เป็นคำถามที่น่าสนใจเหมือนกัน ผมเลยลอง Research มาดูนะ เพราะ Pattern ที่ใช้กันตอนนี้ T<TICKETID>_<DESCRIPTION NOTE> หลังจากลอง Research มาพบว่ามีคนเขียนไว้เหมือนกันนะ 7 Popular Strategies: Unit Test Naming Conventions – DZone ลองดูแล้วมีตัวที่น่าสนใจอยู่นะ อย่าง Pattern ที่ 7 คนที่เข้ามาอ่าน Code ของ Unit Test จะได้เข้าใจด้วยเลย Reference

บันทึกการเรียน Humanistic Software Architecture

ถ้าถามผม ตอนแรกที่มาเรียน ผมคิดเป็นภาพ Requirement เลย 5555 ปัญหกส่วนใหญ่มาจากคน และเข้าใจว่ามีอะไรสักอย่างที่มาสะท้อน Software Architecture เพราะหลายครั้งที่ทำงาน เรามีอิหยังวะ แต่ไม่รู้ว่ามัน เพราะอะไร มันแค่ไม่ใช่แหละ เลยลองสมัครดูรอบแรกแค่เต็มไปซะก่อน เลยเป็น Waiting List ของรอบ#02 ครับ หัวข้อก็มี ดังนี้ครับ การเดินทาง Day1 ก่อนเรียนให้มอง useful > correct นะครับ เริ่มต้นด้วยอะไรที่มองว่าเป็น problem จะช่วยให้เราแยก หรือ Sense ได้นะ ว่า อะไรเป็น ภาพในหัวผมไปตอนทำ Requirement…

Estimate แล้วทำไมต้องเผื่อ

Blog นีัเขียนดองมานานเกือบปีและ แต่พยายามให้ใจเย็น และมา Re-Write ให้มัน Soft ลงหน่อยมั้งเรามาดูกันครับว่าทำไมก่อนจะทำอะไรไป ต้องมีการ Estimate (ประมาณ) เวลา / resource ที่ใช้ แล้วทำไมต้องเผื่อเวลาขึ้นมา เพื่อให้งานมันไม่บีบรัดจนเกินไป มาดูกันครับว่าทำไมต้องเผื่อ คนซื้อไม่ได้ใช้ คนใช้ไม่ได้ซื้อ คนให้ Requirement ไม่ได้ใช้จริง ๆคนใช้ System ไม่ได้ให้ Requirement จริงๆ คนที่ Deal / Estimate ไม่ได้ทำเอง ? คน Estimate ประเมินแบบ Estimate ทีมพัฒนาไม่ได้รู้ในทุกเรื่องของ Technology…

[SE] ศัพท์แต่ละแขนงของสายวิชา Software Engineering

พอดีได้ช่วยเพื่อน Review Slide สอนวิชา Software Engineering ของ ป. ตรี ครับ เลยขอสรุปศัพท์แต่ละแขนงของสายวิชา Software Engineering ไว้ ดังนี้ครับ ความต้องการซอฟต์แวร์ (Software Requirements) การออกแบบซอฟต์แวร์ (Software Design) การพัฒนาซอฟต์แวร์ (Software Development) การสร้างซอฟต์แวร์ (Software Construction) การทดสอบซอฟต์แวร์ (Software Testing) การบำรุงรักษาซอฟต์แวร์ (Software Maintenance) การจัดการโครงแบบซอฟต์แวร์ (Software Configuration Management) การจัดการโครงการ (Project Management)…