HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN I
Trang 1-🙞🙞🙞🙞🙞 -Báo cáo thực tập tốt nghiệp tại CÔNG TY TNHH CÔNG NGHỆ PHẦN MỀM KAOPIZ
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN I
HÀ NỘI, 2022
Trang 2LỜI CẢM ƠN
Em xin chân thành cảm ơn Công ty công nghệ phần mềm KAOPIZ, đặc biệt
là ThS ĐINH XUÂN TRƯỜNG đã tận tình giúp đỡ em rất nhiều trong quá trìnhthực tập thời gian qua Em xin cảm ơn công ty KAOPIZ đã cung cấp cho em cơ sởvật chất và tài liệu học tập để em tham khảo để thực hiện các bài tập trong quátrình thực tập Vì còn thiếu nhiều kinh nghiệm cho nên em còn nhiều sai sót trongquá trình thực tập, em mong thầy có thể cho em lời khuyên để em hoàn thiện kỹnăng của bản thân hơn
Một lần nữa, Em xin chân thành cảm ơn Công ty công nghệ phần mềmKAOPIZ, cảm ơn ThS ĐINH XUÂN TRƯỜNG
Trang 3NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP
Hà Nội ngày 18 Tháng 8 năm 2022 Đại diện doanh nghiệp
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Hà Nội, Ngày 18 Tháng 8 Năm 2022 Giảng viên hướng dẫn
Trang 52.2.1.4 Đào tạo Kiểm thử phần mềm – Vai trò của tester trong dự án 16
Trang 62.2.2 Thực hành với dự án thực tế - Dự án My Kaopiz (Do yêu cầu bảo mật thông tin của công ty nên em xin phép giấu các thông tin nhạy cảm của dự
Những kết quả đạt được khi tham gia dự án thực tế My Kaopiz: 34
Trang 7DANH MỤC HÌNH ẢNH
Trang 8CHƯƠNG 1: GIỚI THIỆU CHUNG ĐƠN VỊ THỰC TẬP
1.1 Thông tin về đơn vị thực tập:
Công ty TNHH Công Nghệ Phần Mềm KAOPIZ được thành lập vào tháng9/2014 bởi các thành viên là cựu sinh viên khóa I của dự án hợp tác đào tạo Việt-Nhật, trường đại học Bách Khoa Hà Nội Ngoài khả năng giao tiếp trong công việcbằng tiếng Nhật Thì các thành viên sáng lập đều đã có thời gian dài sống và làmviệc ở Nhật Bản Vì vậy mà công ty xác định điểm mạnh của mình trong việc tậndụng sự hiểu biết, các mối quan hệ tin tưởng để tập trung phát triển công việc tạithị trường Nhật Bản như một trong các chiến lược phát triển của mình Trải Quagần 4 năm xây dựng và phát triển, đến nay Kaopiz đã mở rộng trụ sở tại Hà Nội vàphát triển chi nhánh tại Tokyo- Nhật Bản Với đội ngũ kỹ sư trẻ, năng động, nhiệthuyết với nghề, chúng tôi tin sẽ đem đến những sản phẩm tốt cho khách hàng và xãhội
Tập trung vào các mảng dịch vụ chính từ phát triển các ứng dụng Web, Mobilev.v… cho đến nghiên cứu về nhận diện bằng công nghệ AI
Kaopiz luôn tập trung hướng đến “Keep Innovating” để mang đến những sản phẩmchất lượng cao và tối ưu; tạo ra giá trị thực cho khách hàng, đối tác và chính conngười tại Kaopiz để tạo nên sự phát triển chung cho cả cộng đồng
Kaopiz _ Không ngừng đổi mới để tạo ra các giá trị tốt hơn cho bạn và cộng đồng.Bên cạnh danh hiệu Sao Khuê lần thứ 4, Kaopiz Software trong năm 2022 chínhthức thăng hạng từ 3 năm liền là Gold Partner thành Platinum Partner của tổ chứcISTQB – Một trong những tổ chức cấp chứng chỉ kiểm thử phần mềm uy tín nhấttrên thế giới
Ngoài ra, Kaopiz cũng được biết đến khi là một trong số ít những công ty côngnghệ của người Việt trở thành đối tác cao cấp của nền tảng điện toán đám mâyAWS tại Việt Nam
Để có được những dấu ấn đáng tự hào trên, đội ngũ ban lãnh đạo và nhân viênKaopiz đã có một hành trình nỗ lực trong suốt hơn 7 năm qua, Kaopiz vinh hạnhnhận được sự quan tâm đến từ Cộng đồng
Trang 9Hình 1 Chặng đường phát triển của Kaopiz 1
1.1.1 Cơ sở thực tập
CT1, Tầng 4 Toà Nhà C14 Bắc Hà, P Tố Hữu, Hà Nội
1.1.2 Lĩnh vực hoạt động
Hình 2 Lĩnh vực hoạt động của Kaopiz 2
1 Trích trong tài liệu giới thiệu công ty Kaopiz
2 Trích trong tài liệu giới thiệu công ty Kaopiz
Trang 101.1.3 Cơ cấu tổ chức
Hình 3 Cơ cấu tổ chức của Kaopiz 3
1.2 Thông tin về công ty sinh viên tham gia thực tập:
1.2.1 Các khóa đào tạo
Các chương trình đào tạo cho fresher về các lĩnh vực như: Tester, SQLProfessional for Tester, AWS, DevOps on Kubernetes (K8S), DevOps on AWS,Rèn Luyện Tư Duy Lập Trình, Laravel… Chương trình đào tạo kéo dài khoảng 3đến 6 tháng, có thể được hỗ trợ tiền lương
Chương trình cho sinh viên thực tập kéo dài khoảng 1 tháng, sinh viên đượctrải nghiệm thực tập với các kiến thức được học và được thực hiện các dự án nhỏ
đào tạo của Kaopiz4
33 Trích trong tài liệu giới thiệu công ty Kaopiz
4 Trích trong tài liệu giới thiệu công ty Kaopiz
Trang 11- Đảm bảo việc làm cho học viên tốt nghiệp.
- Giới thiệu việc làm cho mọi học viên
- Ngoài giờ học chính thức, học viên được thực hành miễn phí, không giớihạn thời gian
- Hỗ trợ cơ sở vật chất, mạng wifi, tài khoản công việc
- Hỗ trợ cơ sở vật chất nhà ăn cho công nhân viên
1.2.5 Văn hóa công ty.
Bên cạnh những giờ làm việc căng thẳng thì điểm nổi bật của Kaopiz là vănhóa công ty vô cùng phong phú và sôi nổi Những buổi gặp mặt giữa thành viênmới của công ty và ban lãnh đạo đã giúp góp phần gắn kết chặt chẽ các thành viêntrong công ty và quan trọng hơn là có thể giúp nhân viên mới có những định hướng
rõ hơn về nghề nghiệp của bản thân đồng thời đặt ra được những plan, mục tiêu dàihạn cũng như ngắn hạn nhằm phát triển tốt nhất tiềm năng của bản thân
Ngoài những buổi đào tạo về kỹ năng mềm như: Kỹ năng giải quyết vấn đề,
kỹ năng giải quyết xung đột, kỹ năng trao đổi và truyền đạt thông tin thì có rất
Trang 12nhiều các khóa học chuyên sâu về nghiệp vụ được mở miễn phí cho thành viêntrong công ty với sự dẫn dắt của các giảng viên như: BOD, các trường phòng, phóphòng, trưởng bộ phận.
Hình 5 Văn hóa học tập của kaopiz 5
5 Trích trong tài liệu giới thiệu công ty Kaopiz
Trang 13CHƯƠNG 2: NỘI DUNG CÔNG VIỆC THỰC TẬP TẠI CÔNG TY 2.1 Tiến độ quá trình thực tập:
Hình 6 Tiến độ quá trình thực tập
Trang 142.2 Nội dung các nhiệm vụ được giao trong quá trình thực tập:
2.2.1 Tham gia các khóa học nội bộ:
2.2.1.1 Đào tạo hội nhập
2.2.1.2 Đào tạo An toàn bảo mật thông tin
2.2.1.3 Đào tạo quy trình
2.2.1.4 Đào tạo Kiểm thử phần mềm – Vai trò của tester trong dự án
Nội dung bài học:
1 Kiểm thử trong vòng đời phát triển phần mềm
2 Các công việc cần thiết của kiểm thử
3 Sự cần thiết của kiểm thử trong dự án
4 Tổng quan về dự án
5 Các cầu phần của phần mềm
6 Các chức năng cơ bản của phần mềm
Hình 7 Chu trình kiểm thử phần mềm và nhiệm vụ của tester 6
Sau khi hoàn thành bài học lý thuyết chúng em di chuyển đến nơi làm việc
và thực hiện bài tập được giao của giảng viên gồm:
6 Trích trong tài liệu đào tạo nhân sự Kaopiz
Trang 151 SDLC và STLC là gì? Giải thích các giai đoạn khác nhau của nó.
2 Nêu ý kiến về quan điểm “ Manual test never die”
2.2.1.5 Phân tích tài liệu yêu cầu:
Nội dung buổi học:
1 Giới thiệu về tài liệu yêu cầu phần mềm
2 Cách phân tích yêu cầu phần mềm
3 Hướng dẫn cách đặt Q&A
2.2.1.6 Thiết kế testcase.
Nội dung buổi học:
1 Giới thiệu về TestCase
2 Cấu tạo các thành phần trong Test Case
3 Các chức năng Testcase
2.2.1.7 Bug-BugDefect Tracking Tools.
Nội dung buổi học:
1 Defect/ Bug/ Fault
2 Cấu trúc report Bug
3 Tool quản lý Bug- Jira
Trang 162.2.1.8 Web Testing.
Nội dung buổi học:
1 Tìm hiểu kiểm thử ứng dụng web
2 Cách kiểm tra ứng dụng web
Bao gồm các hoạt động kiểm tra:
- Kiểm thử chức năng (Functional Testing)
- Kiểm thử tính khả dụng (Usability Testing)
- Kiểm thử giao diện (UX/UI Testing)
- Kiểm thử tương thích (Compatibility Testing)
- Kiểm thử cơ sở dữ liệu (Database Testing)
- Kiểm thử bảo mật (Security Testing)
- Kiểm thử hiệu năng ( Performance Testing)
2.2.1.9 Mobile Testing.
Nội dung buổi học:
1 Tìm hiểu kiểm thử trên Mobile
2 Một số loại kiểm thử trên mobile
2.2.1.10 Type and level testing.
Nội dung buổi học:
a Function testing (kiểm tra chức năng)
b Non- function testing (kiểm thử phi chức năng)
c Structural Testing (kiểm tra cấu trúc)
Trang 17d Kiểm tra liên quan đến các thay đổi (confirmation and regressiontesting)
2.2.1.11 Test API.
Nội dung buổi học:
1 Mô hình hệ thống Client- server
2 Khái niệm API
3 Sử dụng Postman Test API
2.2.2 Thực hành với dự án thực tế - Dự án My Kaopiz (Do yêu cầu bảo mật thông tin của công ty nên em xin phép giấu các thông tin nhạy cảm của dự án).
Trang 18Hình 8 Giao diện dự án My Kaopiz
2.2.2.2 Quan điểm test – test viewpoint
- Test environment: Test tích hợp được thực hiện với thiết bị sau:
o Thiết bị di động hệ điều hành android
o Thiết bị di động hệ điều hành ios
- Test level:
o Integration Testing: Các hạng mục chức năng cần test:
Trang 19Hình 9 Sơ đồ tư duy chức năng My Kaopiz
o System Testing:
▪ Test flow cơ bản từ đầu tới cuối của hệ thống, đảm bảo khôngphát sinh các bug logic của hệ thống
▪ Kiểm tra chức năng function có đúng hay không?
▪ Migration, chức năng có làm ảnh hưởng tới chức năng kháchay không?
▪ Migration, chức năng có làm ảnh hưởng tới chức năng kháchay không?
2.2.2.3 Những kỹ thuật đã được áp dụng trong dự án:
Kỹ thuật xây dựng data test:
1 Test data là những dữ liệu được thu thập lại thành dạng tài liệu, được sử dụngmột cách đơn giản để kiểm thử các chương trình phần mềm
2 Phân loại:
Test data được chia ra làm hai loại:
Trang 20- Positive test data: Sử dụng cho hệ thống khi phát sinh những kết quả mongđợi nói chung.
- Negative test data: Sử dụng để test những điều kiện ngoài mong đợi, hiếm
có hoặc cực kỳ đặc biệt
Phân loại theo đối tượng test case:
Hình 10 Phân loại theo đối tượng test case 7
3 Nguyên tắc tạo Data Test:
- Data test phải có ý nghĩa (nhất là trên môi trường có tương tác với KH).Tránh tạo các data test dạng: aaaa, 12341, hihihaha …
- Mỗi Data test tương ứng với từng Testcase, tránh test gộp nhiều Testcasevới 1 Data test
- Nên lưu Data test dạng file lại (image, video, pdf …) để tiện làm cho các dự
án khác (Lưu ý: Không lưu lại data test đặc thù, có thông tin của dự án Chỉ lưu lạidata test tự làm hoặc tìm kiếm trên mạng)
KẾT LUẬN:
Test data đóng vai trò rất quan trọng trong việc thực hiện test case và thiết kếcác dữ liệu thích hợp là một trong những phần chính của việc test ứng dụng Tạo racác bộ dữ liệu hoàn chỉnh sẽ giúp tester tiết kiệm công sức, khiến việc test trở nênđơn giản hơn - họ sẽ không thể nói rằng họ không có dữ liệu hoàn chỉnh để test vàtìm kiếm lỗi Tester cũng có thể tạo riêng bộ test data của họ để test và sẽ thật lýtưởng vì nó tiết kiệm thời gian và chi phí Tester nên tạo ra test data của riêng họcùng với các data từ sản phẩm Phần hướng dẫn trong bài này chỉ nhằm mục đíchđảm bảo các test case có thể cover đủ các trường hợp
7 Trích trong tài liệu đào tạo nhân sự Kaopiz
Trang 21Kỹ thuật phân tích yêu cầu dự án:
1 Các tài liệu yêu cầu:
- Tài liệu BRD (Business Required Document): Là tài liệu tập hợp các yêucầu nghiệp vụ và yêu cầu của các bên liên quan
- Tài liệu SRS (Software Requirement Specification): Là tài liệu yêu cầu cócấu trúc và chỉ tiết, bao gồm các yêu cầu về chức năng và Phi chức năngcùng tất cả case khác mà phần mềm cần đáp ứng
- Tài liệu FRS (Function Requirement Specification : Tài liệu FRS (FunctionRequirement Specification
- Ul/UX: Mô tả thiết kế người dùng và giao diện người dung
- Tài liệu Use case: Thẻ hiện sự tương tác của người dùng với từng chức năngcủa phần mềm
- Data Flow
- User stories
2 Các bước đọc tài liệu yêu cầu phần mềm hiệu quả:
- Bước 1: Viết tổng quan dự án làm cái gì, Tổng quan về hệ thống
- Bước 2: Quy trình tổng quan hệ thống
- Bước 3: Đi đến chức năng cần làm và clear Input, Output
- Bước 4: Đọc yêu cầu của các chức năng cần làm
- Bước 5: Xác định các Action cần thiết từ những Input hoặc Output
Kỹ thuật test system:
Kiểm thử hệ thống là một phương pháp theo dõi và đánh giá hành vi của sảnphẩm hoặc hệ thống phần mềm hoàn chỉnh và đã được tích hợp đầy đủ, dựa vàođặc tả và các yêu cầu chức năng đã được xác định trước
1 Đặc điểm của System test:
- Trong Vòng đời phát triển phần mềm (SDLC), đây là thử nghiệm thực hiệnnhiệm vụ kiểm tra toàn bộ phần mềm hoặc hệ thống
- Đánh giá chức năng của hệ thống hoàn chỉnh theo yêu cầu chức năng đượcquyết định trước
- Cùng với các yêu cầu chức năng, nó cũng xác minh và xác nhận các yêu cầunghiệp vụ và kiến trúc của phần mềm
- Staging server có thể hoạt động như một môi trường để thực hiện thửnghiệm
- Một loại thử nghiệm hộp đen
- Nó có thể bao gồm, cả thử nghiệm chức năng và phi chức năng
- Giảm sự cố và bảo trì sau khi triển khai
Trang 22- Yêu cầu đội ngũ thử nghiệm độc lập với nhóm phát triển.
2 Thời điểm kiểm tra System test:
phần mềm (SRS)
3 Các loại kiểm tra được thực hiện trong System testing:
● Kiểm tra cài đặt: Nó được sử dụng để kiểm tra chức năng mong muốn củaphần mềm sau khi cài đặt thành công cùng với tất cả các yêu cầu cần thiết
● Kiểm tra chức năng: Một loại thử nghiệm hộp đen cho phép đánh giá hoạtđộng đúng của phần mềm theo các yêu cầu được xác định trước của nó
● Kiểm tra khả năng phục hồi: Nó được thực hiện bằng cách cố làm cho phầnmềm bị crash hoặc fail, để đánh giá khả năng phục hồi của sản phẩm một cáchnhanh chóng
● Kiểm tra khả năng tương tác: Nó đảm bảo khả năng phần mềm tương thích
và tương tác với phần mềm hoặc hệ thống khác và các thành phần của chúng
● Kiểm tra năng suất: Nó được thực hiện để kiểm tra phản ứng, độ ổn định,khả năng mở rộng, độ tin cậy và các số liệu chất lượng khác của phần mềm dướicác khối lượng công việc khác nhau
● Kiểm tra khả năng mở rộng: Phần mềm phải có khả năng mở rộng, cùngvới việc tăng tải, số lượng người dùng đồng thời, kích thước dữ liệu, v.v Điều nàynảy sinh nhu cầu kiểm tra khả năng mở rộng được tiến hành để xử lý các vấn đềliên quan đến khả năng mở rộng của phần mềm
Trang 23● Kiểm tra độ tin cậy: Việc kiểm tra này, đánh giá mức độ của phần mềm,giữa hai lỗi và thời gian cần thiết để sửa chữa.
● Kiểm tra hồi quy: Nó đảm bảo chức năng ban đầu của phần mềm sau mỗilần sửa đổi trong đó
● Kiểm tra tài liệu: Điều này bao gồm đánh giá tài liệu, được chuẩn bị trước vàtrong giai đoạn thử nghiệm, để đánh giá các yêu cầu thử nghiệm, bao gồm trongthử nghiệm tài liệu
● Kiểm tra bảo mật: Để đánh giá các tính năng bảo mật của phần mềm để đảmbảo, bảo vệ, tính xác thực, bảo mật và tính toàn vẹn của thông tin và dữ liệu
● Kiểm tra khả năng sử dụng: Đảm bảo tính năng thân thiện với người dùngcủa phần mềm và ngăn việc end user gặp phải sự cố trong quá trình sử dụng sảnphẩm phần mềm
Kỹ thuật Integration Testing:
Integration Testing (Kiểm thử tích hợp) là một loại kiểm thử trong đó các
module của phần mềm được tích hợp logic và được kiểm thử theo nhóm
1 Phương pháp tiếp cận và Chiến lược của Integration Testing
- Big Bang: Tất cả các thành phần được tích hợp cùng một lúc, sau đó tiến hànhkiểm thử
Ưu điểm: Thuận tiện cho các hệ thống nhỏ
Nhược điểm:
o Khó khăn trong việc phát hiện bug
o Với số lượng giao diện cần được kiểm thử theo phương pháp này, một
số giao diện liên kết cần kiểm thử có thể dễ dàng bị bỏ qua
o Vì kiểm thử Tích hợp chỉ có thể bắt đầu sau khi tất cả các module đượcthiết kế, nên nhóm kiểm thử sẽ có ít thời gian thực hiện hơn trong giai đoạnkiểm thử
Trang 24o Vì tất cả các module được kiểm thử đồng thời, các module quan trọng
có rủi ro cao không bị cô lập và được ưu tiên kiểm thử Các module có liênquan đến giao diện người dùng cũng không bị cô lập và được ưu tiên kiểm thử
- Incremental Testing: Trong phương pháp này, kiểm thử được thực hiện bằngcách ghép hai hoặc nhiều module có liên quan đến logic Sau đó, các moduleliên quan khác được thêm vào và kiểm thử chức năng thích hợp Quá trình tiếptục cho đến khi tất cả các module được thêm và hoàn thành quá trình kiểm thử.Cách tiếp cận tăng dần được thực hiện bởi hai Phương pháp khác nhau:
o Từ dưới lên (Bottom Up)
o Từ trên xuống (Top Down)
Bottom Up
Trong cách tích hợp từ dưới lên, mỗi module ở các cấp thấp hơn được kiểmthử với các module cao hơn cho đến khi tất cả các module được kiểm thử Tíchhợp từ dưới lên cần sự hỗ trợ của Driver để kiểm thử:
Hình 11 Sơ đồ biểu diễn cách tiếp cận từ dưới lên 8
Ưu điểm:
o Việc phát hiện lỗi dễ dàng hơn
o Không bị lãng phí thời gian chờ đợi tất cả các module được xây dựng,không giống như phương pháp Big-bang
Nhược điểm:
o Các module quan trọng (ở cấp cao nhất của kiến trúc phần mềm) cóluồng điều khiển được kiểm thử lần cuối nên dễ bị sót lỗi
o Thực hiện kiểm thử tích hợp từ dưới lên từ sớm là không thể
8 Trích trong tài liệu đào tạo nhân sự Kaopiz