1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kiểm thử tự động katalon studio và ứng dụng cho hệ thống bán hàng trực tuyến nopcommerce

59 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểm Thử Tự Động Katalon Studio Và Ứng Dụng Cho Hệ Thống Bán Hàng Trực Tuyến Nopcommerce
Người hướng dẫn TS. Hoàng Thị Thanh Hà
Trường học Trường Đại Học Kinh Tế
Chuyên ngành Hệ Thống Thông Tin Quản Lý
Thể loại báo cáo thực tập
Thành phố Đà Nẵng
Định dạng
Số trang 59
Dung lượng 3,14 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ứng dụng các kiến thức cơ bản về kiểm thử phần mềm, kiểm thử tự động và kiến thức về công cụ Katalon Studio để viết kịch bản kiểm thử cho hệ thống bán hàng trực tuyến nopCommerce.. - Thi

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ

KHOA THỐNG KÊ – TIN HỌC

BÁO CÁO THỰC TẬP NGHỀ NGHIỆP

NGÀNH HỆ THỐNG THÔNG TIN QUẢN LÝ

CHUYÊN NGÀNH QUẢN TRỊ HỆ THỐNG THÔNG TIN

KIỂM THỬ TỰ ĐỘNG KATALON STUDIO VÀ ỨNG DỤNG CHO HỆ THỐNG BÁN HÀNG TRỰC TUYẾN NOPCOMMERCE

Trang 2

LỜI CẢM ƠN

Em xin phép được gửi sự tri ân sâu sắc và lời cảm ơn chân thành nhất đối với các thầy cô giáo Khoa Thống kê- Tin học trường Đại Học Kinh Tế Đà Nẵng đã tạo điều kiện để em có điều kiện thực tập Đặc biệt, em xin trân trọng cảm ơn cô TS.Hoàng Thị Thanh Hà đã nhiệt tình hướng dẫn để em có thể hoàn thành tốt kì thực tập này

Đặc biệt, em xin chân thành gửi lời cảm ơn đến Mentor Trần Thị Hoài Phương

đã hướng dẫn trực tiếp, chỉ đạo và tạo mọi điều kiện giúp đỡ em trong suốt quá trình học cũng như thực tập tại đây

Em cũng xin trân trọng gửi lời cảm ơn đến toàn thể anh chị trong DG4 Sự hỗ trợ, chia sẻ kiến thức của các anh chị đã tạo điều kiện thuận lợi cho em hoàn thành nhiệm vụ thực tập một cách hiệu quả Những trao đổi, ý kiến đóng góp đã giúp em mở rộng hiểu biết và nâng cao kỹ năng của mình Nhờ vậy mà em đã học thêm được nhiều kiến thức mới và có cái nhìn tường tận hơn về lý thuyết chuyên ngành cũng như thực

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan đề tài “Nghiên cứu về kiểm thử tự động bằng công cụ Katalon Studio và ứng dụng cho hệ thống bán hàng trực tuyến nopCommerce.” là kết quả nghiên cứu của cá nhân trên cơ sở nghiên cứu các lý thuyết đã học và dưới sự hướng dẫn của T.S Hoàng Thị Thanh Hà và mentor Trần Thị Hoài Phương Các thông tin và kết quả mà em đã cung cấp trong báo cáo thực tập này là chân thực và chính xác dựa trên những quan sát và nghiên cứu của riêng em Em cam kết đã thực hiện thực tập một cách nghiêm túc, tuân thủ các quy định, và đưa ra những kết quả phản ánh thực tế nhất

Ngoài ra, trong bài báo cáo có sử dụng một số nguồn tài liệu tham khảo đã được trích dẫn nguồn và chú thích rõ ràng Em xin hoàn toàn chịu trách nhiệm trước bộ môn, khoa và nhà trường về sự cam đoan này

Trang 4

MỤC LỤC

Trang 5

2.5 Software Testing Levels- Các cấp độ của kiểm thử 16

Trang 6

3.4 Kết quả Test 46

Trang 8

DANH MỤC BẢNG BIỂU

Trang 9

DANH MỤC CÁC TỪ VIẾT TẮT

QA: Quality Assurance

QC: Quality Control

TC: Test case

Trang 10

LỜI MỞ ĐẦU

1 Lý do chọn đề tài

Với sự phát triển như vũ bão của công nghệ thông tin nói chung và công nghệ phần mềm nói riêng, việc phát triển phần mềm ngày càng được hỗ trợ bởi nhiều công cụ tiên tiến, giúp cho việc xây dựng phần mềm đỡ mệt nhọc và hiệu quả hơn

Các ứng dụng web càng ngày càng trở nên phổ biến và phát triển mạnh mẽ, nhằm đáp ứng tối đa những đòi hỏi của người dùng khi họ bật trình duyệt web của mình lên Cho đến nay, các ứng dụng website đóng vai trò quyết định trong thương mại điện tử và trao

tiêu chuẩn và yêu cầu của người dùng Do đó, em đã chọn đề tài “Nghiên cứu về kiểm thử

tự động bằng công cụ Katalon Studio và ứng dụng cho hệ thống bán hàng trực tuyến nopCommerce.”

2 Mục tiêu của đề tài

Mục tiêu đề tài là xác định các kịch bản kiểm thử quan trọng và các chức năng cần được kiểm tra trong hệ thống bán hàng trực tuyến nopCommerce

Ứng dụng các kiến thức cơ bản về kiểm thử phần mềm, kiểm thử tự động và kiến thức về công cụ Katalon Studio để viết kịch bản kiểm thử cho hệ thống bán hàng trực tuyến nopCommerce

3 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu: Hệ thống bán hàng trực tuyến nopCommerce và công cụ kiểm thử tự động Katalon Studio

Phạm vi nghiên cứu: Tập trung vào việc xây dựng kịch bản kiểm thử tự động cho nopCommerce bằng Katalon Studio, tập trung vào các chức năng quan trọng như đăng ký, thêm sản phẩm vào giỏ hàng, xóa sản phẩm ra khỏi giỏ hàng và xử lý đơn hàng Nghiên cứu cũng có thể tập trung vào việc tối ưu hóa và cải tiến phương pháp kiểm thử tự động sử dụng Katalon Studio cho nopCommerce

4 Kết cấu của đề tài

Đề tài được tổ chức gồm phần mở đầu, 3 chương nội dung và phần kết luận

Mở đầu

Chương 1: Tổng quan về công ty TMA và vị trí Tester

Trang 11

2

Chương 2: Cơ sở lý thuyết

Chương 3: Triển khai dự án

Kết luận và hướng phát triển

Trang 12

CHƯƠNG 1: TỔNG QUAN VỀ CÔNG TY TMA VÀ VỊ TRÍ TESTER

1.1 Giới thiệu tổng quát về công ty TMA Bình Định

1.1.1 Quá trình hình thành và phát triển của công ty

Hình 1: Logo của công ty TMA

Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với

4000 kỹ sư và khách hàng là những tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp.HCM và 1 ở Tp Quy Nhơn) cùng 6 chi nhánh ở nước ngoài (Mỹ, Úc, Canada, Đức, Nhật, Singapore)

Năm 2017 TMA quyết định đầu tư xây dựng Công viên sáng tạo TMA Bình Định (TMA Innovation Park) tại Thung Lũng Sáng Tạo Quy Nhơn

Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Tháng 8 năm 2018, TMA

đã khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo Quy Nhơn với vốn đầu tư hàng trăm tỷ đồng

Với 25 năm kinh nghiệm cung cấp giải pháp phần mềm cho hàng trăm khách hàng

từ 30 quốc gia, TMA luôn là đối tác chiến lược đáng tin cậy, mang đến các sản phẩm, dịch

vụ, giải pháp hiệu quả, phục vụ đa dạng các mục tiêu quản trị, sản xuất kinh doanh của doanh nghiệp và tổ chức

1.1.2 Tầm nhìn và sứ mệnh

Trang 13

4

Tầm nhìn của TMA Solutions là trở thành một trong những công ty phần mềm hàng đầu thế giới, cung cấp các giải pháp và dịch vụ chất lượng cao cho khách hàng

Công viên Sáng tạo TMA mang sứ mệnh trở thành trung tâm phát triển phần mềm

và công nghệ cao hàng đầu tại miền Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở thành một điểm đến của công nghệ 4.0 tại Việt Nam

Đào tạo và phát triển nhân viên: Công ty có thể đầu tư vào việc đào tạo và phát triển nhân viên để tạo ra một đội ngũ chất lượng cao, có năng lực và kiến thức để đối phó với các thách thức trong lĩnh vực công nghệ thông tin

1.1.4 Lĩnh vực hoạt động

Trí tuệ nhân tạo/ Máy học: Đội ngũ kỹ sư của chúng tôi đã ứng dụng Trí tuệ nhân

tạo vào lĩnh vực tự động hóa máy móc, giáo dục, dược phẩm, xe hơi, quản trị nguồn nhân lực, nông nghiệp…với các công nghệ và giải pháp:

- Phân tích ngôn ngữ tự nhiên

- Nhận dạng hình ảnh và video (Object Detection)

- Nhận dạng tài liệu (Document Parser)

- Nhận dạng quảng cáo (Brand Detection)

- Phân tích năng lực và hành vi học sinh (Student Analytics)

- Tối ưu hoạt động máy móc (Machine Optimization)

Dữ liệu lớn/ Phân tích dữ liệu: Được thành lập vào năm 2013, đội ngũ phân tích dữ

liệu của chúng tôi đã phát triển nhanh chóng với gần 200 kỹ sư với nhiều dịch vụ:

Trang 14

- Thiết kế hệ thống dữ liệu doanh nghiệp

- Thu thập và phân tích dữ liệu trong thời gian thực

- Tích hợp và tổng hợp dữ liệu

- Chuyển đổi dữ liệu

- Dự báo

Iot và thiết bị thông minh: Chúng tôi có hơn 150 kỹ sư đang làm việc trong các dự

án về IoT và Thiết bị thông minh áp dụng trong nhiều lĩnh vực:

Tester – nhân viên kiểm thử phần mềm – là vị trí có vai trò kiểm tra bước cuối của

dự án, phần mềm trước khi các dự án, phần mềm này được triển khai và hoàn thiện Tùy thuộc vào từng lĩnh vực, trường hợp, Tester có thể thực hiện công việc này bằng thủ công hoặc bằng các phần mềm Hay đơn giản hơn, nhân viên Tester chính là người chịu trách nhiệm ở bước cuối cùng của phần mềm để trong quá trình sử dụng không xảy ra lỗi, sự cố

Một số công việc chính của vị trí Tester:

- Nghiên cứu, phân tích yêu cầu : Tester cần ngân cứu, phân tích, xác định những yêu

cầu liên quan đến kỹ thuật trong quá trình xây dựng, phát triển dự án, phần mềm

Họ sẽ cùng phối hợp với các lập trình viên để thực hiện công việc này Việc phân tích cần đảm bảo chính xác, nếu phân tích không đúng, sẽ làm xuất hiện sự sai lệch giữa các bên trong dự án

Trang 15

6

- Đánh giá, phát hiện các vấn đề của phần mềm: Đây là nhiệm vụ quan trọng nhất

của một Tester Họ sẽ thực hiện kiểm thử, phát hiện các lỗi, vấn đề tiềm ẩn có thể ảnh hưởng đến chất lượng phần mềm Tìm lỗi là kỹ năng Tester cần biết và rất quan trọng Tester cần thực hiện kiểm thử, chạy các test case theo kịch bản có sẵn hoặc các danh sách kiểm tra được yêu cầu trước đó

- Ngăn ngừa các lỗi có thể phát sinh của phần mềm: Bên cạnh việc đánh giá, phát

hiện các vấn đề, Tester cần thực hiện các nghiệp vụ chuyên môn để ngăn chặn được việc phát sinh lỗi ngay từ đầu Để làm được điều đó, các Tester cần có khả năng quan sát cũng như đánh giá, kiểm tra trong mọi quy trình xây dựng, phát triển của phần mềm

- Tương tác với khách hàng: Tester sẽ cần phải tương tác trực tiếp với khách hàng để

có thể nắm được các yêu cầu, mong muốn của khách hàng về sản phẩm để lên được các kịch bản hoặc danh mục cần kiểm tra khi chạy thử phần mềm, ứng dụng

- Chuẩn bị các bản báo cáo liên quan đến việc kiểm thử phần mềm Chịu trách nhiệm

hỗ trợ cho các lập trình viên phát triển phần mềm

1.2.2 Các kỹ năng cần có của một Tester

- Kỹ năng chuyên môn về kỹ thuật: Đối với Tester, bạn sẽ cần có các kiến thức, kỹ

năng chuyên sâu về kỹ thuật Các Tester thường được yêu cầu có sự hiểu biết rộng

và thành thạo về các ngôn ngữ lập trình và công cụ có sẵn Ngoài ra, một người tester cũng cần có khả năng phân tích, đánh giá tốt

- Kỹ năng sắp xếp, quản lý công việc: Khi thực hiện kiểm thử, Tester sẽ phải thực

hiện nhiều nghiệp vụ, giao tiếp với nhiều nhân sự, bộ phận khác nhau Do đó, tester cần có được kỹ năng sắp xếp và quản lý công việc khoa học, điều này sẽ giúp bạn không bị chồng chéo trong công việc, xử lý thông tin

- Kỹ năng viết báo cáo: Kết quả sau quá trình kiểm thử sẽ được trình bày dưới dạng

các báo cáo lỗi Tester sẽ cần có kỹ năng viết báo cáo, trình bày khoa học và chi tiết Ngoài ra, cần rõ ràng trong các lỗi của phần mềm để giúp cho nhân sự liên quan xử

lý được các lỗi dễ dàng hơn

- Kỹ năng viết testcase: Test Case là phần quan trọng của các quy trình kiểm thử

Tester cần có khả năng viết testcase phù hợp với những phân đoạn, quy trình, công việc khác nhau Công việc của Tester có hiệu quả hay không sẽ phụ thuộc vào đội các bản testcase có phù hợp hay không

Trang 16

- Kỹ năng giao tiếp: Một Tester sẽ cần giao tiếp với nhiều bộ phận khác nhau như

Developer, Leader, Manager, Coder, BA,… để tìm được các lỗi thiếu sót Do đó, tester cần có khả năng giao tiếp, trình bày tốt, rõ ràng để giúp quá trình kiểm thử được hiệu quả hơn

- Chi tiết và tỉ mỉ: Đây là yêu cầu để kết quả công việc đạt hiệu quả cao nhất Bởi vì

khi testing, chúng ta phải quan tâm đến từng dấu chấm, dấu phẩy của từng thông điệp Ngoài ra, ngay cả mức độ logic của thông điệp và các icon nhỏ nhất cũng phải được xem xét một cách kỹ càng Nếu thông điệp đưa tới người dùng có bất kỳ lỗi nào, nó không chỉ ảnh hưởng đến bạn mà còn ảnh hưởng đến cả sự phát triển của công ty

1.2.3 Cơ hội nghề nghiệp

Hiện nay ở Việt Nam nghề Tester có cơ hội làm việc rất cao nhất là đối với các bạn trẻ có sự nhạy bén, đam mê sáng tạo Nếu kiên trì theo nghề tester bạn sẽ luôn cập nhật được những công nghệ mới, được tiếp xúc với các dự án lớn khác nhau, học hỏi được nhiều thứ Đối với các Tester dày dạn kinh nghiệm thì cơ hội thăng tiến trong nghề khá cao

Lương của Tester cũng khá đa dạng Tùy thuộc vào năng lực và kinh nghiệm, mức lương cho Tester sẽ có sự khác nhau Cụ thể:

- Đối với những Tester mới vào nghề, chưa có kinh nghiệm: Mức lương dao động từ 500$- 700$ tương đương từ 10 -15 triệu đồng/tháng

- Đối với những Tester giàu kinh nghiệm, kỹ năng giỏi Mức lương dao động từ 700$ – 1000$

- Đối với những quản lý Tester: Mức lương dao động từ 1000$ – 2000$

Lộ trình phát triển của nghề Tester cũng rất rõ ràng và đầy tiềm năng, được chia theo các level sau:

- Level 1: Fresher Là những bạn mới tốt nghiệp các khóa đào tạo Tester cơ bản và bắt đầu đi làm Tester Ở level này, các bạn Tester hoàn toàn là các bạn mới học xong các khóa học về Kiểm thử phần mềm, mới tiếp xúc môi trường doanh nghiệp, hoặc có thể là những người đã đi làm trái ngành mới thay đổi công việc sang Tester

- Level 2: Junior Ở level junior, bạn Tester đã hiểu thực thi các test case, thêm vào

đó, có thể báo cáo các bugs nếu có

Trang 17

8

- Level 3: Senior Đây là những chuyên gia thành thạo về kỹ thuật testing, nắm rõ các yêu cầu kiểm thử phần mềm cho các doanh nghiệp với các ứng dụng phức tạp như tài chính, sức khỏe, thương mại điện tử…

- Level 4: Test Leader Thông thường, sau khoảng 5 năm kinh nghiệm trở lên, tester

có thể nắm giữ vai trò quản lý Những người này chịu trách nhiệm tổ chức công việc cần được thực hiện và phân công nhiệm vụ cụ thể cho các Tester trong team dự án Tương ứng với số năm kinh nghiệm Test Leader có sẽ là quy mô lớn, nhỏ khác nhau

mà các đội họ sẽ được quản lý

- Level 5: Test Manager Là những người tổ chức và điều phối các nhóm kiểm thử (test team): quản lý metrics, lập kế hoạch chiến lược và đưa ra dự đoán

- Level 6: Senior Test Manager Tùy thuộc vào độ cứng và số năm kinh nghiệm, Test Manager có thể đạt được vị trí Senior Test Manager

Bên cạnh việc trở thành chuyên gia trong nghề Tester, Sau khi có đủ kiến thức và kinh nghiệm ở level 4, bạn có thêm các hướng đi mới như: trở thành BA (Business Analyst) hoặc PM (Project Manager- quản lý dự án) Đây đều là các hướng phát triển rất tiềm năng nếu muốn làm Tester

1.3 Kết chương

Trong chương này em đã hiểu được tổng quan về công ty TMA và về vị trí Tester,

mô tả về vị trí, các kỹ năng cần có của một người Tester và cơ hội nghề nghiệp của vị trí này Trong chương tiếp theo em sẽ trình bày về các cơ sở lý thuyết về kiểm thử và lý thuyết liên quan đến đề tài

Trang 18

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Tổng quan về kiểm thử phần mềm

2.1.1 Khái niệm kiểm thử phần mềm

Kiểm thử phần mềm là phương pháp kiểm tra xem sản phẩm phần mềm đó trên thực

tế có phù hợp với các yêu cầu đã đặt ra hay không, và đảm bảo rằng không có lỗi hay khiếm khuyết Nó được sử dụng để xác định tính đúng đắn, đầy đủ và chất lượng của phần mềm máy tính được phát triển

2.1.2 Mục tiêu của kiểm thử

- Xác định chất lượng của sản phẩm

- Ngăn chặn phòng tránh lỗi

- Sẵn sàng tích hợp các thành phần

- Cung cấp thông tin để ra quyết định

- Xác minh và xác thực yêu cầu của người dùng

- Xây dựng sự tự tin trong công việc

- Tìm ra lỗi trước khi khách hàng phát hiện ra chúng

2.1.3 Vòng đời kiểm thử phần mềm

Vòng đời kiểm thử phần mềm (STLC) là quá trình kiểm thử được thực hiện một cách có hệ thống và có kế hoạch Trong quá trình STLC, các hoạt động khác nhau được

thực hiện để cải thiện chất lượng sản phẩm

Trang 19

10

Hình 2: Vòng đời kiểm thử phần mềm

Requirement analysis - Phân tích yêu cầu

- Phân tích chi tiết các tài liệu về thiết kế hệ thống, những yêu cầu của khách hàng về tiêu chí, chất lượng của sản phẩm, các bản mẫu (prototype) mà khách hàng cung

cấp

- Yêu cầu được chia làm 2 dạng: Functional (Chức năng) và Non-Functional (Phi chức năng) Yêu cầu về Functional sẽ mô tả tính năng còn Non-Functional sẽ mô tả

hiệu năng, tính bảo mật, tính hữu dụng của phần mềm

- Đưa ra các câu hỏi còn thắc mắc về yêu cầu phần mềm với BA, team, leader, khách

hàng để hiểu rõ hơn về yêu cầu sản phẩm

Test planning - Lập kế hoạch kiểm thử

- Xác định phạm vi kiểm thử: thời gian, lịch trình cho các công việc

- Xác định nguồn lực: con người và thiết bị, cần bao nhiêu người tham gia, ai làm

công việc gì, cần những thiết bị hỗ trợ nào, số lượng ra sao

- Lên kế hoạch thiết kế công việc kiểm thử: đưa ra các chức năng cần kiểm thử những công việc gì cần thực hiện, thời gian bao lâu, xác định những điều kiện tối thiểu để

bắt đầu cũng như khi nào thì kết thúc hoạt động kiểm thử với từng chức năng

Test case development - Thiết kế kịch bản kiểm thử

- Review tài liệu: để xác định công việc cần làm, các công việc có khác gì so với dự

án trước khách hàng đưa cho, chức năng nào cần test, chức năng nào không cần test lại nữa Từ đó, vừa có thể tiết kiệm thời gian mà vẫn đưa ra được một kịch bản kiểm

thử đầy đủ và hiệu quả

Trang 20

- Viết test case/ check list: viết test case chi tiết dựa vào kế hoạch đã đưa ra và vận dụng các kỹ thuật thiết kế kịch bản kiểm thử Test case cần bao phủ được tất cả các trường hợp kiểm thử có thể xảy ra cũng như đáp ứng đầy đủ các tiêu chí của sản

phẩm Đồng thời tester cũng cần đánh giá mức độ ưu tiên cho từng test case

- Chuẩn bị dữ liệu kiểm thử: cần chuẩn bị trước các dữ liệu kiểm thử cho các trường

hợp cần thiết như test data, test script

- Review test case/ check list: Sau khi hoàn thành, các thành viên trong đội kiểm thử hoặc test leader cũng cần review lại test case đã tạo để có thể bổ sung, hỗ trợ lẫn

nhau nhằm tránh những sai sót trong thiết kế test case và rủi ro về sau

Test environment set up - Thiết lập môi trường kiểm thử

- Việc cài đặt môi trường kiểm thử là giai đoạn cũng rất quan trọng trong vòng đời phát triển phần mềm vì nếu môi trường không phù hợp với sản phẩm hay mong muốn khách hàng thì kết quả kiểm thử sẽ không chính xác Môi trường kiểm thử sẽ được thiết lập dựa trên những yêu cầu của khách hàng, hay đặc điểm của sản phẩm

ví dụ như server/ client/ network, Các chuyên viên kiểm thử cũng cần chuẩn bị một vài test case để kiểm tra xem môi trường cài đặt đã sẵn sàng cho việc kiểm thử

hay chưa

Test execution - Thực hiện kiểm thử

- Thực hiện test theo kịch bản kiểm thử

- So sánh kết quả kiểm thử với kết quả mong đợi để phát hiện ra các lỗi sai và tiến

hành theo dõi các lỗi đó đến khi chúng được fix hoàn toàn

- Cần theo dõi tiến độ của dự án và điều chỉnh sao cho phù hợp với kế hoạch đề ra

- Thường xuyên báo cáo về tình hình test cho các bên liên quan như team leader,

người quản lý dự án, khách hàng

Test cycle closure - Đóng chu trình kiểm thử

- Tổng hợp và viết báo cáo kết quả cuối cùng của việc kiểm thử

- Team test phần mềm cũng cần xem lại quá trình thực hiện để nhìn ra những điểm

tốt, chưa tốt của team, cũng như rút kinh nghiệm cho những lần kiểm thử sau này

2.1.4 Các nguyên tắc của kiểm thử phần mềm

Trang 21

12

Kiểm thử cho thấy sự tồn tại của lỗi: Kiểm thử chỉ có thể chứng minh được rằng

sản phẩm có lỗi nhưng không thể chứng minh rằng sản phẩm không còn lỗi Điều này có nghĩa là sẽ luôn có lỗi nhưng không được phát hiện trong phần mềm, ngay cả khi không tìm thấy lỗi, cũng không đồng nghĩa rằng phần mềm đúng hoàn toàn Do đó, điều quan trọng là chúng ta nên tập trung thiết kế các trường hợp kiểm thử sao cho có thể tìm được

càng nhiều lỗi càng tốt

Kiểm thử toàn bộ là không thể: Kiểm thử mọi thứ là không khả thi trừ trường hợp

nhỏ Thay vì kiểm thử toàn bộ, chúng ta có thể dựa vào phân tích rủi ro (risk analysis), độ

ưu tiên (priorities), sử dụng kỹ thuật test (test techniques) để lựa chọn các ca kiểm thử phù

hợp nhất

Kiểm thử càng sớm càng tốt: Nguyên tắc này yêu cầu bắt đầu thử nghiệm phần mềm

trong giai đoạn đầu của vòng đời phát triển phần mềm Các hoạt động kiểm thử phần mềm

từ giai đoạn đầu tiên như nghiên cứu yêu cầu hay design sẽ giúp phát hiện bug sớm hơn

Phát hiện lỗi càng sớm thì sẽ tiết kiêm được nhiều thời gian và chi phí

Lỗi thường đi theo cụm: Phần lớn lỗi tập trung vào những module, thành phần chức

năng chính của hệ thống Điều này cũng thuận theo nguyên lý Pareto: 80% số lượng lỗi

được tìm thấy trong 20% tính năng của hệ thống

Nghịch lý thuốc trừ sâu: Một bộ dữ liệu test được sử dụng lặp đi lặp lại sẽ không

tìm được ra các lỗi mới Vì các lỗi được tìm thấy đã được sửa trong giai đoạn trước, và đã được khắc phục Vì vậy các bộ dữ liệu test cần phải được xem xét cập nhật thường xuyên

để giúp tìm ra lỗi mới

Phần mềm không có lỗi là sai lầm: Có thể phần mềm 99% không có lỗi vẫn không

sử dụng được nếu hệ thống được xây dựng sai yêu cầu mà khách hàng đề ra Kiểm thử không chỉ là tìm ra các lỗi, mà còn để kiểm tra xem phần mềm có đáp ứng nhu cầu nghiệp

vụ của khách hàng hay không

Kiểm thử phụ thuộc vào ngữ cảnh: Cách tiếp cận, phương pháp, kỹ thuật và các loại

kiểm thử tuỳ thuộc vào ứng dụng Kiểm thử phải được điều chỉnh cho phù hợp với rủi ro vốn có trong việc sử dụng và môi trường của ứng dụng phần mềm Ví dụ, chúng ta không thể áp dụng bộ kiểm thử trên môi trường Mobile app để thực hiện kiểm thử lên một Web

trên PC được

Trang 22

2.1.5 Phân biệt Error/ Fault/ Failure

Error: là lỗi do con người gây ra trong quá trình viết code hoặc tài liệu dẫn đến kết quả sai Ví dụ: Developer đặt tên biến sai cú pháp dẫn đến khi gọi biến này thì không ra

kết quả

Fault: Trạng thái của phần mềm do lỗi Ví dụ đăng nhập vào facebook sẽ có thông báo đăng nhập thành công nhưng khi lỗi fault xảy ra thì không có thông báo mà mình vẫn

đăng nhập vào được

Failure: Độ lệch của phần mềm so với kết quả mong đợi của nó Ví dụ khách hàng yêu cầu server có thể hoạt động tốt khi có 1000 user, tuy nhiên trên thực tế server chỉ có

thể hoạt động tốt khi có 900 user

2.1.6 Phân biệt QA & QC

QA là quá trình tổng thể nhằm đảm bảo rằng quy trình phát triển, quản lý và cung cấp sản phẩm hoặc dịch vụ đáp ứng các tiêu chuẩn chất lượng Nó tập trung vào việc xác định và thiết lập các quy trình, tiêu chuẩn và phương pháp phù hợp để đảm bảo chất lượng trong suốt quá trình phát triển và triển khai sản phẩm QA thường bắt đầu ngay từ giai đoạn

thiết kế và kéo dài trong suốt quá trình phát triển sản phẩm

QC là quá trình kiểm tra chất lượng của sản phẩm hoặc dịch vụ tại các điểm cụ thể trong quy trình sản xuất hoặc phát triển Nó tập trung vào việc kiểm tra, đo lường và kiểm soát chất lượng để đảm bảo rằng sản phẩm hoặc dịch vụ đáp ứng các tiêu chuẩn chất lượng

đã đặt ra QC thường bắt đầu sau khi sản phẩm hoàn thành và sẵn sàng để kiểm tra

QA và QC thường liên quan mật thiết đến quá trình Verification và Validation QA đảm bảo rằng quy trình phát triển và triển khai sản phẩm hoặc dịch vụ được thực hiện đúng cách, trong khi QC thực hiện các hoạt động kiểm tra chất lượng để đảm bảo rằng sản phẩm

hoặc dịch vụ đáp ứng các tiêu chuẩn đã đặt ra

2.2 Vòng đời phát triển phần mềm

Requirement Analysis: Đây là giai đoạn đầu tiên của một SDLC Các kỹ sư sẽ tiến

hành thu thập các thông tin sơ khai về phần mềm muốn phát triển

Design: Thiết kế tổng thể, chi tiết về phần mềm muốn phát triển

Trang 23

14

Implementation: Hai bên có thể trao đổi để chốt được phương án phát triển tốt nhất

Ở giai đoạn Implementation các lập trình viên tiến hành coding theo những tài liệu và mẫu thiết kế được khách phê duyệt

Testing: Tiến hành kiểm thử và cập nhật những lỗi lên các tool quản lý theo yêu

cầu Kiểm thử viên và lập trình viên sẽ sửa lỗi và cập nhật lại tình hình của phần mềm Tester có thể áp dụng các phương pháp kiểm thử khác nhau để phát hiện ra lỗi nhanh nhất

và tiến hành fix lại lỗi

Deployment: Kiểm thử viên tiến hành triển khai phát triển phần mềm ở môi trường

thực tế

Maintenance: Bảo trì phần mềm và xử lý các lỗi phát sinh nếu có Đây là giai đoạn

kết thúc của một vòng phát triển phần mềm Lúc này, phần mềm có thể chạy tốt, công việc của người kiểm thử viên và lập trình viên là bảo trì và tiến hành nâng cấp phần mềm

Hình 3: Các giai đoạn của vòng đời phát triển phần mềm

2.3 Software Testing Types – Các loại kiểm thử phần mềm

Trang 24

Automation testing là phương pháp kiểm thử tự động Người tester sẽ phải viết các kịch bản kiểm thử sau đó sử dụng các tool hỗ trợ để thực hiện kiểm thử, phương pháp này

sẽ giúp việc kiểm thử hiệu quả hơn và đỡ tốn thời gian hơn Automation testing sẽ giúp chạy các kịch bản kiểm thử lặp lại nhiều lần và các task kiểm thử khác khó thực hiện bằng tay như performance testing và stress testing

2.4 Software Testing Methods- Các phương pháp kiểm thử phần mềm

2.4.1 White Box Testing

Kiểm thử hộp trắng là phương pháp kiểm thử phần mềm, trong đó tester cần chú ý đến cách cấu trúc bên trong hoạt động cũng như đầu vào và đầu ra Trong trường hợp này, yêu cầu người kiểm tra phải biết ngôn ngữ lập trình, hiểu được chi tiết về các đoạn code cần test

Hình 4: Kiểm thử hộp trắng

2.4.2 Black Box Testing

Kiểm thử hộp đen không yêu cầu người kiểm thử cần phải có bất kỳ kiến thức về

mã hoặc thuật toán của chương trình Nó kiểm tra các chức năng của hệ thống tức là những

gì hệ thống được cho là cần phải làm dựa trên các " Đặc tả yêu cầu" Các trường hợp kiểm thử thường được xây dựng xung quanh nó Hay nói cách khác, kiểm thử hộp đen là phương pháp test dựa trên đầu vào và đầu ra của chương trình để test mà không quan tâm tới code bên trong được viết ra sao

Trang 25

16

Hình 5: Kiểm thử hộp đen

2.5 Software Testing Levels- Các cấp độ của kiểm thử

Test level là tập các hoạt động kiểm thử được tổ chức và có sự liên kết với nhau Các mức độ kiểm thử cũng liên quan đến các giai đoạn trong quy trình phát triển phần mềm Có 4 cấp độ kiểm thử phần mềm là:

- Kiểm thử đơn vị (Unit Testing)

- Kiểm thử tích hợp (Integration Testing)

- Kiểm thử hệ thống (System Testing)

- Kiểm thử chấp nhận (Acceptance Testing)

2.5.1 Unit Testing

Kiểm thử đơn vị là một loại kiểm thử phần mềm tập trung vào các đơn vị hoặc thành phần riêng lẻ của hệ thống phần mềm Mức độ kiểm thử phần mềm này thường do Developer phụ trách, họ sẽ đi kiểm tra các module, các hàm, các phương thức, các lớp,…

mà họ viết ra nhằm gia tăng sự tin cậy cho các chức năng mà mình viết

2.5.2 Integration Testing

Là loại kiểm thử trong đó các module phần mềm hay từng chức năng riêng lẻ được

tích hợp lại với nhau và được kiểm tra theo nhóm Cách tiếp cận:

- Phương pháp Top Down: Kiểm tra diễn ra từ trên xuống theo luồng điều khiển của

hệ thống Các đơn vị cao nhất được kiểm tra trước và các cấp đơn vị thấp hơn được

kiểm tra từng bước sau đó

Trang 26

- Phương pháp Bottom up: Các đơn vị cấp thấp được kiểm tra trước và các cấp đơn

vị cao hơn được kiểm tra sau đó

- Phương pháp Hybrid: Là sự kết hợp của hai phương pháp Top Down và Bottom Up

Ở đây, các module hàng đầu được kiểm tra với các module thấp hơn đồng thời các

module thấp hơn được tích hợp với các module hàng đầu và được kiểm thử

2.5.3 System Testing

System Testing là thực hiện kiểm thử một hệ thống đã được tích hợp hoàn chỉnh để xác minh rằng nó đúng yêu cầu của phần mềm Kiểm thử hệ thống liên quan đến việc xác minh các yêu cầu chức năng và phi chức năng của hệ thống được thực hiện bởi tester

Một số loại kiểm thử thường được thực hiện trong System Test:

- Kiểm thử chức năng (Functional Test)

- Kiểm thử hiệu năng (Performance Test)

- Kiểm thử cơ sở dữ liệu (Database Test)

- Kiểm thử khả năng bảo mật (Security Test)

- Kiểm thử tính khả dụng (Usability Test)

- Kiểm tra tính tương thích (Compatibility Test)

- Kiểm tra khả năng phục hồi (Recovery Test)

2.5.4 Acceptance Testing

Người dùng cuối hoặc khách hàng kiểm tra hệ thống để kiểm tra xem hệ thống có đáp ứng các yêu cầu, mong đợi và mức độ phù hợp của người dùng hay không Kiểm thử

chấp nhận được chia thành 2 mức khác nhau:

- Kiểm thử alpha: được thực hiện tại nơi phát triển phần mềm, lập trình viên sẽ ghi

nhận các lỗi hoặc phản hồi, và lên kế hoạch sửa chữa

- Kiểm thử beta: được thực hiện tại bởi khách hàng/ người dùng cuối tại địa điểm của khách hàng Phần mềm sẽ được gửi tới cho người dùng để kiểm thử ngay trong môi trường thực, lỗi hoặc phản hồi cũng sẽ gửi ngược lại cho lập trình viên

để sửa chữa

2.6 Test case

Trang 27

18

2.6.1 Test case là gì?

Test case là một trường hợp cần test Test sẽ dựa theo các thông tin trên test case (đầu vào, các bước test, môi trường test, kết quả mong đợi) để thực hiện test Sau đó so sánh kết quả mong đợi với đầu ra của chương trình để xác định một chức năng của ứng dụng phần mềm hoạt động đúng hay không

2.6.2 Các thành phần của Test case

- Test Case ID (Mã và tên của Test case): Giá trị cần để xác định số lượng trường hợp cần kiểm thử

- Items (Mục đích kiểm thử): Mô tả mục đích sử dụng test case Giúp tester hiểu và thực hiện đúng khi kiểm thử phần mềm theo test case mô tả

- Test summary: Để mô tả tóm tắt trường hợp cần kiểm thử

- Pre-Condition (Điều kiện tiên quyết): Mô tả điều kiện cần có để thực hiện test case này

- Test Steps (Mô tả các bước): Mô tả các bước cần thực hiện để tái hiện nội dung test case khi tester thực hiện kiểm thử phần mềm

- Test Data (Dữ liệu đầu vào): Là dữ liệu nhập vào các trường của phần mềm để thực hiện kiểm thử phần mềm

- Expected results (Kết quả mong đợi): Một test case được viết tốt cần phải đề cập một cách rõ ràng kết quả mong đợi của ứng dụng hoặc hệ thống Chỉ ra những gì mong đợi như là đầu ra của bước kiểm tra đó

2.6.3 Các kỹ thuật của Test case

- Phân vùng tương đương: Là phương pháp chia các điều kiện đầu vào thành những

vùng tương đương nhau Tất cả các giá trị trong một vùng tương đương sẽ cho một kết quả đầu ra giống nhau Test case của một giá trị điển hình bằng với các kiểm thử của các giá trị còn lại trong cùng một nhóm Vì vậy chúng ta có thể test một giá trị đại diện trong vùng tương đương Do đó, nó giúp giảm số lượng các test case được thiết kế và thực hiện

- Phân tích giá trị biên: Là kỹ thuật kiểm thử hộp đen để kiểm tra ranh giới giữa các

phân vùng thay vì kiểm tra nhiều giá trị trong vùng tương đương Điều này là do chúng ta thường tìm thấy một số lỗi lớn tại các đường biên chữ không phải tại tâm

Trang 28

của các giá trị đầu vào được xác định và nếu nó đúng với các giá trị biên thì cũng đúng với toàn bộ vùng tương đương Ngoài ra, BVA được coi là một loại thiết kế test case bổ sung để phân loại tương đương

- Chuyển đổi trạng thái: Là phương pháp kiểm thử mà trong đó dựa vào thay đổi điều

kiện đầu vào gây ra thay đổi trạng thái trong phần mềm được kiểm thử Trong kỹ thuật này, tester sẽ cung cấp cả giá trị kiểm thử đầu vào hợp lệ và không hợp lệ, sau

đó xác định cách xử lý của hệ thống

- Bảng ra quyết định: Là một kỹ thuật tốt khi input có nhiều điều kiện và có nhiều

action output Giúp giảm thời gian chạy thử nhưng vẫn giữ đủ độ bao phủ của

khoảng trống cụ thể trong phần đăng nhập được điền vào

2.7 Tổng quan về công cụ kiểm thử Katalon Studio

2.7.1 Katalon Studio là gì?

Katalon Studio là một bộ công cụ toàn diện cho kiểm thử tự động hóa ứng dụng trên web và điện thoại di động Công cụ này bao gồm một gói đầy đủ các tính năng mạnh mẽ giúp vượt qua những thách thức phổ biến trong tự động hóa thử nghiệm giao diện web, ví

dụ như pop-up, iFrame và wait-time Giải pháp thân thiện và linh hoạt này giúp tester thực hiện công tác kiểm tra tốt hơn, làm việc nhanh hơn và khởi chạy phần mềm chất lượng cao nhờ vào sự thông minh mà nó cung cấp cho toàn bộ quá trình tự động hóa kiểm thử

Hình 6: Công cụ kiểm thử Katalon

2.7.2 Các tính năng chính của Katalon Studio

Trang 29

20

- Cài đặt nhanh chóng và dễ dàng: Katalon studio cài đặt dễ dàng giúp các chuyên viên kiểm thử phần mềm thiết lập môi trường cài đặt một cách nhanh chóng và dễ dàng Có thể chạy thử được những kịch bản kiếm thử nhanh chóng qua việc sử dụng các tập lệnh kiểm thử có sẵn và mẫu từ kho thư viện khóa

- Nó có thể thực hiện từng bước hiệu quả và nhanh, từ các thiết lập dự án, tạo ca kiểm thử và thực hiện các báo cáo bảo trì

- Sử dụng đơn giản: Các gói triển khai đơn giản, giúp gắn kết được mọi thứ cần để triển khai các công cụ kiểm thử tự động mạnh mẽ

- Chế độ sử dụng linh hoạt: Sử dụng các bản ghi và các từ khóa để xây dựng các ca kiểm thử tự động khi IDE xây dựng các tập lệnh nâng cao Các tester mới có thể recording và keywords để xây dựng các bài kiểm tra tự động hóa

- Katalon Studio giúp hỗ trợ nhiều nền tảng như OS X 10.5+, Window 7,8,10 ( 32 bit

và 64 bit)

2.7.3 Cấu trúc của Katalon Studio

- Test Cases: Chứa các kịch bản kiểm thử được viết bằng Groovy hoặc sử dụng giao diện kéo thả

- Object Repository: Chứa các đối tượng được sử dụng trong các kịch bản kiểm thử, như các phần tử web hoặc API

- Test Suites: Chứa các nhóm các kịch bản kiểm thử được thực hiện theo một trình tự xác định

- Test Suite Collection: Chứa các nhóm các test suite được thực hiện song song hoặc tuần tự trên nhiều thiết bị hoặc nền tảng

- Data Files: Chứa các tệp dữ liệu được sử dụng trong các kịch bản kiểm thử, như Excel, CSV hoặc cơ sở dữ liệu

- Keywords: Chứa các từ khóa được định nghĩa bởi người dùng để mở rộng chức năng của Katalon Studio

- Reports: Chứa các báo cáo về kết quả của các kịch bản kiểm thử, test suite và test suite collection

2.7.4 Lý do nên sử dụng Katalon

- Viết test case nhanh và đơn giản, được hỗ trợ cả chế độ Manual và Scripting

- Kiểm thử được các ứng dụng Web, API, Mobile và Desktop application

Ngày đăng: 12/12/2023, 19:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w