MỤC LỤCChương 1: Giới thiệu công ty thực tập Giới thiệu công ty NashTech Quy trình phát triển phần mềm tại NashTech Chương 2: Nội dung thực tập Tìm hiểu công ty và các kỹ năng cơ bản tro
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP AUTOMATION TESTING
Công ty thực tập: Công ty TNHH Harvey Nash Việt Nam Người phụ trách: Ms Đoàn Thị Ngọc Hoa
Thực tập sinh: Nguyễn Thị Quỳnh Ngân
Tp Hồ Chí Minh, ngày 15 tháng 9 năm 2021
Trang 2LỜI MỞ ĐẦU
Kiểm thử phần mềm có mặt tại Việt Nam cách đây chưa lâu, nhưng có thể nói trong thời gian gần đây, cùng với sự phát triển của ngành CNTT, đặc biệt là lĩnh vực gia công và phát triển phần mềm, Kiểm thử phần mềm đang dần thu hút
sự quan tâm tìm hiểu của các bạn trẻ, đặc biệt là các bạn nữ
Tester hay còn gọi là chuyên viên kiểm thử phần mềm, công việc của Tester
là tìm kiếm các lỗi của hệ thống phần mềm hoặc thẩm định, xác minh xem hệ thống phần mềm có đáp ứng các yêu cầu kỹ thuật và yêu cầu nghiệp vụ hay không
Công việc của Tester có thể chia ra 4 mức: Unit Test (Kiểm tra mức đơn vị), Integration Test (Kiểm tra tích hợp), System Test (Kiểm tra mức hệ thống), Acceptance Test (Kiểm tra chấp nhận sản phẩm) và khâu Regression Test (Kiểm tra hồi quy) Chính vì vậy kiểm thử phần mềm là khâu sống còn của sản phẩm trước
khi đưa vào sử dụng, Tester là vị trí không thể thiếu và công việc này quyết định khá nhiều vào sự thành công của dự án
Quan trọng là vậy, nhưng hiện nay số lượng các Tester tại Việt Nam vẫn chưa đáp ứng được nhu cầu của thị trường, các dự án phần mềm trên thế giới, trung bình cứ 3 lập trình viên thì có 1 kiểm thử phần mềm, nhưng hiện nay, tỉ lệ này ở Việt Nam đang là 5:1 Việt Nam được dự báo sẽ trở thành một nước mạnh về CNTT, trong đó gia công phần mềm chiếm tỉ trọng lớn, do đó nhu cầu về nhân lực Tester cũng được tăng theo Tại hội nghị quốc tế về kiểm thử phần mềm tự động (12/2011, TP HCM), các báo cáo cho thấy: với đà tăng trưởng mạnh mẽ của ngành gia công phần mềm, trong vài năm tới, Việt Nam thiếu khoảng 10.000 Tester.[1]
Sau ba năm học tập tại trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia vào các công đoạn kiểm thử ở một công ty phần mềm chuyên nghiệp, em có dự định là sẽ thực tập trong kỳ nghỉ hè Vì vậy, em tham gia khoá đào tạo The Rookies, tổ chức bởi công ty NashTech để tích lũy thêm kiến thức về testing nói chung và automation testing nói riêng
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Harvey Nash Việt Nam đã tạo điều kiện cho em có cơ hội được tham gia khoá đào tạo và thực tập tại công ty
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh chị mentor, em đã tiếp thu được những kiến thức quan trọng để có thể tham gia vào công đoạn kiểm thử phần mềm Chân thành cảm ơn các anh chị trong nhóm trainer
đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập này
Đặc biệt cảm ơn chị Đoàn Thị Ngọc Hoa, đã training Cypress, hướng dẫn, giúp đỡ em tận tình khi em gặp khó khăn trong công việc, giải đáp các thắc mắc và góp ý tận tình để cải thiện phong cách lập trình của em; cảm ơn anh Phạm Phú Vinh, đã training cho em bước đầu để tạo dựng 1 bộ testcase, cách tư duy và nhận xét các testcase; cảm ơn các anh chị HR và mentor lớp Anh văn, các lớp Kỹ năng mềm, đã chia sẻ những kinh nghiệm cùng phương pháp làm việc để em không bị bối rối khi tham gia vào project thực tế; cảm ơn anh Nguyễn Nhật Trường, đã đồng hành cùng team auto chúng em trong project thực tế
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này
Quỳnh Ngân TpHCM, 15/09/2021
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
Chương 1: Giới thiệu công ty thực tập
Giới thiệu công ty NashTech
Quy trình phát triển phần mềm tại NashTech
Chương 2: Nội dung thực tập
Tìm hiểu công ty và các kỹ năng cơ bản trong công ty Nghiên cứu kỹ thuật
Các công cụ làm việc
Tìm hiểu về Test Case, Test Suite, Test Data
Tìm hiểu Selenium Webdriver
Tìm hiểu Robot Framework với RIDE, POM Tìm hiểu Testing API
Thực hiện project
Lịch làm việc
Chương 3: Chi tiết về project
Giới thiệu về project
Thực hiện
Kế hoạch
Trang 6Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty NashTech
Tập đoàn Harvey Nash được thành lập năm 1988 tại UK, tập hợp những chuyên gia trong lĩnh vực công nghệ, cung cấp giải pháp thông minh nhằm tạo dựng giá trị thực tiễn cho khách hàng.[2]
NashTech Vietnam là thành viên của tập đoàn Harvey Nash, thành lập trụ sở tại Hà Nội, Việt Nam vào năm 2000 Đến 2007, NashTech đã có thêm chi nhánh tại Thành phố Hồ Chí Minh, với tổng đội ngũ nhân viên lên đến 2500 người
Ngày 31/12/2019, tổng tài sản của NashTech Vietnam (công ty mẹ) đạt 308,7 tỉ đồng, vốn chủ sở hữu ở mức 136,6 tỉ đồng, tăng trưởng lần lượt 11% và 10% so với thời điểm đầu năm, là đối tác của: Honda, Prudential, Ford, Hitachi, HSBC, ANZ
2 Quy trình phát triển phần mềm tại NashTech
Tại NashTech, quy trình phát triển phần mềm được thực hiện theo hai
mô hình chính:
Trang 7- Mô hình phát triển tuần tự thống nhất RUP (rational unified process), bao gồm các giai đoạn: Khởi tạo (inception), chế tạo (elaboration), xây dựng (construction), chuyển giao (transition)
- Mô hình phát triển lặp lại và tăng dần Scrum, dự án được chia thành các giai đoạn (sprint), mỗi giai đoạn thường từ 2 đến 4 tuần và bao gồm hết các giai đoạn trong RUP
Trang 8Chương 2: Nội dung thực tập
Đợt thực tập The Rookies - Batch 2 với chủ đề “Kiểm thử phần mềm tự động” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về kỹ năng kiểm thử phần mềm, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường xây dựng và phát triển phần mềm chuyên nghiệp
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Thời gian : 1 ngày
Sinh viên được cung cấp slide và video clip giới thiệu về công ty, cũng như được hướng dẫn các vấn đề khác như thời gian, văn hoá và quy định làm việc của công ty
Kết quả : Biết được thông tin về công ty và các quy định cần tuân thủ của
công ty
Nội dung : Huấn luyện kỹ năng mềm
Thời gian : 4 buổi
Sinh viên được gặp gỡ các nhân sự trong công ty để tìm hiểu về một số kỹ năng mềm khi làm việc trong môi trường công ty, vấn đề sắp xếp thời gian, vấn đề giao tiếp và làm việc theo nhóm
Kết quả : Phân bố thời gian khi làm việc, có thêm kỹ năng trao đổi bằng
giao tiếp hoặc qua email
Nội dung : Tiếng Anh trong ngành Công nghệ thông tin
Thời gian : 2 buổi / tuần, xuyên suốt thời gian tham gia đào tạo
Sinh viên được học kiến thức về các khái niệm cơ bản trong ngành Công nghệ thông tin, luyện tập giao tiếp, trao đổi bằng tiếng Anh
Kết quả : Nâng cao khả năng sử dụng tiếng Anh khi làm việc trong công ty.
Trang 92 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian : 2 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm
việc
Các mentor hỗ trợ sinh viên cài đặt các công cụ cần thiết khi làm việc, cung cấp account cần thiết Các công cụ làm việc như Teams (dùng để trao đổi và nghe hướng dẫn), Skype (trao đổi thường xuyên và nhanh chóng với các mentor), GitLab (bài tập luyện tập), Jira (luyện tập raise bug), DevOps (quản lý team), SourceTree (hỗ trợ làm việc với repo DevOps), VSCode (lập trình các test case automation đơn giản)
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Hoạt động trong team hiệu quả với các công cụ hỗ trợ.
2.2 Tìm hiểu về Test Case, Test Suite, Test Data
Thời gian : 3 tuần
Nội dung : Làm quen với các khái niệm trong testing như Test Case, Test
Suite, Test Data, Test Plan, Thực hiện viết 1 số test case lên spreadsheet
Thực hiện :
- Xem các khái niệm và tiến hành viết testcase, chỉnh sửa theo góp ý của các mentor
Kết quả : 4 sheets testcase cho các chức năng: Search Employee,
Login-Logout-Forgot Password, Manage Project, Create Employee
2.3 Tìm hiểu Selenium Webdriver
Thời gian : 1 tuần
Nội dung : Làm quen với công cụ Selenium Webdriver, tạo các test case
cho các sản phẩm web
Thực hiện :
- Sử dụng Selenium Webdriver để tạo các test case cơ bản với website https://demoqa.com/
Trang 10Kết quả :
- Các automation test case cơ bản với Selenium, một số bài tập luyện tập với Selenium
2.4 Tìm hiểu Robot Framework với RIDE, POM
Thời gian : 3 tuần
Nội dung : Sử dụng Robot framework để tạo các bộ test case automation
tùy chỉnh
Thực hiện :
- Sử dụng RIDE rồi chuyển sang VSCode
Kết quả :
- Sample project sử dụng Robot framework, có áp dụng POM
2.5 Tìm hiểu Testing API
Thời gian : 2 tuần
Nội dung : Sử dụng Cypress để test API
Thực hiện :
- Sử dụng Cypress, tạo các API testcase
Kết quả :
- Bài tập API testing
Trang 113 Thực hiện project
Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ bản về CSS Selector, Selenium Webdriver, Robot framework, API testing Trong tháng thứ hai, thực tập sinh tham gia vào dự án, có làm việc với dev và các PO, Scrum Master
Chi tiết đồ án sẽ được nói ở phần sau
4 Lịch làm việc
dẫn
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách tổ chức của công ty
- Làm quen với các công cụ làm việc trong công ty
- Học cách trao đổi, làm việc qua email
- Tìm hiểu về Automation
testing
Chị Hoàng Thị Yến, anh Phạm Phú Vinh
2
- Luyện tập viết test case
- Các kỹ năng mềm
- Tìm hiểu về Test Plan, Test Suite, Test Case
Anh Phạm Phú Vinh, các anh chị của các lớp kỹ năng mềm
Trang 123 - Luyện tập viết
test case
Anh Phạm Phú Vinh
4
- Tìm hiểu về
Software Testing Life Cycle
- Luyện tập viết
testcase
- Các kỹ năng mềm
Anh Phạm Phú Vinh, các anh chị của các lớp kỹ năng mềm
5
Tìm hiểu về Robot
framework với RIDE
và POM
Chị Đoàn Thị Ngọc Hoa
6
Làm bài tập Robot
framework, áp dụng
POm và sử dụng
VSCode
Chị Đoàn Thị Ngọc Hoa
7 - Tham gia dự án thực
tế
- Làm quen với testing
API bằng Cypress API
và Cypress UI
Chị Đoàn Thị Ngọc Hoa
Nhựt Trường 9
10
11
- Làm bài tập Cypress
API, Cypress UI
- Review lại kiến thức
kỳ thực tập
Chị Đoàn Thị Ngọc Hoa
12
- Review kiến thức kỳ
thực tập
- Bài thi cuối khoá
The Rookies
- Kết thúc khoá thực
tập
Chị Hoàng Thị Yến, chị Đoàn Thị Ngọc Hoa
Trang 13Chương 3: Chi tiết về project
1 Giới thiệu về project
Project thực hiện xây dựng một website quản lý hàng hoá, bao gồm 3 hệ thống nhỏ là quản lý hàng hoá, quản lý dự án và quản lý người dùng
Website thực hiện theo Scrum, có các thành phần là Scrum Master, PO, developer team và testing team (bao gồm 2 QC và 3 Automation tester)
2 Thực hiện
3 thành viên của team automation tester MS2:
- Nguyễn Thị Quỳnh Ngân
- Trần Kim Long
- Nguyễn Trọng Kha
Và sự giúp đỡ tận tình của trainer Nguyễn Nhựt Trường
3 Kế hoạch
Sprint 1:
- Nghiên cứu tài liệu SRS
- Bắt đầu khởi tạo project automation
- Làm quen với DevOps Azure
Kết quả : Project Automation trên DevOps, liên kết với các usecase của developer team
Sprint 2:
- Sử dụng VSCode, bắt đầu chạy các case integration testing cho các tính năng đăng nhập và đăng ký
- Hỗ trợ QC team kiểm tra các UI so với SRS
Trang 14Kết quả : Test report, một số điều chỉnh trong UI và trao đổi với dev, retrospective meeting với PO lần 1, sprint 2 bị ảnh hưởng bởi sprint 1 nên kết thúc trễ 3 ngày
Sprint 3:
- Sử dụng VSCode, chạy các case integration testing cho các tính năng đăng nhập, đăng ký Automation test các chức năng Tìm kiếm người dùng, xoá người dùng
- Hỗ trợ QC team kiểm tra các UI so với SRS
Kết quả : Test report cho tính năng Tìm kiếm người dùng, xoá người dùng
Sprint 4:
- Sử dụng VSCode, chạy các case integration testing cho các tính năng đăng nhập, đăng ký, Tìm kiếm người dùng, xoá người dùng Automation test các chức năng Tạo người dùng, Tìm kiếm dự án
- Tiến hành mapping các bug report, issue report trên DevOps vào các use case
Kết quả : Test report cho tính năng Tìm kiếm người dùng, xoá người dùng, Tạo người dùng, Tìm kiếm dự án, retrospective meeting với PO lần 2
Trang 15TÀI LIỆU THAM KHẢO
[1]“Thực trạng nghề Tester tại Việt Nam”, 2015 [Trực tuyến] Địa chỉ: http://itplus-academy.edu.vn/Thuc-trang-nghe-Tester-tai-Viet-Nam.html [Truy cập 18/09/2021]
[2]”Hành trình 20 năm tại Việt Nam của NashTech”, 2021 [ Trực tuyến ] Địa chỉ:
https://vnexpress.net/hanh-trinh-20-nam-tai-viet-nam-cua-nashtech-4223103.ht
ml [Truy cập 18/09/2021]
Trang 16TỔNG KẾT
Như vậy, chỉ trong vòng một tháng ngắn ngủi, nhóm đã kịp hoàn thành một game 3D chạy trên nền tảng PC và Android Game đã có khá đầy đủ các tính năng
đã đề ra ban đầu Do thời gian có hạn nên tính năng game còn đơn giản, hình ảnh chưa được đẹp như mong đợi Nhưng do game phát triển theo framework có tính
kế thừa nên sau này khi có thời gian sẽ có thể phát triển lên mức cao hơn
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer Gameloft, sự nỗ lực của nhóm Beast Knight để có thể hoàn thành game này Cảm ơn thầy Nguyễn Hữu Thương đã giúp em hoàn thành bài báo cáo này