Building Continuous Integration with Jenkins - up1/training-courses GitHub Wiki

Description

เป็น course สำหรับปูพื้นฐานที่จำเป็นเรื่อง Continuous Integration และ Continuous Delivery ในการพัฒนา Software ว่ามีแนวคิด เทคนิค และแนวปฏิบัติอย่างไรบ้าง เพื่อช่วยเพิ่มคุณภาพและความเร็วในการส่งมอบ Software ที่พัฒนา ทั้งเรื่องขั้นตอนการทำงานตั้งแต่ source code ไปจนถึงการติดตั้ง Software เช่น

  • การจัดการ source code ที่ดี
  • การตรวจสอบและวิเคราะห์ source code
  • การ build/compile/package
  • การทดสอบในระดับต่าง ๆ เช่น Unit test, Integration test, Acceptance test และ End-to-End test เป็นต้น โดยใน workshop จะเน้นเรื่องของ User Interface test และ API test ตามสถาปัตยกรรมของระบบงาน
  • การติดตั้งระบบงาน (Deploy and Release)

Target groups

  • Software Analyst
  • Software Tester and QA
  • Software Programmer/ Developer/Engineer
  • System Administrator

Learning objectives

  • รู้และเข้าใจและออกแบบ Continuous Integration และ Continuous Delivery
  • ทำการสร้างชุดการทดสอบแบบอัตโนมัติทั้ง User Interface test และ API test ได้
  • ทำการออกแบบขั้นตอนการส่งมอบงานที่มีคุณภาพ

Time : 2 days

Topics

Day 1

  • Introduction to CI และ CD

    • Continuous Integration คืออะไร
    • Continuous Integration vs Continuous Delivery vs Continuous Deployment คืออะไร ต่างกันอย่างไร
    • Goals of Continuous Integration
    • Practices of Continuous Integration and Continuous Delivery
  • Build pipeline

    • Build pipeline คืออะไร
    • การออกแบบ build pipeline
      • Fast feedback
      • Quality build-in
      • Processes
        • Build, Deploy and Test
    • Workshop
      • สำหรับการออกแบบ build pipeline ของแต่ละระบบงาน
      • สร้าง build pipeline ตามที่ออกแบบ
  • Workshop CI/CD with Jenkins

    • Installation and Configuration of CI Server with Jenkins
    • Create first job
    • Working with source code repository
    • Dependency checking
    • Static code analysis
    • Add unit testing report
    • Code coverage
    • Automated testing
      • Web
      • API
      • Database
    • Automated deployment

Day 2

  • Automated testing

    • Testing pyramid
    • Type of testing
      • Unit test
      • Integration test
      • Component test
      • Contract test
      • End-to-End test
    • Workshop
      • เพิ่มการทดสอบแบบอัตโนมัติไปใน build pipeline และ การทดสอบ
  • User Interface Testing (Web Browser)

    • ทำการสร้างและพัฒนาชุดการทดสอบแบบอัตโนมัติ
    • UI Testing tools
      • Robot Framework and Selenium
      • Playwright
    • Selenium grid
      • สำหรับการสร้างการทดสอบ User Interface แบบ parallel เพื่อเพิ่มประสิทธิภาพของการทดสอบ
      • ทำความรู้จัก และ ใช้งาน
      • การใช้งาน
        • ติดตั้งแบบ manual
        • ติดตั้งด้วย Docker
    • Workshop
      • การติดตั้งและพัฒนา
      • เพิ่มการทดสอบแบบอัตโนมัติไปใน build pipeline
  • API Testing

    • ทำการสร้างและพัฒนาชุดการทดสอบแบบอัตโนมัติ
    • เครื่องมือที่ใช้งาน
      • Postman with newman
    • Workshop
      • การติดตั้งและพัฒนา
      • เพิ่มการทดสอบแบบอัตโนมัติไปใน build pipeline
  • Manage Environment for Automation testing and process

    • Web layer
    • API layer
    • Database layer
    • Process
      • Build
      • Test
      • Deploy
      • Test again
    • Manage data for testing
      • Mocking data
      • Mocking database
      • Mocking API server