[Nunit] เริ่มต้น Test กับ Tools ตัวใหม่

.NET Core

ช่วงหยุดยาว 4 วันตามธนาคาร 16-17-18-19 เดือนกรกฏาคม ปี 59 ผมก็ไม่ได้ไปไหนหรอก อยู่บ้าน เผางานเหมือนเดิมครับ แม้ว่า Blog ตอนก่อนหน้าจะบอกว่า Project จบแล้ว แต่งานยังเหลือครับ หรือที่เรียกว่า End-Phrase (จำเค้ามานะ เดี๋ยวปีหน้าถ้าได้ต่อ โท จะมา Update ใหม่) โดยวันนี้ผมใช้ Test Tools ตัวใหม่ ปกติผมใช้ตัว JUnit ถ้าเป็นฝั่ง Java แต่ถ้าเป็นฟาก .Net ใช้ตัว Test ที่ Build-in มาให้ของ Visual Studio ครับ แต่ของ .Net มันเอาไปใช้กับคุณลุง Jenkins ไม่ได้ครับ ผมเลยย้ายคล้ายมาใช้งาน Nunit ครับ ในบทความนี้ เป็นการเตรียมตัว Tools ต่างๆ เพื่อทำ Nunit บน Visual Studio ครับ ผมอาจจะให้ลงเยอะนิดนึงนะครับ ฮ่าๆ เพราะ อันที่จริงเราสามารถดึงจาก Nuget ทั้งหมดได้ครับ แต่ผมให้ลงหมด เพราะ เผื่อเราเอาไป Integrate กับ Continuous Integration Tools อย่าง Jenkins เวลาเชื่อมกับ Nunit มันต้องใช้ Command Line ครับ

กลับเข้าสู่หน้าห้องอีกครั้ง

ตอนนี้ผมก็ทำงานมา 3 ปีและ แต่ส่วนใหญ่จะขลุกอยู่กับ Code และ Test เป็นหลัก แต่ใน Project Treasury เนี่ย ผมได้มีโอกาสหลายๆอย่างในเวลาเกือบ 2 ปี จากงกๆจิ้มอยู่กับคอม ได้ออกมาคุยกับ User มาขึ้น และเป็นโอกาศอีกครั้งที่ได้เป็น Trainer มาสอน User เกี่ยวกับระบบงานที่ไดพัฒนากันครับ โดยผมได้ดูแล และจัดการใน 3 หมวด ได้แก่ อบรมสถาปัตยกรรมระบบ อบรมการติดตั้งและดูแลระบบ อบรมการใช้งาน Excel Pivot พอได้มาทำงานส่วนนี้แล้ว ไฟลุกครับ มันย้อนไปสมัยตอนเรียน มศว ที่ได้มาเทรน เพื่อนๆก่อนสอบที่หน้าห้องครับ หลังจากมอดไปหมดจากความโหดร้ายของ Senior Project (ผมไม่ขออธิบายและกัน เดี๋ยวดราม่ายิ่งกว่ากระทู้ Pantip ครับ) มาเข้าเรื่องดีกว่า การอบรมใน 3 หมวดที่ผมดูแล มันมีุมมองที่แตกต่างกันไป โดยมี User สาย IT ของธนาคาร อบรมสถาปัตยกรรมระบบ อบรมการติดตั้งและดูแลระบบ และ User ที่เป็นสายการเงิน การบัญชี อบรมการใช้งาน Excel Pivot การสรุปเรื่องที่นำมาสอน User ได้นะ สิ่งที่เราต้องรู้ คือ ผู้เข้าอบรมเคยรู้อะไรมาบ้าง – กล่าวผ่านๆ ไม่ต้องเสียเวลาเยอะ ผู้เข้าอบรมไม่รู้อะไร – เน้นย้ำ ลำดับความสำคัญ เพราะต้องใช้งานจริง เช่น ดูแลระบบ การประยุกต์จัดทำรายงาน เป็นต้น เก็งคำถามที่เป็นไปได้ว่าผู้เข้าอบรมจะถาม – เตรียมตัวดีมีชัยไปกว่าครึ่งครับ หน่วยงานของผู้เข้าอบรม – รู้เพิ่มปรับสไตล์ เนื้อหาให้ทัน เท่าที่เจอผู้เข้าอบรม มีจากหลายหน่วยงาน สิ่งที่เราต้องทำ คือ สนใจผู้เข้าอบรมที่ทำงานในเรื่องนั้นๆ ครับ เช่น บางคนอยู่หน่วยติดตั้งชอบทำลัด -…

[ATH] สรุปงาน Agile Thailand 2016

วันนี้งานฟรีอีกแล้วครับ งาน Agile Thailand 2016 ที่ CP Tower (GoSoft) ชั้นที่ 11 ครับ โดยสำหรับคนที่มางานครั้งแรก Theme งานเป็น Open Space ครับ คือ มีสถานที่ให้ใครอยากแชร์อะไร มาแปะที่ Board ครับ แล้วมา Discuss ครับ ส่วนตัวอยากให้มีคน Update ลง Google Spreadsheet ด้วย เพราะบางทีมันเปลี่ยนห้องกัน และลายมือบางคนแอบอ่านยากครับ แต่ก็สงสัยนะว่าวันจัดงานของปี 2015 กับ 2016 จัดวันที่ 9 เหมือนกัน งานปีนี้วันที่ 9 กรกฎาคม 2559 ครับ มันมีเคล็ด หรือป่าว การลงทะเบียนทางทีมงานจัดการดีมากครับ ต่างจาก Google I/O Extend Bangkok 2016 ครับ ลงทะเบียนง่าย รับของ Happy ครับ พอมาถึงขนมพร้อมครับ ช่วงแรกของงานเป็นการแนะนำงานก่อน และให้ Speaker แต่ละคนมาขายของครับ ดูดคนฟัง เนื่องจากปีนี้ Slot มันเยอะมากกว่าปีที่แล้ว พอสมควรครับ ผมเลยเลือกหัวข้อที่ผมสนใจ และเข้าฟัง ตามนี้ครับ (ถ้าว่างๆ มาเขียน Blog ต่อครับ) และก็ปีนี้มี Agile Clinic น่าจะเพิ่งเปิดปีนี้นะ ใครมีปัญหาอะไปมาแปะไว้ แล้วมี Coach มาให้คำปรึกษาตัวต่อตัว แต่ส่วนตัวคิดว่าจัดห้องรวมไปเลยดีกว่า แล้วผลัดกันถามตอบน่าจะโอเคกว่า หลังจากฟังเสร็จมีสรุปปิดงานรับ Feedback ครับ โดยสำหรับผมจากที่มางานแนวๆนี้ 2-3 ปี สิ่งที่เห็นได้ชัดที่สุด คือ อายุของคนเข้างานครับ จากแต่ก่อนมีคนวัยประมาน 40+ น้อยมาก แต่ปีนี้ดูเยอะขึ้นนะ ไม่แน่ใจว่าเป็นระดับ Management…

[ATH] BDD with Cucumber มันไม่ง่าย แต่เริ่มได้

หัวข้อ BDD with Cucumber เป็นอีกเรื่องที่แตกมาจาก Blog หลักครับ สรุปงาน Agile Thailand 2016  โดยเรื่องนี้ Speaker คือ คุณ Tanjai ครับ สำหรับตอนนี้ DD เยอะแยะเลย มีทั้ง TDD, ATDD และ BDD เป็นต้นครับ โดยของพวกนี้มีมาเพิ่มตรวจสอบความถูกต้องครับ เจ้า ตัว BDD หรือ Behavior Driven Development มาตรวจสอบความถูกต้องระหว่าง Business Test, Technical Test และ Test Case ตรงกัน หรือไม่? เพิ่มการทำงานร่วมกันของคน 3 กลุ่ม คือ Business Analyst, System Analyst, Programmer และ Quality Assurance ครับ โดยก่อนเริ่มทำ BDD เราต้อง มาเริ่มกันเลย โดยการถามว่า Feature สร้างมาเพิ่มอะไร ทำอย่างไร มี Scenario อย่างไร เพื่อให้ได้ Example ที่เป็น Concrete Example เช่น Facebook มีระบบ Search แต่การ Search มี Scenario เมื่อป้นชื่อเพื่อนระบบ List ชื่อเพื่อนมาให้ อันนี้ คือ Concrete Example สำหรับ Tools ที่ใช้ คือ Cucumber (Java Base) แต่ต้นตำรับขอบตัว BDD เป็นตัว RSpec ของภาษา Ruby ที่ใช้ Cucumber เพราะมันใช้ได้กับเว็บ และตัว Mobile App ครับ เพียงแก้ปรับ…

[ATH] Good Transformation Coach

สำหรับตอนนี้ Good Transformation Coach โดยคุณ อุรณเทพ (พี่กัน) ครับ Blog อันนี้แตกมาจาก สรุปงาน Agile Thailand 2016 ครับ เป็น Session พิเศษครับ ต่อจากหัวข้อ Agile Transformation เพราะห้องอื่นเต็มหมดครับ โดยการเป็น Coach หรือ Manager ที่ดี ต้องมีความสามารถเหล่านี้ แต่มันไม่สามารถอ่านจากหนังสือได้ ต้องสะสมประสบการณ์ เก็บเกี่ยวไปสักพักนึงครับ โดยมีทั้งหมด 10 ข้อ ดังนี้ การเป็น Coach หรือ Manager ที่ดี ต้องมีความสามารถเหล่านี้ 💡They have an uncanny ability to “read a room.” 💡They care about people more than products. 💡They cultivatecuriosity.They know when they don’t know. 💡They believe that people are basically good. 💡They know that plans fall apart, so they act in the moment with the team 💡They have a thirst for learning. 💡They believe that any group of people can do…

[ATH] Installing & Self-Management

Blog ตอนนี้ผมแตกมาจาก สรุปงาน Agile Thailand 2016 ครับ จะได้ไม่อ่านกันยาก บทความได้ไม่ยาวเกินไปและเฉพาะเรื่องด้วย เข้าเรื่องเลยดีกว่าครับ หัวข้อ Installing & Self-Management โดยคุณ Verokas ได้เสนอประเด็นที่ว่าปัจจุบันการทำงานในชีวิตจริง การจัดงานโครงการต่างๆ มันขึ้นอยู่กับ Project Manager คนเดียว ที่มีคนอำนาจสั่งการ จัดการ ตัดสินใจ บางครั้ง ปัญหาบางเรื่องมันคอขวดที่ PM คนเดียวครับ (Centralization) มาเป็นการกระจายอำนาจ การจัดการต่างๆ (Decentralization) ลงไปเป็นลำดับชั้นไปรากหญ้าครับ แล้วรากหญ้า คือ ใคร เป็น Manager, Senior Dev หรือป่าว ? ไม่ใช่ครับ พยายามกระจายให้ลงไปยังรากหญ้าจริงๆ คือ พวก  Junior ทั้งหลายครับ ไม่ว่าเป็น DEV, QA ฯลฯ แต่การกระจายงานลงไปได้ เราต้องทำการ Distributed management skills ครับ ฝึกก่อนครับ People vs Technical❤️ People – บริหารคน กระจายงาน🖥️ Technical – ดูงานด้านเทคนิคแทน ไม่ว่าจะ IT หรือ Business People vs Technical เป็นงานที่ Manager อยู่ครับ หลายคนเห็นว่า Manager ทำงานดึก เดินไป เดินมา แต่ไม่รู้เนื้องานว่าทำอะไร เวลาที่หมดไป หมดไปกับการบริหาร การตามงาน ⏱️Time Management จัดการเวลา จัดการง่ายๆ ลำดับความสำคัญครับ (Prioritization) ⛔Say no offer alternatives 🚞Goal Setting (Concept ดูคล้ายกับ TDD นะ) 🚩Solve problem…

[ATH] Agile Transformation

สำหรับตอนนี้ Agile Transformation โดยคุณ อุรณเทพ (พี่กัน) ครับ Blog อันนี้แตกมาจาก สรุปงาน Agile Thailand 2016 ครับ การเปลี่ยนองค์การ หรือบริษัทให้มาใช้ Agile เราใช้ Agile ได้สิ่งที่เราต้องรู้ คือ ถ้านำ Agile มาใช้ เราต้องรู้จักคนก่อน โดยใช้เมตริกซ์ DISC มาดูที่แกนต่างๆกันก่อน ตอนบรรยายพี่กันให้ทุกคนคิดว่าตัวเองเป็นแบบไหน และเลือกฝั่งครับ แบ่งคนเป็นกลุ่ม 4 กลุ่ม ดังนี้ครับ Type Key Desription Remark D(Dominant) What Active-Questioning ตั้งคำถามเยอะ ตัดสินใจเร็ว (Get it Done.) I (Inspiring) Who Active-Accepting เข้าอก เข้าใจผู้อื่น ผู้นำกิจกรรม (Get Heard) S (Supportive) How Accepting-Thoughtful สาย support ช่วยช่วยเหลือแนะนำผู้อื่น (Get along go with the flow) ปรับเข้าทาง Agile ได้ง่ายสุด C (Cautious) Why Thoughtful-Questioning ทำไมถึงต้องทำ ต้องรู้ก่อนเหตุผลที่ทำ (Get it right) ปรับเข้าทาง Agile ได้ยาก Agile Disc Model เมตริกซ์ เป็นเพียงแค่ตัวคัดกรองเฉยๆครับ ไม่ใช่ว่าคนในกลุ่ม C (Cautious) -WHY? เอามาเข้า Agile ยากเสมอครับ มันซอยย่อยๆลงไป บางคนเค้าสงสัย เพราะ อาจจะคิดว่าทำไมถึงควรทำ ถ้าได้เหตุผลที่ดี เค้าสามารถปรับใช้เข้ากับ Agile ได้ครับ…

[ATH] CMMI – Waterfall – Agile – Scrum

Blog นี้ ผมแตกประเด็นมาจาก สรุปงาน Agile Thailand 2016 โดยในตอนนี้ ผมขอรวม Slot 2 อัน ในช่วงเช้า เข้าด้วยกันเลยครับ โดยมีของ รู้กันก่อนคำศัพท์ แต่ละคำ คือ อะไร ? ก่อนที่เราเข้าประเด็นกัน สิ่งที่เราต้องรู้กันก่อนคำศัพท์ แต่ละคำ คือ อะไร ครับ 📣 CMMI (Capability  Maturity  Model  Integration) CMMI คือ มาตรฐานที่เอาไว้บอกถึงความเชื่่อมั่น และคุุณภาพของกระบวนการพัฒนา Software ทำให้เป็นระบบ และยืดหยุ่นต่อการปรับเปลี่ยนได้ ตัว CMMI มี 5 Level (เอาคร่าวๆ ก่อนนะครับ จริง CMMI มันมีแผนผัง อารมณ์เดียวกับ Skill Tree ใน Game ครับ) Process Area สำหรับ CMMI ในแต่ละ Level สำหรับองค์กรที่เอา CMMI มาใช้ จะมีหน่วยงานโผล่เข้ามา อีก 2 หน่วยครับ 📣Waterfall รูปแบบการพัฒนาระบบ โดยทำที่ละขั้นตอนให้เสร็จก่อน ถึงไปงานชิ้นถัดไปได้ 📣Agile Agile – มันเป็น Abstract Class มีรูปแบบหลักการทำงานมาให้และ ตาม manifesto  มี 4 ข้อ ได้แก่ 📣Scrum Scrum – มันเป็น Implementation ของ Agile เป็น Framework รูปแบบการทำงานที่ตอบรับกับ Consept ของ Agile ครับ พอรู้ความหลายของแต่ละคำแล้ว ผมมาจับประเด็น แต่ละอันครับ 🚩…

[.Net] เซมารู ช๊อกกา เอา Java มาเขียน DOT NET กัน Go! Go! Let’s Go! Rider

จริงๆน่าจะมีหลายๆคน Review แล้วมั้ง สำหรับผมอยากลองของใหม่ๆ เพราะกำลังเขียน Blog ตอนใหม่ที่ต้องใช้ C# อยู่ครับ ผมเลย ลง Rider  ซะเลย พอได้ยินชื่อทำไมนึกถึง คาเมนไรเดอร์ ไม่รู้ 5555 Semaru Shocker!! Akuma no gundan ….. Go! Go! Let’s Go! IntelliJ Rider สำหรับตัว Rider เป็น IDE ที่พัฒนาโดย jetbrains ครับ หลายคนอาจจะไม่รู้จักกัน แต่ถ้าพุดถึง IDE IntelliJ ของฝั่ง Java ที่ทำให้หลายคนลบ Eclipse ทิ้ง และส่วนเสริม MS Visual Studio อย่าง ReSharper ที่ทำให้ Visual Studio ที่ดูโง่ๆ มันฉลาดขึ้นครับ มี Background ที่ดีขนาดนี้แล้ว รออะไรกัน Download มาทดลองโลดครับ ปล.มันเป็น version early build พูดง่าย คือ ให้เราเป็นหนูทดลอง ฮ่าๆ ขั้นตอนการลงกด Next ไปเลยครับ ผมมี Capture หน้าจอไว้ ยกเว้นหน้า Finish มือไวไปนิดครับ สังเกตุที่รูปนะครับ ตอนลงไฟล์ .jar มาอื้อเลย เมื่อเปิดมาครั้งแรก มันดูฉลาดกว่า Visual Studio มีการนำเข้า Setting ของ Rider รุ่นเก่าได้ (ตอนนี้ผมใช้ Visual Studio 2013 ครับ รอจบ Project Treasury ค่อยเปลี่ยน) ต่อไปการกำหนด Style, การกำหนด key ลัด หรือการ Report Issue กรณีที่มี…

ลาจากกับบัตร Debit แถบแม่เหล็กที่ใช้มา 9 ปี

ช่วงที่ผ่านมาทุกคนคงได้เห็นข่าวที่ว่า ธนาคารแห่งประเทศไทยบังคับให้ทุกๆธนาคาร เปลี่ยนบัตรจากบัตรแถบแม่เหล็กไปเป็นบัตรชิปแทนครับ เพื่อป้องกันจากการถูก skimming ครับ เจ้าตัว skimming คือ การฉกข้อมูลบัตรแถบแม่เหล็กครับ โดยฉกจากตู้ ATM เพราะ ตั้งกระจาย และมีุดอับที่สามารถแอบติดตั้ง Tools ที่ฉกข้อมูลได้ง่ายสุดครับ โดยการ skimming มี 2 Step ครับ ฉกข้อมูลในบัตร โดยดึงมาบัตรแถบแม่เหล็ก เพื่อนำไปทำบัตรปลอม ฉกข้อมูลรหัสผ่าน โดยติดกล้องในตู้ ATM เพื่อเก็บรหัสผ่านไปใช้กับบัตรปลอมครับ ในไทยมีตัวอย่างเหมือนกันนะครับ ขอบคุณข้อมูลจาก Pantip ครับ สำหรับช่วงนี้ คงไม่มีธนาคารไหนให้บัตรแถบแม่เหล็กมาแล้วครับ ช่วงนี้คงเป็นช่วง Parallel Phrase จนถึงสิ้นปี พ.ศ. 2562 บัตรแถบแม่เหล็กจะใช้งานไม่ได้อีกต่อไปครับ แล้วที่นี้บัตรชิป มีสิ่งที่เราควรรู้อะไรบ้าง บัตร ATM ไม่มีอีกแล้ว เป็นบัตร Debit แทนครับ เพราะบัตรชิป รองรับระบบบัตร Debit ได้ในตัวเลยครับ โดยเจ้าชิป EMV เกิดมาจาก Europay, Master Card และ VISA ที่ร่วมกันแก้ปัญหาของบัตรแถบแม่เหล็กป้องกันการแอบขโมยข้อมูลในบัตรครับ เมื่อมันเกิดจากผู้ให้บริการ ชิป EMV  จึงสามารถลิงค์กับผู้ให้บริการได้เลยครับ สำหรับใครที่อยากให้บัตรมีเฉพาะ Feature ATM สามารถแจ้งพนักงานได้นะครับ บัตรชิป ใช้เวลาในการทำงานนานขึ้นสักนิด สำหรับเครื่องรุ่นเก่าๆ แต่จริงๆ ถ้าตัดพวกโฆษณาไปน่าจะทำงานเร็วขึ้นครับ โดยเฉพาะตู้ Kbank ต้องรอ Video Ads ที่เล่นอยู่ แถมกระตุก ให้จบก่อน ถึงทำงานต่อได้ครับ รหัสผ่านเพิ่มขึ้นจาก 4 ตัว เป็น 6 ตัว หลายคนอาจจะงงๆ ตอนใช้งานได้ครับ ต้องใช้เวลาปรับตัวครับ เกริ่นที่มาซะยาวเลย มาดูกันดีกว่าว่า แต่ละธนาคารมีกำหนดการรับเปลี่ยนบัตร และมีค่าใช้จ่ายอย่างไร มาดูบัตรแม่เหล็กที่ใช้มา 9 ปีของ SCB ดีกว่า ผมว่าลายมันสวยมากๆครับ ใช้มานานตั้งแต่…