Cộng đồng người dùng thậmchí đã phản ánh rằng "Garoon giảm đáng kể khối lượng công việc quản trị."Điều này làm tăng hiệu quả và tiện ích trong quá trình quản lý hệ thống.Có thể được liên
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
Manual Test
Công ty thực tập: CYBOZU
Người phụ trách: Nguyễn Đức Minh
Thực tập sinh: Nguyễn Trung Đức
TP Hồ Chí Minh, tháng 1 năm 2024
Trang 2LỜI MỞ ĐẦU
Trong thời đại Cách mạng Công nghiệp 4.0, công nghệ thông tin và đặc biệt làngành Công nghệ Phần mềm đóng một vai trò quan trọng trong sự phát triểntoàn diện của xã hội Công nghệ Web, là cơ sở cho việc sản xuất trang web, đãđáp ứng nhu cầu đa dạng của con người từ mua sắm, cung cấp kiến thức đếngiao tiếp Với hơn 1.5 tỷ trang web hiện đại, nhu cầu tạo ra các trang web mớivẫn không ngừng tăng lên
Để một trang web thu hút người sử dụng, nó cần phải đáp ứng được cả yếu tốhình thức và nội dung Sự đòi hỏi này tạo ra một thách thức lớn cho các độingũ phát triển web, đặt ra câu hỏi làm thế nào để đảm bảo sản phẩm đạt chấtlượng cao về cả hai mặt này
Để đối mặt với thách thức này trong ngành công nghiệp web, em đã chọn conđường trở thành Manual Test Lựa chọn này không chỉ là một sự thay đổi về vịtrí mà em muốn đạt được, mà còn là cam kết đối với việc đóng góp vào chấtlượng của sản phẩm Làm Manual Test cho phép em kiểm tra và đánh giá sảnphẩm từ góc độ người dùng cuối, đảm bảo rằng nó không chỉ đẹp mắt mà cònhoạt động hiệu quả và đáp ứng đúng nhu cầu của người sử dụng Thông quacông việc này, em mong muốn mang lại giá trị và đóng góp vào sự thành côngcủa dự án
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn công ty Cybozu đã tạo điều kiện cho em cơ hộiđược thực tập tại công ty Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn nhiệttình của anh Nguyễn Đức Minh , em đã tiếp thu những kiến thức quan trọng để
có thể tham gia một dự án thực tế
Chân thành cảm ơn các bạn cùng nhóm và các anh chị trong công ty đã bỏ ranhiều thời gian, công sức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trongkhi làm quen môi trường mới cũng như trong việc tiếp cận kiến thức côngnghệ, kỹ năng kiểm thử phần mềm và tư duy sản phẩm để có thể thực hiện tốt
dự án cá nhân và dự án thực tế trong thời gian qua
Em 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áo cáo này
TP HCM, ngày 2 tháng 1 năm 2024
Nguyễn Trung Đức
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 về Cybozu
1.2 Giới thiệu về các sản phẩm nổi bật của công ty
1.2.1 Garoon
1.2.2 Kintone
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.3.1 Viết tescase cho Garoon
2.3.2 Automation test cho app Đặt lịch
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 1.1 Giới thiệu về Cybozu
Cybozu đang phát triển một phần mềm hợp tác để phục vụ cho công việcnhóm trên toàn thế giới Mục tiêu của Cybozu là trở thành nhà sản xuất phầnmềm hợp tác số 1 thế giới Cybozu đã và đang phát triển phần mềm dựa trênnền tảng và on-premise
Phần mềm chính của Cybozu là Garoon, một sản phẩm phần mềm hợp tácdành cho doanh nghiệp, có khả năng đáp ứng nhu cầu của các công ty quy môlớn Sản phẩm chính khác là kintone, một nền tảng ứng dụng doanh nghiệp
Trang 7không cần mã lập trình cho các nhóm, giúp người dùng nhanh chóng xây dựngứng dụng tuyệt vời và cơ sở dữ liệu động.
Cybozu không chỉ phát triển và tư vấn giải pháp tùy chỉnh và tích hợp cho cácsản phẩm Cybozu mà còn xây dựng Trải nghiệm Phát triển (DX) của sảnphẩm.1.2 Sản phẩm công ty
1.2 Giới thiệu về các sản phẩm nổi bật của công ty
1.2.1 Garoon
Giao diện người dùng của Garoon được tối ưu hóa để đơn giản và dễ sử dụngcho mọi đối tượng người dùng Đây không chỉ là một sản phẩm không yêu cầuchi phí đào tạo, thậm chí trong các công ty với đội ngũ nhân viên có sự chênhlệch về kiến thức Công nghệ thông tin Sự dễ dàng trong việc tiếp cận và sửdụng là một điểm mạnh của sản phẩm này
Các chức năng:
Dễ dàng vận hành ngay cả trong cơ cấu tổ chức phức tạp của một công ty với hàng chục nghìn người
Trang 8Việc quản lý quyền truy cập được điều chỉnh và tổ chức phân cấp trong Cybozugiúp kiểm soát thông tin một cách hiệu quả, ngay cả trong các tổ chức quy môlớn Với màn hình quản lý dễ hiểu, việc thiết lập các quyền truy cập phức tạpcũng trở nên trực quan và thuận tiện.
Chức năng quản lý hệ thống
Khảo sát người dùng năm 2019
Trang 9Quản lý vận hành có thể được tổ chức một cách hợp lý thông qua các màn hìnhquản lý dễ hiểu, giúp vận hành diễn ra mà không đòi hỏi kiến thức chuyên mônsâu rộng và dễ dàng chuyển giao quyền quản lý Cộng đồng người dùng thậmchí đã phản ánh rằng "Garoon giảm đáng kể khối lượng công việc quản trị."Điều này làm tăng hiệu quả và tiện ích trong quá trình quản lý hệ thống.
Có thể được liên kết với các hệ thống khác như kintone và Microsoft 365
Do có nhiều giải pháp có thể tích hợp được với Garoon, bạn hoàn toàn có thểtùy chỉnh và kết hợp chúng theo đặc thù và yêu cầu cụ thể của lĩnh vực kinhdoanh mà bạn đang hoạt động Garoon có khả năng hoạt động như một cổngkết nối linh hoạt, cho phép bạn tích hợp nhanh chóng các giải pháp và ứngdụng khác vào hệ thống nội bộ của mình Điều này mang lại lợi ích trong việctối ưu hóa quy trình làm việc và cung cấp một trải nghiệm người dùng liềnmạch và hiệu quả
Trang 10API cho phép tùy chỉnh an toàn để phù hợp với doanh nghiệp của bạn
Được trang bị API có thể được sử dụng để tùy chỉnh JavaScript / CSS Nó cũng
có các chức năng cho phép vận hành chương trình một cách an toàn, chẳnghạn như giới hạn phạm vi tùy chỉnh
Được hỗ trợ bởi trung tâm khách hàng
Vào năm 2019, trung tâm khách hàng của Cybozu đã nhận được đánh giá cao
Trang 11nhất là 3 sao trong tiêu chuẩn đánh giá HDI "Giám sát" do HDI-Japan (Hiệp hội
hệ điều hành
1.2.2 Kintone
kintone là nền tảng phần mềm quản trị CSDL - đặc biệt trong kinh doanh Phần mềm này cho phép quản trị viên xây dựng các ứng dụng cơ sở dữ liệu và ứng dụng quản trị kinh doanh mà không cần phải viết code
kintone được công bố năm 1997 và trong 20 năm tồn tại của mình, kintone đãtrở thành công cụ phổ biến hàng đầu trong nhiều tổ chức lớn trên thế giới.Trong thời gian gần đây kintone bước đầu gia nhập thị trường Việt Nam vàcũng đã có khá nhiều doanh nghiệp sử dụng kintone đưa ra nhiều sự lựa chọncực kỳ linh hoạt và dễ hiểu trong quá trình xây dựng các ứng dụng này Các tínhnăng đi kèm sẽ giúp bạn tập trung vào các thao tác chuyên môn, tạo ra cácbiểu đồ động phản ánh tình hình dữ liệu thay vì phải bận tâm đến việc pháttriển giải pháp cho việc quản trị dữ liệu
Những tính năng nổi bật của Kintone
Trang 12Dễ dàng chuyển đổi
Có thể chuyển danh sách thông tin khách hàng, thông tin điều kiện, báo cáo bug đã tạo trên Excel thành database bằng thao tác đơn giản, và có thể chia sẻ trên cloud
Dễ dàng tìm kiếm thống kê
Những dữ liệu đã đăng kí ở trên kintone sẽ được tích lũy và chuyển thành cơ
sở dữ liệu
Trang 13Chỉ vài cú click chuột là có thể nắm bắt một cách tức thì tình hình dự án haybất kì điều gì.
Không cần kiến thức chuyên môn
Có thể tạo, chỉnh sửa ứng dụng chỉ bằng thao tác chuột Có thể sắp xếp(mapping) tự do cho phù hợp với nghiệp vụ của khách hàng
Trang 14Tối ưu hóa cho thiết bị di động
kintone hoàn toàn tương thích với mobile, chỉ cần 1 chiếc smartphone ,chúng
Trang 15ta hoàn toàn giữ kết nối của mình liên tục với mạng lưới CSDL của mình.
1.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 cuối buổi sẽ báo cáo tiến độ công việc với anhhướng dẫn.Để giải quyết hay trao đổi về dự án
Sprint planning Vào sáng hàng tuần sẽ họp 15 phút để lên kế hoạch cho
tuần tiếp theo.Tổng kết công việc và phân công nhiệm vụ.Weekly review Cuối buổi thứ 6 hàng tuần sẽ có buổi seminar về topic đã
dduwoj giao để tổng kết trao đổi những vấn đề gặp phải và xem lại những nhiệm vụ trong tuần của em
CHƯƠNG 2: NỘI DUNG THỰC TẬP2.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
Trang 162.2 Nghiên cứu kỹ thuật
❖ Tìm hiểu và trình bày theo nhóm về sản phẩm Garoon
❖ Giới thiệu Scrum
❖ Giới thiệu Security cơ bản
❖ Định hướng QA
Trang 17❖ 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, Scrum Team, các kỹthuật Security 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
❖ Cách làm việc trong công ty Nhật (HORENSO)
❖ Giới thiệu qui trình phát triển phần mềm của công ty
❖ 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 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
Trang 18❖ 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 testcase, checklist cho sảnphẩm Garoon của công ty
2.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
❖ 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 và các webapplication
Trang 19❖ Họp báo cáo tuần
Kết quả: Tìm hiểu được các loại API và sử dụng Postman để test API
❖ Chai Assertion Lib
❖ Test script development
❖ Review, fix issue
Trang 20Kết quả: Học được cách code automation test, cách sử dụng thử viện và đượcnhậ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:
❖ XSS, CSRF và Developer tool
❖ Apply testing
❖ Báo cáo cuối khóa
Kết quả: Học được về các loại tấn công đối với server, cách sử dụng các tool để
có thể triển khai việc phát hiện các lỗ hỏng đó
2.3 Thực hiện dự án thực tế
2.3.1 Viết tescase cho Garoon
2.3.1.1 Kỹ thuật áp dụng
2.3.1.1.1 Phân vùng tương đương(Equivalence class)
Phân vùng tương đương: là kỹ thuật thực hiện test theo từng class đồng giá trị (tập hợp điều kiện cùng một thao tác)
Tập hợp giá trị input 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
2.3.1.1.2 Phân tích giá trị biên(Boundary Value Analysis)
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
Trang 212.3.1.1.3 Bảng quyết định(Decision Table)
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
2.3.1.1.4 Đoán lỗi (Error Guessing)
Đ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 phá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 đó
2.3.1.2 Mô tả dự án
Thực hiện viết testcase đối với chức năng Mention của App Bulletin Board
Trang 232.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 kị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ựchiệ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
Trang 24❖ Đá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 app Bulletin Board
2.3.1.5 Thuận lợi
❖ Do đã làm qua nhiều web khác nhau nên có thể nhanh chóng tiếp cận, hiểu được các lỗi hay xảy ra đối với trang web từ đó có thể tập trung viếttestcase đối với trang web đó
❖ 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í
❖ 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
Trang 252.3.2 Automation test cho app Đặt lịch
2.3.2.1 Kỹ thuật áp dụng
2.3.2.1.1 Javascript
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
2.3.2.2 Mô tả dự án
Thực hiện viết automation test cho app Schedule của Garoon
Trang 282.3.2.3 Quá trình thực hiện
Trang 29❖ 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ủ công sang dạng automation Phân tích và thiết kế các test script theo cú pháp và cấu trúc của ngôn ngữ lập trình sử dụng Xác định dữ liệu cần thiết và các bước thực hiện
❖ Viết Automation Scripts:Viết automation scripts theo các test cases đã thiết kế Scripts này nên được viết một cách cẩn thận để đảm bảo tính
ổn định và linh hoạt Sử dụng các hàm và thư viện để giảm sự lặp lại và tăng tính bảo trì
❖ Chạy và Kiểm Tra Automation Scripts:Chạy automation scripts và kiểm tra kết quả Đảm bảo rằng scripts chạy đúng, và kết quả được so sánh