LỜ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
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
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
Sau ba năm rưỡi 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
Vì vậy, em tham gia chương trình thực tập của công ty Capgemini để tích lũy thêm kiến thức về testing nói chung và automation testing nói riêng
Trang 3Đặc biệt cảm ơn anh Trần Hoàng Long, đã training những kiến thức về Java, Selenium,
Rest Assured, BDD framework, hướng dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới
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
Trần Thanh Lâm
TpHCM, ngày 16 tháng 6 năm 2022
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 6
1 Giới thiệu công ty Capgemini VN 6
Chương 2: Nội dung thực tập 8
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8
2 Nghiên cứu kỹ thuật 8
2.1 Các công cụ làm việc 8
2.2 Tìm hiểu ngôn ngữ Java 8
2.3 Tìm hiểu Selenium Framework 9
2.4 Tìm hiểu Rest Assured 10
2.5 Tìm hiểu về Cucumber 11
3 Thực hiện project 12
4 Lịch làm việc 12
Chương 3: Chi tiết về project 14
TÀI LIỆU THAM KHẢO 255
TỔNG KẾT 266
Trang 6
Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty Capgemini VN
Với đội ngũ hơn 190.000 ngàn nhân viên có mặt tại hơn 40 quốc gia trên thế giới, Tập đoàn Capgemini đang kỷ niệm hơn 50 năm thành lập trong năm 2017 Là một tập đoàn dẫn đầu trong lĩnh vực tư vấn, công nghệ và dịch vụ gia công phần mềm, doanh thu toàn cầu của
Capgemini trong năm 2016 được báo cáo là 12,5 tỷ EUR Để đồng hành cùng với khách hàng của mình, Capgemini không ngừng sáng tạo và cung cấp các giải pháp về kỹ thuật, công nghệ
và thương mại nhằm đáp ứng yêu cầu của khách hàng trong việc đổi mới và tang khả năng cạnh tranh
Capgemini, một tổ chức đa văn hóa sâu sắc, đã và đang phát triển phương thức hoạt động riêng của mình, the Collaborative Business ExperienceTM, and draws on Rightshore®, một mô hình phân phối trên toàn thế giới của Capgemini
Capgemini Vietnam là một văn phòng lớn tọa lạc trên lầu 2, tòa nhà Centre Point, 106 Nguyễn Văn Trỗi , quận Phú Nhuận, Thành phố Hồ Chí Minh Ngoài việc trở thành nhà cung cấp uy tín các dịch vụ ứng dụng trên web, Capgemini Vietnam còn cung cấp dịch vụ công nghệ thông tin cho các Tập đoàn bảo hiểm và Ngân hàng lớn nhất thế giới
Trang 7Thông tin liên hệ
• Địa chỉ văn phòng
2nd CentrePoint Building, 106 Nguyễn Văn Trỗi, Phú Nhuận, TP Hồ Chí Minh
• Điện thoại liên hệ
(+84) 839978100
• Website
www.capgemini.com
Trang 8Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Automation Testing” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về Kiểm thử phần mềm tự động, đồ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 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
Thời gian : 1 ngày
Nội dung: 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ả : Hiểu thêm về công ty Capgemini, quá trình thành lập và phát triển Có thêm
các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn
2 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian : 1 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
Trong thời gian này, mentor của em đã giới thiệu cho em về các công cụ như Intellij IDEA, Selenium Framework, Maven, TestNG
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên
Kết quả : Hiểu được các công cụ cần thiết để test website bằng Seleium
2.2 Tìm hiểu ngôn ngữ Java
Thời gian : 3 ngày (1 tuần)
Nội dung : Được training về các kỹ thuật Java nâng cao, những kiến thức quan trọng
cho việc sử dụng ngôn ngữ lập trình Java trong Selenium Framework
- Lập trình hướng đối tượng
Trang 9Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình
- Java 8:
Thực tập sinh sẽ được tìm hiểu về các tính năng của Java 8, ứng dụng của ngôn ngữ Java trong kiểm thử tự động bằng Seleium
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nâng cao kỹ năng lập trình với ngôn ngữ Java
- Có được những kiến thức quan trọng cho việc lập trình Java cho Seleium
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu
2.3 Tìm hiểu Selenium Framework
Thời gian: 4 tuần
Nội dung: Các kiến thức cơ bản về Selenium để có thể test một trang web
- Khái niệm cơ bản về Seleium
Nắm được các khái niệm cơ bản về Seleium, đặt biệt là Seleium WebDriver, nó thực hiện một cách tiếp cận hiện đại và ổn định hơn trong việc tự động hóa các hành động của trình duyệt
Ngoài ra, mentor còn giúp em hiểu được rất nhiều khái niệm trong Selenium như locator, wait, report, …
Thực hiện:
Trang 10- Tham gia đầy đủ các buổi trainning
- Làm các bài tập thực hành như test một số chức năng đơn giản
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm
Kết quả :
- Hiểu được những khái niệm cơ bản về Selenium
2.4 Tìm hiểu Rest Assured
Thời gian : 2 tuần
Nội dung : Các khái niệm cơ bản về Rest Assured Framework dùng để test API
- Tìm hiểu về Rest Assured Framework:
Rest-assured (RestA) là 1 thư viện Java DSL được xây dựng trên nền HTTP Builder (thư viện tạo HTTP request), cho phép thực hiện gửi request và kiểm tra response
Thực hiện :
- Tham gia đầy đủ các buổi training
- Test những API cơ bản
Kết quả:
- Hiểu được quá trình test API, các khái niệm cơ bản của Rest Assured
Trang 112.5 Tìm hiểu về Cucumber
Thời gian: 2 tuần
Nội dung: Các khái niệm cơ bản về Cucumber
- Định nghĩa về Cucumber:
Cucumber, testing framework hỗ trợ Behavior Driven Development (BDD), cho phép người dùng định nghĩa hành vi hệ thống với ngữ nghĩa tiếng anh thông qua
cú pháp Gherkin Cucumber hướng tới việc viết test “as cool as cucumber” mà bất
kỳ ai cũng có thể hiểu cho dù họ không có chuyên môn kĩ thuật Ví dụ như các nền tảng quen thuộc như Selenium thì thường chỉ người viết test hoặc có kĩ năng lập trình
Trang 123 Thực hiện project
Sau 2 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ề Automation Testing Trong tháng cuối cùng, mentor đã hướng dẫn thực tập sinh
áp dụng những kiến thức đã học để test một trang web thực tế
Chi tiết đồ án sẽ được nói ở phần sau
4 Lịch làm việc
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
Anh Trần Hoàng Long
100
3
- Tìm hiểu về Selenium Webdriver
100
4
- Tìm hiểu về Rest Assured
- Tìm hiểu về API
- Luyện tập test API với Rest Assured
Anh Trần Hoàng Long
100
5
- Tìm hiểu về Cucumber
- Tích hợp Cucumber với Selenium
- Tìm hiểu về Jenkins
Anh Trần Hoàng Long
100
Trang 136
- Thực hiện xây dựng các test case để test trang web cảu công ty Capgemini
- Xuất ra các file Report
Anh Trần Hoàng Long
100
8
- Mentor review lại project
- Đưa ra những cách làm tối ưu, hoặc những thư viện mới hơn
- Báo cáo project cho mentor
Anh Trần Hoàng Long
100
Trang 14Chương 3: Chi tiết về project
Trong thời gian thực tập tại công ty, người hướng dẫn đã giao cho dự án kiểm thử trang web của công ty có đường dẫn: www.capgemini.com
Hình 1 Website công ty
3.2 Mô tả dự án
Tên: Capgemini Website Test Project
Người thực hiện: Trần Thanh Lâm
Yêu cầu cài đặt:
Trang 15• IDE: IntelliJ IDEA
Chạy test ở comandline:
mvn test
mvn test -Denv=staging
Hình 2 Cài đặt chạy test ở comandline
Hình 3 Cài đặt chạy lại nếu testcase bị thất bại
Hỗ trợ parameters trong testNG.xml:
Trang 16Hình 4 Cài đặt trình duyệt để kiểm thử
Thiết lập Listeners trong testNG.xml:
• listeners.TestListener
Hình 5 Thiết lập Listeners Class (1)
Trang 17Hình 6 Thiết lập Listeners Class (2)
Hình 7 Thiết lập Listeners Class (3)
Trang 18Cấu trúc
Hình 8 Thiết lập Base Page class
Hình 9 Thiết lập Element sử dụng trong Home Page class
Trang 19• Trong BaseTest, sử dụng Annotation của TestNG và gọi hàm setUP từ BagePage
Hình 10 Thiết lập Base Test class
tiên Khi click vào, trang trở lại trang Relearning
Hình 11 Testcase trong Main Page class
Trang 20• Trong SearchTest, đi đến SearchPage và tìm: job Sử dụng thư viện Jsoup để lấy tất cả các link trong trang
Hình 12 Testcase trong Search Test class
tiêu đề của mỗi trang
Trang 21Hình 13 Testcase trong Industries Test class
Hình 14 Testcase trong Services Test class
mỗi trang
Hình 15 Testcase trong Insights News Test class
Trang 22• Trong AboutUsTest, đi đến AllOurBrandsPage, PurposePage và lấy nội dung của từng trang
Hình 16 Testcase trong About Us Test class
Tất cả các lớp đều được kế thừa từ BaseTest Nếu 1 trong các testcase bị thất bại, Listeners sẽ chụp màn hình và hiện lên trong report
Trang 24- Đối với testcase bị thất bại sẽ tự động chụp màn hình
Hình 19 Chụp màn hình với testcase bị thất bại
- Tổng quan trạng thái
Hình 20 Tổng quan trạng thái của report
Trang 25TÀI LIỆU THAM KHẢO
Trang 26TỔNG KẾT
Trong thời gian thực tập tại công ty Capgemini, bản thân em đã học hỏi và được trau dồi rất nhiều kiến thức về Automation Testing, cũng như thái độ và phong cách làm việc chuyên nghiệp trong ngành IT Những kiến thức này sẽ bổ trợ cho em rất nhiều trong con đường tương lai sau này
Sau cùng, em xin chân thành cảm ơn các thầy cô trường Đại học Công nghệ thông tin, các thầy cô khoa Công nghệ phần mềm, công ty Capgemini, chị Lê Hiền, anh Trần Hoàng Long, cùng các bạn trong team đã giúp đỡ em trong thời gian thực tập của mình