Với sự cạnh tranh giữa các ứng hiện nay, thị hiếu của người dùng và khách hàng phụ thuộc ít nhiều vào chất lượng của ứng dụng đó, do đó kiểm thử phần mềm đã và đang là nhân tố không thể
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2LỜI MỞ ĐẦU
Từ xưa đến nay, kiểm thử phần mềm là một giai đoạn quan trọng trong các quy trình phát triển phần mềm Với sự cạnh tranh giữa các ứng hiện nay, thị hiếu của người dùng và khách hàng phụ thuộc ít nhiều vào chất lượng của ứng dụng đó, do đó kiểm thử phần mềm đã
và đang là nhân tố không thể thiếu để quyết định sự thành bại của một ứng dụng trên thị trường, cũng như uy tín đối với tổ chức sản xuất ra ứng dụng tương ứng
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Lĩnh vực kiểm thử phần mềm ở Việt Nam đã và đang phát triển mạnh mẽ, để làm cho các ứng dụng sản xuất/gia công tại Việt Nam đạt được chất lượng có thể sánh vai với chất lượng của những ứng dụng được sản xuất ở khắp nơi trên thế giới Bên cạnh những công ty hàng đầu, những công ty outsourcing/product ở Việt Nam cũng đã và đang đầu tư rất nhiều chi phí vào giai đoạn kiểm thử cho một dự án, góp phần rất lớn vào chất lượng của sản phẩm, từ đó mang lại cho người dùng có được một trải nghiệm tốt nhất
Ngành kiểm thử phần mềm có 2 loại chính, đó là manual testing (kiểm thử thủ công) và automation testing (kiểm thử tự động) Mỗi loại kiểm thử đều có những chức năng/ưu điểm và
khuyết điểm riêng
Sau bốn năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia kiểm thử trong một môi trường chuyên nghiệp, em có dự định là sẽ thực
tập trong học kì này Vì vậy, em quyết định chọn Công Ty TNHH Pyramid Consulting - một
môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Em xin gửi lời cám ơn đến Công ty TNHH Pyramid Consulting đã tạo điều kiện để em thực hiện tốt chương trình thực tập của mình Đặc biệt, em xin cám ơn anh Nguyễn Huy Bình đã tận tình hướng dẫn, chỉ dạy để giúp em có thêm kiến thức, kinh nghiệm trong công việc Nhờ sự chỉ dạy tân tình của quý công ty tạo một môi trường làm việc, sự quan tâm của các anh, các chị đồng nghiệp nên em mới có được những kiến thức và những trải nghiệm thật sự quý giá Em cám ơn sự yêu quý và tinh tưởng của mọi người đã tạo cho em một môi trường làm việc thật năng động, tuy đôi lúc có chút áp lực về công việc nhưng nhờ sự giúp đỡ tận tình và tinh thần đoàn kết của mọi người, nên tất những khó khăn ấy sẽ là động lực để em cố gắng và vươn xa hơn để có thể trở thành một phần của công ty, và cùng nhau tạo nên nhưng giá trị cho công ty
TP.Hồ Chí Minh, ngày 25 tháng 12 năm 2021
Sinh viên thực tập
Trang 4
NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU ĐƠN VỊ THỰC TẬP 8
1.1 Thông tin về đơn vị thực tập: 8
CHƯƠNG 2: NỘI DUNG CÔNG VIỆC THỰC TẬP 9
2.1 Tìm hiểu về mô hình agile, hệ thống ISMS và automation QC 9
2.2 Các công việc thực hiện trong kỳ thực tập 10
Tuần 1 10
Tuần 2 10
Tuần 3 11
Tuần 4 11
Tuần 5 12
2.3 Một số hình ảnh về source code bài tập trong quá trình thực tập………13
CHƯƠNG 3: DỰ ÁN THỰC TẾ……… 28
3.1 Thông tin dự án……… 28
3.2 Công việc trong dự án……….29
3.3 Một số hình ảnh về những công cụ sử dụng trong dự án ……… 27
CHƯƠNG 4: KẾT LUẬN 31
4.1 Những kỹ năng thực hành 31
4.2 Những kinh nghiệm tích lũy được 31
Trang 6DANH MỤC CÁC HÌNH ẢNH
Hình 1.0 Hình ảnh công ty 6
Hình 1.1 Mô hình Agile 8
Hình 1.2 Hệ thống ISMS 8
Hình 1.3 Sử dụng Map trong Java 13
Hình 1.4 Sử dụng List trong Java 14
Hình 1.5 Sử dụng Array trong Java 15
Hình 1.6 Sử dụng OOP trong Java 16
Hình 1.7 Sử dụng TestNG 17
Hình 1.8 Sử dụng Page Object Model 18
Hình 1.9 Sử dụng Page Factory 19
Hình 2.0 Sử dụng Data Provider 19
Hình 2.1 Sử dụng ngôn ngữ Gherkin 20
Hình 2.2 Sử dụng Cucumber BDD 20
Hình 2.3 Cấu hình file test Runner để chạy JUnit 21
Hình 2.4 Cấu hình file pom.xml .21
Hình 2.5 Viết User Story cho chức năng 22
Hình 2.6 Viết các test case trong file Excel 22
Hình 2.7 Execute test case trong Test Cycle 23
Hình 2.8 Các bug của hệ thống 23
Hình 2.9 Giao diện BitBucket 24
Hình 3.0 Path Parameters trong Rest Assured 25
Hình 3.1 Query Parameters trong Rest Assured 25
Hình 3.2 Sử dụng Rest Assured để lấy response time 26
Hình 3.3 Kết quả chạy Rest Assured 27
Trang 7CHƯƠNG 1:
GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP
1.1 Thông tin về đơn vị thực tập:
Hình 1.0: Hình ảnh công ty
Công ty TNHH Pyramid Consulting (Tên tiếng anh: Positive Thinking Company)
là một tập đoàn tư vấn công nghệ độc lập toàn cầu Với đội ngũ hơn 3.000 chuyên gia công nghệ tài năng tại hơn 35 thành phố trên khắp Châu Âu, Mỹ, Châu Á, Châu Úc và Châu Phi, công ty phục vụ khách hàng ở mọi quy mô PTC tin rằng
sự hợp tác sẽ làm tốt hơn thế giới của chúng ta Mô hình hệ sinh thái mở độc đáo của PTC cho phép chúng tôi cung cấp các giải pháp công nghệ đầu cuối
PTC hợp tác với khách hàng của chúng tôi ở mọi giai đoạn trong vòng đời của các dự án của họ, từ chiến lược đến thực hiện PTC tư vấn cho khách hàng của chúng tôi, xây dựng và điều hành các dự án của họ PTC đặt mục tiêu khai thác toàn bộ tiềm năng của đồng nghiệp bằng cách cung cấp cho họ một môi trường tiến hóa, khuyến khích sự hợp tác, sáng tạo và một tư duy tích cực
Trang 8Các dịch vụ của chúng tôi dựa trên nhiều chuyên môn, bao gồm ứng dụng và nền tảng, bảo mật, đám mây, dữ liệu và phân tích, siêu tự động hóa và nơi làm việc kỹ thuật số Các ngành được hưởng lợi bao gồm, trong số những ngành khác, dịch
vụ ngân hàng và tài chính, bảo hiểm, chăm sóc sức khỏe, bán lẻ, vận tải, viễn thông và khu vực công PTC cung cấp dịch vụ của chúng tôi với tư duy hợp tác và
có ý nghĩa PTC đặt mục tiêu tạo ra các kết quả kinh doanh tích cực hỗ trợ khách hàng của chúng tôi thông qua môi trường kinh doanh luôn thay đổi.Hình 1.0 Hình ảnh công ty
1.1.1 Cơ sở vật chất
Cơ sở vật chất tương đối tốt, được trang bị đầy đủ các thiết bị như máy tính để bàn, màn hình trình chiếu đảm bảo đáp ứng tốt quá trình làm việc cho nhân viên Ngoài ra các tiện nghi khác như: máy nước nóng, máy lạnh, cà phê,…giúp cho nhân viên có một môi trường làm việc đảm bảo cũng như có thể xả stress sau những giờ làm việc căng thẳng
1.1.3 Yêu cầu về thái độ và kỹ năng làm việc
Để đảm bảo công việc hoàn thành đúng tiến trình, công ty yêu cầu sinh viên có tác phong tốt trong công việc, thái độ làm việc vui vẻ hòa đồng với mọi người Công ty không yêu cầu sinh viên có kiến thức chuyên môn sâu nhưng yêu cầu sinh viên phải chịu khó tìm tòi học hỏi những kiến thức chuyên môn từ cơ bản đến nâng cao, để đáp ứng một cách tốt nhất trong quá trình làm việc
Trang 9CHƯƠNG 2:
NỘI DUNG CÔNG VIỆC THỰC TẬP
2.1 Tìm hiểu về một số phần quan trọng được dùng trong quá trình làm việc tại công ty
- Agile là tập hợp các phương thức phát triển lặp và tăng dần trong đó các yêu cầu và giải
pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự quản và liên chức năng Agile là cách thức làm phần mềm linh hoạt để đưa ra sản phẩm
đến tay người dùng các sớm càng tốt Sau đó khách hàng sẽ dùng thử và phản hồi lại để đội ngũ phát triển tiếp tục làm ở các giai đoạn tiếp theo
Hình 1.1 Mô hình Agile
- Được biết ISMS là cụm từ viết tắt của information security management system Đây là hệ thống quản lý an ninh thông tin ISMS là khái niệm được sử dụng nhiều trong những Doanh Nghiệp công nghệ thông tin và những đơn vị có ứng dụng hệ thống CNTT vào quản lý sản xuất Theo tiêu chuẩn ISO 27001, về an toàn thông tin có liên quan đến các tính chất như
Trang 10sãn sàng, bảo mật, tính toàn vẹn của thông tin Ngoài ra việc an toàn thông tin còn bao gồm có các tính chất khác như trách nhiệm, xác thực, tính tin cậy và xác nhận
Hình 1.2 Hệ thống ISMS
Automation Test có thể hiểu rất đơn giản là thay vì test bằng tay, ta để máy thực hiện
việc testing mà Tester phải làm (Khởi động hệ thống, nhập dữ liệu đầu vào, kiểm tra so sánh với
dữ liệu đầu ra và ghi kết quả) Automation Testing đóng một vai trò quan trọng góp phần nâng cao năng suất kiểm thử, giảm thiểu lỗi cũng như sự nhàm chán với việc kiểm thử bằng tay trong một thời gian dài hoặc lặp đi lặp lại
2.2 Các công việc thực hiện trong quá trình thực tập:
Học lớp giao tiếp tiếng anh và giao tiếp trong công ty (Communication skill)
Học các vận hành của QC và cách để giám sát chất lượng của sản phẩm
Thứ 6:
Trang 11Học về kiểm thử tương đương và kiểm thử giá trị biên
Học cách Product Owner làm việc và phân tích yêu cầu của khách hàng cùng với
Product Owner (phần 1)
Tuần 2:
Thứ 2:
Học về các mô hình phát triển, xác định cấp độ kiểm thử
Học cách để thuyết trình hay hơn, về các kỹ năng thuyết trình (phần 1)
Cách tạo test case dùng Zephyr và đăng nó lên JIRA (phần 1)
Thứ 4:
Học về kiểm thử trên Web (phần 1)
Học về ngôn ngữ Java (phần 1)
Cách tạo test case dùng Zephyr và đăng nó lên JIRA (phần 2)
Học kiểm thử trên Web (phần 2)
Thứ 6:
Học về cách test layout trên web sử dụng CSS Viewer
Học cách Product Owner làm việc và phân tích yêu cầu của khách hàng cùng với
Học viết báo cáo cho QC
Học cách kiểm thử trên Mobile (phần 1)
Trang 12Tuần 4:
Thứ 2:
Học tiếng anh
Viết test case bằng Zephyr và đăng lên JIRA (phần 2)
Học về cách tìm bug và viết báo cáo cho bug (phần 1)
Học Static testing technique (Kiểm thử từ bước có yêu cầu hệ thống)
Học sử dụng Git trên BitBucket
Trang 132.3 Một số hình ảnh về source code bài tập trong quá trình thực tập:
Hình 1.3 Sử dụng Map trong Java
Trang 14Hình 1.4 Sử dụng List trong Java
Trang 15Hình 1.5 Sử dụng Array trong Java
Trang 16Hình 1.6 Sử dụng OOP Trong Java
Trang 17Hình 1.7 Sử dụng TestNG
Trang 18Hình 1.8 Sử dụng Page Object Model
Trang 19Hình 1.9 Sử dụng Page Factory
Hình 2.0 Sử dụng Data Provider
Trang 20Hình 2.1 Sử dụng Gherkin
Trang 21Hình 2.2 Sử dụng Cucumber BDD
Hình 2.3 Cấu hình file test Runner để chạy Junit
Hình 2.4 Cấu hình file pom.xml
Trang 22Hình 3.0 Path Parameters trong Rest Assured
Hình 3.1 Query Parameters trong Rest Assured
Trang 23Hình 3.2 Sử dụng Rest Assured để lấy response time
Trang 24Hình 3.3 Kết quả chạy Rest Assured
Trang 25CHƯƠNG 3:
DỰ ÁN THỰC TẾ
(**Lưu ý: Dự án này thuộc quyền sở hữu của công ty, và phía công ty chỉ cho phép tiết lộ thông tin tổng quan của dự án, và không cho phép chia sẻ hay tiết lộ mã nguồn dự án ra bên ngoài Nếu bị phát hiện sẽ bị xử lý theo pháp luật Mong quý thầy cô thông cảm)
3.1 Thông tin dự án:
Theo như chính sách bảo mật của công ty, em chỉ được phép mô tả ngắn gọn về dự án mà em đã tham gia:
HICLINIC là một ứng dụng web cho phép người dùng đặt bác sĩ từ các phòng khám để
họ có thể tự khám HICLINIC sử dụng 3 urls cho 3 portal khác nhau (admin portal, clinic portal và patient portal) và lần lượt dành cho 3 kiểu người dùng khác nhau (admin hệ thống, nhân viên phòng khám và bệnh nhân) Admin portal dùng để quản lý đơn hàng của bác sĩ cũng như doanh thu và cho phép phòng khám đăng ký khám chữa bệnh Clinic portal cho phép các phòng khám đăng ký khám bệnh trên ứng dụng để có thể tiếp cận khách hàng Patient portal bệnh nhân được sử dụng để cho phép bệnh nhân tìm kiếm
phòng khám và bác sĩ để đặt lịch khám
Dự án được chia ra làm 3 sprint để phát triển
Team dự án gồm 15 developer, 7 tester, 3 product owner, 1 project manager
Team dự án trên được chia ra làm 3 team nhỏ, mỗi team đều có đầy đủ các vai trò khác nhau (developer, tester, product owner) và vai trò của mỗi scrum team là phát triển từng portal trên
Dự án được phát triển theo mô hình Agile/Scrum
Một sprint trong dự án kéo dài 2 tuần
Công cụ quản lý sử dụng trong dự án:
Jira: Quản lý task của từng thành viên trong dự án
Confluence: Quản lý tài liệu liên quan đến dự án
Trang 26 Bitbucket: Quản lý mã nguồn dự án
Zephyr Squad: Quản lí test cases
Công nghệ/Thư viện/Framework được sử dụng trong dự án:
Phát triển app: ReactJs (CoreUI Material), Java (Spring Boot), MongoDB
Viết script kiểm thử tự động: Selenium, Java (Cucumber)
3.2 Công việc trong dự án:
Công việc Khoảng thời gian:
Tham gia sprint
grooming, backlog
refinement, sprint
planning, sprint test
planning
Ngày đầu tiên của sprint (Cả 3 sprint)
Kiểm tra requirement
và gửi nhận xét cho
product owner
Ngày thứ hai của sprint (Cả 3 sprint)
Viết test cases dựa trên
test plan và user stories
(requirement) (gồm
functional test cases,
API test cases và layout
test cases)
Từ ngày thứ 3 đến ngày thứ 5 của sprint (Cả 3 sprint)
Review test cases của
tester khác và đưa test
case của mình cho
Bắt lỗi -> Thông báo
cho developer -> Kiểm
tra lại
Từ ngày thứ 7 đến ngày thứ 13 của sprint (Cả
3 sprint)
Trang 27Soạn test case cho việc
smoke test (test case để
tiến hành UAT – demo
cho khách hàng xem)
Ngày thứ 13 của sprint (Cả 3 sprint)
Tham gia UAT meeting
(Sprint demo) Ngày thứ 14 của sprint (Cả 3 sprint)
Tham gia sprint
retrospective meeting Ngày thứ 14 của sprint (Cả 3 sprint)
Tham gia viết test
Trang 28Hình 2.5 User Story của chức năng
Hình 2.6 Viết test case trong file Excel
Trang 29Hình 2.7 Execute test case trong Test Cycle
Hình 2.8 Các bug của hệ thống
Trang 30Hình 2.9 Giao diện BitBucket
Trang 31CHƯƠNG 4:
KẾT LUẬN
3.1 Những kỹ năng thực hành
Biết thêm được nhiều kiến thức trong quá trình tìm hiểu và làm việc, cách tổng hợp
và tìm kiếm tài liệu một cách nhanh hơn, cách làm việc nhóm trong team
Biết cách triển khai theo kiểm thử bằng tay và kiểm thử tự động
Biết về các phần mềm làm kiểm thử, công cụ quản lý công việc, công cụ giao tiếp giữa các thành viên trong công ty một cách nhanh chóng và hiệu quả
Biết cách giao tiếp với khách hàng và sau đó thu thập yêu cầu của khách hàng để viết User Story
Biết cách thuyết trình và trình bày nội dung trước mọi người
3.2 Những kinh nghiệm tích lũy được:
Sau khi trải qua một thời gian thực tập tại công ty, em đã phát triển, cũng như tích lũy được rất nhiều kiến thức quý báu cho bản thân mình Không chỉ những kỹ năng liên quan đến lập trình, mà nó còn có những kinh nghiệm, kiến thức mà khi
ta trải nghiệm thực tế thì mới được tiếp xúc với nó như cách giải quyết một vấn đề khó, cách giao tiếp với đồng nghiệp trong team để trao đổi một cách mạch lạc và
dễ hiểu nhất cho cả hai phía như thế nào
Ngành công nghệ thông tin là một ngành nghề rất cần kỹ năng ngoại ngữ đặc biệt
là tiếng anh, đây cũng là một kinh nghiệm, một kiến thức mà em được trau dồi khi được làm việc tại công ty