Hồ Chí Minh, tháng 1 năm 2024LỜI MỞ ĐẦU Trong cuộc cách mạng công nghiệp 4.0, lĩnh vực kiểm thử phần mềm QA Tester trởthành một phần quan trọng trong sự phát triển của xã hội, đặc biệt l
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2TP Hồ Chí Minh, tháng 1 năm 2024
LỜI MỞ ĐẦU
Trong cuộc cách mạng công nghiệp 4.0, lĩnh vực kiểm thử phần mềm (QA Tester) trởthành một phần quan trọng trong sự phát triển của xã hội, đặc biệt là trong bối cảnhcông nghệ thông tin ngày càng chiếm ưu thế Với hơn 1.5 tỷ trang web hiện nay, nhucầu kiểm thử chất lượng phần mềm để đảm bảo tính ổn định và hiệu suất của cácứng dụng web là không thể phủ nhận
Kiểm thử phần mềm không chỉ đóng vai trò quan trọng trong việc đảm bảo tính nhấtquán và đáng tin cậy của sản phẩm mà còn ảnh hưởng đến trải nghiệm người dùng
Để một ứng dụng web thu hút và giữ chân người dùng, không chỉ cần sự linh hoạttrong thiết kế mà còn cần sự đảm bảo về chất lượng phần mềm
Chính vì vậy, quyết định trở thành một QA Tester là sự lựa chọn hợp lý của tôi để đốimặt với thách thức không ngừng của ngành công nghiệp phần mềm Thông qua hànhtrình học tập tại đại học, tôi đã tích lũy kiến thức vững về quy trình kiểm thử, kiểmsoát chất lượng, và sử dụng các công cụ kiểm thử hiện đại
Để chứng minh khả năng của mình trong môi trường thực tế, tôi quyết định tham giavào Cybozu VietNam Co.Ltd – một nơi mang đến không chỉ sự chuyên nghiệp mà còn
cơ hội thực tập và áp dụng kiến thức vào các dự án thực tế Tôi tự hào trở thành mộtphần của đội ngũ kiểm thử phần mềm, hướng tới mục tiêu kiểm soát chất lượng vàmang lại trải nghiệm tốt nhất cho người sử dụng
Trang 3LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc đến Cybozu VietNam Co.Ltd đã tạo điều kiện cho
em có cơ hội thực tập tại môi trường chuyên nghiệp và đầy thách thức này
Em muốn gửi lời cảm ơn đặc biệt đến anh Bùi Toàn Lộc và anh Nguyễn Hoàng Duy vì
sự hướng dẫn và hỗ trợ không ngừng Sự tận tâm và lòng nhiệt huyết của các anh đãgiúp em vượt qua mọi thách thức, và kiến thức mà em thu nhận được từ anh là vôcùng quý báu
Em cũng chân thành cảm ơn sự hỗ trợ và sự chia sẻ của toàn bộ đội ngũ nhân viên tạiCybozu VietNam Co.Ltd Mỗi người trong em đều cảm thấy hạnh phúc và tự hào vìđược làm việc trong một môi trường chuyên nghiệp, nơi mà sự sáng tạo và cam kếtđược đánh giá cao
Cuối cùng, em không quên bày tỏ lòng biết ơn đến gia đình, bạn bè và những ngườithân yêu đã luôn ủng hộ và khuyến khích em trong suốt thời gian thực tập
Em tin rằng những kinh nghiệm và học thức từ thực tập này sẽ là nền tảng vững chắccho sự phát triển tương lai của em Một lần nữa, xin chân thành cảm ơn sâu sắc
TP HCM, ngày 02 tháng 01 năm
2024
Khải
Võ Đặng Thiện Khải
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC LỜI MỞ ĐẦU
LỜI CẢM ƠN
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu công ty Cybozu VietNam Co.Ltd
1.2 Sản phẩm công ty
1.3 Lịch làm việc khi thực tập tại công ty
CHƯƠNG 2: NỘI DUNG THỰC TẬP
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
2.2 Nghiên cứu kỹ thuật
2.2.1 Tuần 1
2.2.2 Tuần 2
2.2.3 Tuần 3
2.2.4 Tuần 4
2.2.5 Tuần 5
2.2.6 Tuần 6
2.2.8 Tuần 8
2.2.9 Tuần 9
2.2.10 Tuần 10
2.3 Tham gia dự án thực tế
2.3.1 Viết testcase cho Garoon
2.3.2 Automation test cho app Đặt lịch
CHƯƠNG 3: TỔNG KẾT
3.1 Điểm mạnh
3.2 Điểm yếu
3.3 Chuẩn đạt được
TÀI LIỆU THAM KHẢO
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu công ty Cybozu VietNam Co.Ltd
Cybozu Vietnam được thành lập vào năm 2009 và hiện đang phát triển để trở thànhmột chi nhánh phát triển quan trọng của Cybozu, Inc
Công ty Cybozu có một đội ngũ phát triển có kinh nghiệm sâu rộng và kiến thứcchuyên sâu trong phát triển ứng dụng dựa trên Web, luôn cập nhật với những kỹthuật ứng dụng Web mới nhất Cùng với đội ngũ phát triển, chúng tôi có một đội ngũKiểm thử Chất lượng chuyên nghiệp, thành thạo với các thủ tục kiểm thử hiện đại
Họ có kỹ năng tốt trong các loại kiểm thử khác nhau và môi trường kiểm thử
Về lĩnh vực phần mềm, công ty Cybozu đang phát triển một phần mềm hợp tác đểphục vụ cho công việc nhóm trên toàn thế giới Chúng tôi đặt mục tiêu trở thành nhàsản xuất phần mềm hợp tác số 1 thế giới Chúng tôi đã phát triển cả phần mềm trênnền tảng địa phương và trên nền tảng dựa trên đám mây
● Địa chỉ công ty: Ph101, Tầng 1, Tòa nhà Centre Point, 106 Đường Nguyễn VănTrỗi, Phường 8, Quận Phú Nhuận, Thành phố Hồ Chí Minh, Việt Nam
● Capital stock: 300.000 USD (tính từ cuối năm 2022)
● Quy mô công ty: 100 -150 nhân viên
Trang 71.2 Sản phẩm công ty
Công ty có nhiều sản phẩm liên quan đến việc phát triển các ứng dụng cooperationtrong kinh doanh và làm việc nhóm trên nền tảng web application Một vài ứng dụngnổi tiếng của công ty:
● Kintone: Nền tảng ứng dụng doanh nghiệp No-Code dành cho nhóm Kintone
cho phép người dùng doanh nghiệp nhanh chóng tạo các ứng dụng tuyệt vời
và cơ sở dữ liệu động cho nhóm của họ cũng như quy trình làm việc tùy chỉnh
và quản lý dữ liệu ở một nơi
● Garoon: Garoon là một sản phẩm phần mềm hợp tác do Cybozu, Inc phát
triển, dành cho doanh nghiệp quy mô lớn Nó cung cấp các tính năng quản lýlịch trình, giao tiếp hợp tác, quản lý dự án, và bảo mật thông tin Garoon giúptối ưu hóa quy trình làm việc, tăng cường hiệu suất, và tạo ra một môi trườnglàm việc hiệu quả trong tổ chức doanh nghiệp Điều này được thực hiện thôngqua tích hợp dữ liệu, quản lý công việc cá nhân và nhóm, cũng như tùy chọnbảo mật linh hoạt
Trang 81.3 Lịch làm việc khi thực tập tại công ty
Khoảng thời
gian thực tập
21/08/2023-27/10/2023
Thời gian làm
việc trong ngày
Công việc hằng ngày bắt đầu từ lúc 8h30 đến 17h30
Thời gian nghỉ
trưa
Thời gian nghỉ trưa 1 tiếng từ 11h45 tới 12h45
Thời gian báo
cáo
Sau mỗi ngày làm việc sẽ viết báo cáo tiến độ làm việc kèm với các vấn đề mắc phải và nộp lên hệ thống công ty.
việc ngày trước và lên kế hoạch cho ngày hôm đó.
Sprint planning Bắt đầu vào mỗi sáng thứ 2 hàng tuần, các team sẽ có 1
buổi họp cùng nhau để phổ biến công việc sẽ cần làm trong
cả 1 sprint
đã được giao để tổng kết trao đổi những vấn đề gặp phải
Trang 9và xem lại những nhiệm vụ trong tuần
Trang 10CHƯƠNG 2: NỘI DUNG THỰC TẬP
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 1 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty, được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triển, quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty, các phòng ban về IT, HR Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làm việc trong công ty như thời gian đi làm, các quy định, cách sử dụng email trong công việc Làm quen với các đồng nghiệp và tham gia tiệc chào mừng của công ty.
Kết quả: Hiểu thêm về công ty TNHH Cybozu Việt Nam, quá trình thành lập và phát triển Có thêm các kỹ năng về việc lập kế hoạch, có kỷ luật, có trách nhiệm hơn.
2.2 Nghiên cứu kỹ thuật
2 Thiết lập cài đặt máy tính, phần mềm cần thiết cho công việc
3 Sơ lược về sản phẩm Garoon của công ty và giao nhiệm vụ tìm hiểu sâu hơn về chức năng cho các thực tập sinh
4 Các nhóm tìm hiểu và trình bày theo về sản phẩm Garoon theo phần mà mình đã được giao
5 Giới thiệu testing cơ bản
Trang 116 Định hướng QA
7 Họp báo cáo tuần
Kết quả: Hiểu về sản phẩm Garoon, cách làm việc nhóm, hiểu được testing là gì
và định hướng cho bản thân mình
2.2.2 Tuần 2
Nội dung:
● Tổng quan về kiểm thử phần mềm
● Giới thiệu về Scrum & quy trình phát triển phần mềm của công ty
● Cách làm việc trong công ty Nhật (HORENSO)
● Giới thiệu về test case và các kỹ thuật thiết kế test case
● Họp báo cáo tuần
Kết quả: Hiểu được tổng quan về kiểm thử phần mềm, cách làm việc của công
ty, Scrum Team, và các kỹ thuật quan trọng trong việc thiết kế testcase
2.2.3 Tuần 3
Nội dung:
● Hướng dẫn cách đọc requirement/spec
● Tự đọc/tìm hiểu về requirement và spec
● Hướng dẫn cách viết test case/checklist
● Thực hành viết test case/ checklist theo yêu cầu
● Thực hành viết checklist
● Chia sẻ văn hoá của công ty Cybozu
● Họp báo cáo tuần
Kết quả: Hiểu được các đọc requirement, viết được test case, checklist cho sản phẩm Garoon của công ty
Trang 122.2.4 Tuần 4
Nội dung:
● Cách báo cáo lỗi hiệu quả
● Thực hành kiểm tra theo test case, tìm lỗi và báo cáo lỗi
● Tìm hiểu về Web application, IIS và Apache
● Thực hành cài đặt server garoon trên window với IIS
● Họp báo cáo tuần
Kết quả: Học được cách báo cáo lỗi, kiểm tra lỗi theo testcase, kiến thức về web application và cách thức setup một server
2.2.5 Tuần 5
Nội dung:
● Giới thiệu về lĩnh vực Security Testing
● TÌm hiểu về XSS, CSRF, SQL Injection và áp dụng vào thực hành
● Overview về automation và tìm hiểu về Selenium IDE
● Họp báo cáo tuần
Kết quả: Hiểu thêm về security testing, hiểu được thế nào là automation và cách sử dụng Selenium IDE.
2.2.6 Tuần 6
Nội dung:
● Set up và tìm hiểu về Visual Studio Code, Node Js và npm
● Thuyết trình về các vấn đề đã tìm hiểu
● Họp báo cáo tuần
Kết quả: Có kiến thức tổng quát về Visual Studio Code, Node Js và npm
Trang 132.2.7 Tuần 7
Nội dung:
● Tìm hiểu về WebDriverIO
● Mocha Framework
● Chai Assertion Lib
● Test script development
● Review, fix issue
● Họp báo cáo tuần
Kết quả: Học được cách code automation test, cách sử dụng thư viện và được nhận feedback của mentor về code để có thể code tốt hơn trong tương lai
2.2.8 Tuần 8
Nội dung:
● Tìm hiểu và thực hành về POM trong WebDriverIO
● Thuyết trình về những gì đã tìm hiểu
● Họp báo cáo tuần
Kết quả: Biết được cách thức hoạt động của POM trong WebDriverIO
2.2.9 Tuần 9
Nội dung:
● Tìm hiểu tiếp về Web application nâng cao
● Thực hành cài đặt garoon server trên Linux thông qua Apache
● Họp báo cáo tuần
Kết quả: Hiểu thêm về web application và biết được cách thiết lập và cài đặt Garoon trên Linux
Trang 142.2.10 Tuần 10
Nội dung:
● Tìm hiểu về multi remote và multi-browser trong WebDriverIO
● Thực hành viết script cho những gì đã tìm hiểu
● Họp báo cáo cuối khoá và chia tay
Kết quả: Hiểu thêm về multi remote và multi-browser trong WebDriverIO
2.3 Tham gia dự án thực tế
2.3.1 Viết testcase cho Garoon
2.3.1.1 Kỹ thuật áp dụng
● Phân vùng tương đương: là kỹ thuật thực hiện test theo từng class
có cùng một kết quả xử lý, tập hợp thời gian có cùng một kết quả xử lý, tập hợp kết quả export được xử lý cùng một giá trị nhập.
● Phương pháp phân tích giá trị biên: sẽ đưa ra các giá trị đặc biệt, bao
gồm loại dữ liệu, giá trị lỗi, bên trong, bên ngoài biên giá trị, lớn nhất và nhỏ nhất.
● Bảng quyết định: hỗ trợ lựa chọn test case một cách có hệ thống và có
nhiều lợi ích trong việc nhận biết vấn đề tiềm ẩn và sự không rõ ràng trong bản đặc tả yêu cầu Phương pháp này quyết định số testcase tối thiểu với độ bao phủ tối đa
● Đoán Lỗi: không có quy tắc rõ ràng để kiểm thử, test case có thể được
thiết kế tùy thuộc vào tình hình, hoặc hoặc luồng công việc trong các tài liệu mô tả chức năng hoặc khi một lỗi không mong muốn / không được
mô tả trong tài liệu được tìm thấy trong khi hoạt động kiểm thử Phương
Trang 15pháp này sẽ dựa vào kinh nghiệm của Tester(QA) để phân tích và xác định các lỗi có thể xảy ra sau đó viết các ca kiểm thử để đưa ra các lỗi đó
Trang 162.3.1.3 Quá trình thực hiện
● Hiểu Yêu Cầu: Trước khi bắt đầu viết test case, kiểm thử viên cần hiểu rõ yêu
cầu chức năng và phi chức năng của ứng dụng Điều này bao gồm việc đọc tài liệu yêu cầu, họp với nhóm phát triển, và đảm bảo rằng mọi đặc tả đã được hiểu đúng
● Xác định Kịch bản Kiểm thử: Dựa trên yêu cầu, kiểm thử viên sẽ xác định các
Trang 17kịch bản kiểm thử cần được thực hiện Mỗi kịch bản kiểm thử là một tình huống hay hoàn cảnh cụ thể mà người kiểm thử muốn kiểm tra.
● Chuẩn bị Dữ liệu Kiểm thử: Kiểm thử viên cần chuẩn bị dữ liệu cần thiết cho
các kịch bản kiểm thử Điều này có thể bao gồm tạo các bản ghi trong cơ sở
dữ liệu, chuẩn bị dữ liệu đầu vào, và thiết lập môi trường kiểm thử
● Viết Test Case: Việc viết test case bao gồm mô tả chi tiết về các bước cần thực
hiện để kiểm thử một chức năng cụ thể Mỗi test case cần mô tả các bước cụ thể, dữ liệu đầu vào, và kết quả mong đợi Các bước cần được viết một cách
rõ ràng và dễ hiểu
● Sử dụng Template Test Case: Việc sử dụng một template test case chuẩn giúp
đảm bảo rằng mọi test case đều có định dạng và cấu trúc nhất định Template thường bao gồm các phần như Tiêu đề, Mục mô tả, Bước thực hiện, Dữ liệu kiểm thử, Kết quả mong đợi, và Ghi chú
● Kiểm thử Độc lập: Sau khi test case đã được viết, kiểm thử viên thường kiểm
thử độc lập để đảm bảo rằng mọi bước là chính xác và kết quả đúng như mong đợi
● Đánh giá và Điều chỉnh: Test case cần được đánh giá và điều chỉnh đều đặn
để đảm bảo tính hiệu quả và tính đầy đủ của chúng Điều này bao gồm việc cập nhật test case khi có thay đổi yêu cầu hoặc mã nguồn
2.3.1.4 Kết quả
Đảm bảo tính chính xác và đầy đủ của quá trình kiểm thử Mỗi bước kiểm thử được mô tả chi tiết, từ dữ liệu đầu vào đến kết quả mong đợi, giúp tránh bỏ sót bất kỳ khía cạnh nào của chức năng mention trong comment trong app Scheduler
2.3.1.5 Thuận lợi
● Do đã có kinh nghiệm phát triển nhiều hình thức website trong quá trình học tập và làm đồ án tại trường nên việc tiếp cận và mindset để viết
Trang 18testcase cho 1 web app khá dễ dàng.
● Kỹ năng trình bày ngắn gọn, súc tích, từ ngữ viết testcase đi đúng trọng tâm nên những người thực hiện test bug có thể dễ dàng theo dõi theo tài liệu.
2.3.1.6 Khó khăn
● Do lần đầu tiên tiếp xúc với testcase nên vẫn chưa biết hướng đi thích hợp trong việc viết testcase như thế nào là hợp lý, dẫn đến nhiều lúc bị lang mang, đi sai vấn đề và scope của yêu cầu.
● Chưa quen với template của công ty nên còn khó khăn trong việc viết.
● Có quá nhiều luồng riêng biệt nên đôi khi viết testcase còn bị thiếu một vài case quan trọng.
2.3.2 Automation test cho app Đặt lịch
2.3.2.1 Kỹ thuật áp dụng
● JavaScript là ngôn ngữ lập trình được nhà phát triển sử dụng để tạo
trang web tương tác Từ làm mới bảng tin trên trang mạng xã hội đến hiển thị hình ảnh động và bản đồ tương tác, các chức năng của
JavaScript có thể cải thiện trải nghiệm người dùng của trang web Là ngôn ngữ kịch bản phía máy khách, JavaScript là một trong những công nghệ cốt lõi của World Wide Web Ví dụ: khi duyệt internet, bất cứ khi nào bạn thấy quảng cáo quay vòng dạng hình ảnh, menu thả xuống nhấp
để hiển thị hoặc màu sắc phần tử thay đổi động trên trang web cũng chính là lúc bạn thấy các hiệu ứng của JavaScript.
● WebDriverIO là một tiện ích kiểm thử với mã nguồn mở sử dụng ngôn
ngữ NodeJS
Trang 19o Nó giúp bạn viết các bài kiểm tra test bằng javascripts trong
2.3.2.2 Mô tả dự án
Thực hiện viết automation test cho feature tạo cuộc họp trong app Schedule của Garoon
Trang 20Một vài hình ảnh về source code script automation:
Trang 222.3.2.3 Quá trình thực hiện
● Xác định Phạm Vi Automation: Trước hết, cần xác định rõ phạm vi của
việc automation test Điều này bao gồm việc quyết định những kịch bản kiểm thử nào nên được tự động hóa và những kịch bản nào nên duy trì làm kiểm thử thủ công.
● Chọn Công Cụ Automation: Chọn công cụ automation phù hợp với yêu
cầu của dự án Các công cụ như Selenium, Appium, JUnit, TestNG, hoặc Cucumber là những lựa chọn phổ biến Sự chọn lựa này cần dựa trên ngôn ngữ lập trình sử dụng trong dự án, tính năng của ứng dụng, và nhu cầu kiểm thử cụ thể.
● Thiết Lập Môi Trường Automation: Thiết lập môi trường automation
bao gồm cài đặt và cấu hình công cụ automation, khởi tạo dự án
automation, và đảm bảo rằng tất cả các thành phần cần thiết như driver, frameworks, và thư viện đều được cài đặt đúng.
● Phân tích và Thiết Kế Test Cases: Chuyển đổi các test cases từ dạng thủ