Tải bản đầy đủ (.docx) (78 trang)

BÁO cáo CHUYÊN đề học PHẦN KIỂM THỬ và đảm bảo CHẤT LƯỢNG PHẦN mềm đề tài KIỂM THỬ WEBSITE QUẢN lý SINH VIÊN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.15 MB, 78 trang )

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM

Đề tài: KIỂM THỬ WEBSITE QUẢN LÝ SINH VIÊN
Sinh viên thực hiện
Giảng viên hướng dẫn :
Ngành
Chuyên ngành
Lớp
Khóa


PHIẾU CHẤM ĐIỂM
Sinh viên thực hiện:
Họ và tên
Đinh Tiến Đông
Mã SV: 18810310593

Giảng viên chấm:
Họ và tên
Giảng viên chấm 1:

Giảng viên chấm 2:


LỜI CẢM ƠN
Trên thực tế khơng có sự thành cơng nào mà không gắn liền với những sự
hỗ trợ, sự giúp đỡ dù ít hay nhiều, dù là trực tiếp hay gián tiếp của người khác.


Trong suốt thời gian từ khi bắt đầu học tập, chúng em đã nhận được rất nhiều sự
quan tâm, giúp đỡ của Thầy Cô, gia đình và bạn bè.
Chúng em xin chân thành cám ơn cô Lê Thị Trang Linh đã tận tâm hướng
dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo
luận về mơn học. Trong thời gian được học tập và thực hành dưới sự hướng dẫn
của thầy cô, chúng em không những thu được rất nhiều kiến thức bổ ích, mà cịn
được truyền sự say mê và thích thú đối với bộ mơn “Kiểm thử và đảm bảo
chất lượng phần mềm”. Nếu khơng có những lời hướng dẫn, dạy bảo của thầy
cơ thì chúng em nghĩ báo cáo này của chúng em rất khó có thể hoàn thành được.
Em xin chân thành gửi lời cảm ơn sâu sắc tới các thầy, các cơ đã tận tình
giảng dạy và truyền đạt cho chúng em những kiến thức, kinh nghiệm quý báu
trong suốt thời gian học tập và rèn luyện.
Sau cùng, chúng em xin kính chúc các thầy cô trong Khoa Công Nghệ
Thông Tin dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của
mình là truyền đạt kiến thức cho thế hệ mai sau.
Chúng em xin chân thành cảm ơn.
Sinh viên thực hiện
Đinh Tiến Đông


LỜI MỞ ĐẦU
Ngày nay công nghệ thông tin đang ngày càng phát triển nhanh chóng,
kéo theo đó là hệ thống mạng, các phần mềm cũng gia tăng cả về số lượng theo
quy mô rộng và cả về chất lượng phần mềm. Nhưng cũng từ đó đã nảy sinh ra
nhiều vấn đề vễ lỗi hỏng hóc phần mềm khơng đáng có gây ra các ảnh hưởng
nghiêm trọng đến xã hội, kinh tế, … Những lỗi này có thể do tự bản thân phần
mềm bị hỏng do không được kiểm duyệt kĩ lưỡng trước khi đưa cho người dùng
cuối hay cũng có thể do có người cố tình phá hoại nhằm đánh cắp thông tin cá
nhân. Những vấn đề nan giải và cấp thiết này càng có xu hướng mở rộng trong
các năm gần đây. Từ đây ta dễ dàng nhận ra là mặc dù phần mềm phát triển

ngày càng phức tạp nhưng vấn đề chất lượng vẫn là một dấu hỏi lớn cần xem xét
cẩn thận.
Do đó yêu cầu đặt ra là cần có cơng tác kiểm thử phần mềm thật kĩ lưỡng
nhằm ngăn chặn các lỗi hay hỏng hóc cịn tiềm tàng bên trong phần mềm mà ta
chưa kịp nhận ra. Tuy nhiên vì phần mềm ngày càng lớn, hàng nghìn module, có
thể do cả một cơng ty hàng nghìn người phát triển vì vậy để kiểm thử được một
phần mềm lớn như vậy sẽ tốn rất nhiều công sức và thời gian nếu làm thủ công,
chưa kể đến chất lượng kiểm thử sẽ khơng cao và chính xác. Theo nhiều tính
tốn thì cơng việc kiểm thử đóng vai trị hết sức quan trọng trong quy trình phát
triển phần mềm. Vì vậy, cần có các hệ thống kiểm thử phần mềm một cách tự
động cho phép ta thực hiện được các cơng việc một cách nhanh chóng và độ an
tồn, chính xác cao nhất có thể. Và đó chính là lý do để em quyết định thực hiện
đề tài: “Kiểm Thử Website quản lý sinh viên”.

Sinh viên thực hiện
Đinh Tiến Đông

1


CHƯƠNG 1: TỔNG QUAN VỀ CÔNG CỤ
KIỂM THỬ TỰ ĐỘNG POSTMAN
Trong phạm vi tìm hiểu báo cáo chỉ trình bày một trong những công cụ
phổ biến được nhiều người dùng để tìm hiểu và thực nghiệm. Đó là cơng cụ
PostMan. Đây là cơng cụ rất mạnh và tiện lợi có thể dùng để kiểm thử tự động
nền tảng web.
1.1Giới thiệu PostMan
1.1.1 Khái Niệm

-Postman là một công cụ cho phép chúng ta thao tác với API, phổ biến

nhất là REST.
Postman hiện là một trong những công cụ phổ biến nhất được sử dụng
trong thử nghiệm các API. Với Postman, ta có thể gọi Rest API mà khơng
cần viết dịng code nào.
Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH,
DELETE, …). Bên cạnh đó, nó cịn cho phép lưu lại lịch sử các lần request, rất
tiện cho việc sử dụng lại khi cần.

1.1.2 Các thành phần của Ranorex
Ranorex Studio chia làm 3 thành phần chính, mỗi phiên bản đều có vai trị
cụ thể trong việc kiểm thử. Các thành phần đó là:
Deskop Testing: là cơng cụ con thuộc Ranorex Studio phát triển cho việc
kiểm thử với các ứng dụng, hệ thống trên Windows mà không bị giới hạn cho dù
nó dựa trên CEF, WPF, Java, .NET hay SAP. Ranorex Studio sẽ ngay lập tức
nhận diện tất cả đối tượng trong ứng dụng đưa vào.
Để đảm bảo tận dụng tối đa thời gian của kiểm thử viên, Ranorex Studio
cũng cho phép kiểm thử đồng thời các ứng dụng trên deskop trong nhiều mơi
trường - sử dụng các cấu hình của hệ thống khác nhau bằng công cụ Ranorex
Remote. Kiểm thử viên cũng có thể tiếp tục làm việc trên máy tính của mình
trong thời gian chờ đợi nhận báo cáo kết quả kiểm thử. Bên cạnh đó, Ranorex
2


Remote cũng rất mạnh trong làm việc nhóm. Kiểm thử viên trong nhóm có thể
truy cập và triển khai kiểm thử cho cùng một ứng dụng, cũng như nhận được tất
cả các báo cáo kiểm thử từ xa để theo dõi tình trạng và hiệu suất của dự án.
Web Testing: là công cụ cho phép kiểm thử viên tạo kiểm thử một lần và
chạy nó trên nhiều trình duyệt và phiên bản trình duyệt. Để đảm bảo trải nghiệm
người dùng cuối là hoàn hảo cũng như tiết kiệm thời gian, chi phí, kiểm thử viên
chỉ cần ghi lại kịch bản kiểm thử một lần và sau đó sử dụng lại trong Firefox, IE,

Edge, Chrome và Safari mà không cần sửa đổi.
Mobile Testing: cho phép kiểm thử trên tất cả các thiết bị mobile thật
hoặc chế độ giả lập để thuận tiện hơn trong việc sửa các lỗi gặp phải. Với cơ chế
nhận dạng đối tượng, Ranorex giúp bạn dễ dàng xác nhận và xác minh vào quy
trình kiểm thử các ứng dụng di động của mình. Phương pháp này cho phép bạn
kiểm tra số lượng lớn các thuộc tính điều khiển. Với thiết bị giả lập phong phú
có sẵn từ máy tính bảng, điện thoại thơng minh và thiết bị đeo. Ranorex đảm
bảo các ứng dụng di động hoạt động trên tất cả các thiết bị với thực hiện kiểm
thử di động song song trên các thiết bị IOS và Android khác nhau.
1.1.3 Môi trường và công nghệ mà Ranorex hỗ trợ
Ranorex khơng có ngơn ngữ lập trình riêng của chính nó, thay vào đó, nó
dùng ngơn ngữ lập trình như C# và VB .Net
Nhưng về mặt giấy phép sử dụng thì Selenium là cơng cụ mã nguồn mở
nên sử dụng hồn tồn miễn phí, với QTP muốn sử dụng phải mua giấy phép với
chi phí khoảng 8000 USD cịn với Ranorex thì chi phí khoảng 3500 USD/năm
sử dụng Đây chính là hạn chế của Ranorex vì thế nên Ranorex thường chỉ được
sử dụng ở các dự án lớn với nhiều kinh phí.
Cơng nghệ hỗ trợ
Ứng dụng desktop
Ứng dụng web
Ứng dụng mobile
Chụp và chạy lại
3


Ghi lại hành động
Bảng hành động cho việc chỉnh sửa các bước sau khi
ghi
Cơng cụ tự động hóa thử nghiệm
Thiết lập và cấu hình dễ dàng

Tạo các bài kiểm tra mà khơng cần lập trình
Đã bao gồm đầy đủ IDE
Báo cáo được tích hợp sẵn
So sánh dựa trên hình ảnh
Xác định đối tượng
Sử dụng Xpath1
Chỉnh sửa Xpath trên màn hình giao diện
Phí
Miễn phí

1

XPath được định nghĩa là đường dẫn XML. Nó là một cú pháp hoặc

ngơn ngữ để tìm kiếm bất kì phần tử nào trên trang web bằng cách sử dụng biểu
thức XML path. XPath được sử dụng để tìm vị trí của bất kì phần tử nào trên
trang web bằng cách sử dụng cấu trúc DOM HTML.
1.2 Cách tổ chức chương trình chạy với cơng cụ Ranorex
Ở phần này tôi sẽ giới thiệu cho các bạn cách setup môi trường cho
android mobile test và làm thế nào để thực hiện test.
1.2.1 Setup Java JDK và Android Studio
Download Java JDK tại đây:
/>
Download Android Studio tại đây:
/>
Sau đó, các bạn download về và setup như bình thường.
1.2.2 Setup Appium
Appium là một công cụ mã nguồn mở được sử dụng để kiểm thử tự động các
native app, mobile web app, và hybrid app trên nền tảng iOS và Android.
Appium hỗ trợ đa ngôn ngữ và đa nền tảng (cross-platform) như sau: - Hỗ trợ

đa nền tảng: Android, iOS, FirefoxOS.
4


-

Hỗ trợ đa ngôn ngữ: Java, Objective-C, JavaScript with

Node.js, PHP, Python, C#, Clojure, Perl.



Appium hoạt động như thế nào trong Android?

Trên Android, Appium ủy quyền tập lệnh cho UIAutomator. UIAutomator
là framework của Android hỗ trợ chạy các test case trực tiếp bằng Junit trên thiết
bị từ dịng lệnh. Nó sử dụng ngơn ngữ lập trình Java, nhưng Appium sẽ làm cho
nó chạy từ bất kỳ ngơn ngữ nào được hỗ trợ WebDriver.

Khi chúng ta thực thi các tập lệnh, sẽ có một yêu cầu http ở định dạng
JSON đến máy chủ Appium. Sau đó, máy chủ Appium gửi lệnh tới
UIAutomator cần bootstrap Jar. Để nghe lệnh của chúng ta, cần một máy chủ
TCP. Vì vậy, ở đây bootstrap.jar hoạt động như máy chủ TCP. Và sau đó nó thực
thi lệnh trên các thiết bị Android và trả về kết quả. Chu kỳ này tiếp tục cho đến
khi tất cả các lệnh được thực thi.


Các bước setup Appium
5



Bây giờ, hãy setup Appium theo các bước sau:
B1: Download Appium tại đây
/>B2: Mở Appium
B3: Start Appium Server
Host : 127.0.0.1 (Localhost)
Port : 4723 (default)
Endpoint URL : /wd/hub (default)
Total Endpoint URL : http://127.0.0.1:4723/wd/hub (default)

1.2.3 Setup ADB system path
Google đã phát hành 2 cơng cụ có tên là Android Debug Bridge (ADB) và
fastboot, cả hai đều có sẵn trong một gói gọi là Platform Tools. Chúng là các
command line tools cho phép bạn tùy chỉnh và control điện thoại Android của
mình bằng cách sending commands tới nó thơng qua máy tính của bạn.
Các lệnh ADB này có thể được sử dụng để sửa đổi thiết bị Android của
bạn mà không cần phải thực sự chạm vào thiết bị.


Dưới đây là một số ví dụ về ADB commands:
6


adb devices cho biết thiết bị được hỗ trợ ADB nào được kết nối với
máy tính của bạn.
adb reboot khởi động lại điện thoại của bạn.
adb backup tạo một bản full backup của điện thoại và lưu nó vào
máy tính của bạn.
adb sideload tải ROM và các tệp ZIP khác từ máy tính vào
Android của bạn.

adb pull copy file từ điện thoại sang máy tính của bạn.
adb shell cho phép các commands chạy trong một terminal trên
thiết bị Android.
adb reboot -bootloader khởi động điện thoại của bạn ở mode
bootloader để bạn có thể chạy các fastboot commands.


Các bước setup Platform Tools:

B1: Download ADB và Fastboot tại đây
/>
B2: Extract file zip vừa download xuống
B3: Copy Folder Path vào “platform-tools” Folder Path

B4: Edit the PATH System Variable
7


Open Control Panel > System > Advanced system settings > Trong cửa
sổ System Properties > click Enviroment Variables ở giữa tab Advanced > tại
khung có label là System variables, bạn tìm variable có tên là Path > click Edit
> Paste path của platform-tools mà bạn vừa copy ở B3 vào Variable value
textbox > Click OK và chờ 1 vài phút, sau đó thốt ra khỏi System Properties.

B5: Kiểm tra thiết bị Mobile Android đã kết nối hay chưa?
> Mở Command Prompt > Nhập adb > hiển thị như dưới là cài thành
công.

>


Nhập adb devices (lấy ra list các thiết bị Android đã kết nối), nếu hiện

ra đoạn mã như hình dưới là đã connect thành cơng. Nhớ copy nó.

Copy
8


1.2.4 Download Instrument apps (*)
Trước khi có thể test automation với mobile app, bạn phải tạo instrument
cho ứng dụng. Instrumenting có nghĩa là cấu hình ứng dụng để Ranorex Studio
có thể truy cập GUI và các functions của ứng dụng nhằm mục đích creating và
running automation test. App Instrumented nên được cài đặt trên thiết bị
mobile vật lý của bạn.
Chú ý: Instrumented apps này KHÔNG phát hành lên App Store. Vì
vậy, bạn khơng thể kiếm thấy app ở trên App Store hay CH Play.
Download tại đây, nếu bạn là nhà phát triển hoặc doanh nghiệp.
/>(1)
Mở Ranorex Web Browser trên thiết bị Android vật lý bạn vừa
install.
(2)

Ứng dụng này cũng được liệt kê trong Ranorex Service App,

cho biết rằng nó đã được thiết kế chính xác.

1.2.5 Download Ranorex và setup WebDriver Endpoint
Download tại đây: />Vì đây là phiên bản mất phí, nên bạn chỉ có 30 ngày dùng thử. Sau 30
ngày, bạn nên có license (giấy phép).
9





Add WebDriver Endpoint - Tại Ranorex, bạn phải Add WebDriver

Endpoint mới có thể test mobile được (hướng dẫn ở hình dưới). API
Endpoint là the point of entry trong kênh communication khi 2 hệ thống
tương tác với nhau. Về cơ bản là URL cụ thể trong ứng dụng Web API.


Cách setup API WebDriver

Endpoint: Bước 1: xem hình
dưới


10


Bước 2: paste URL trang web bạn cần test > Edit config of
endpoint > Cuối cùng là select Chrome. (hình dưới)

1. Paste URL

5. Select Chrome

2. Edit

3. Edit JSON

Mobile Info (đọc mục 1.2.4)

adb devices (đọc mục 1.2.3)
4. Save

1.3 Áp dụng Ranorex vào kiểm thử GUI vào page Samsung.com
11


1.3.1. Tìm hiểu về XPATH
Trước khi bắt đầu để test automation, bạn nên hiểu Xpath là gì trước. Vậy,
Xpath được định nghĩa như một XML path. Nó là cú pháp hay ngơn ngữ để tìm
kiếm bất kỳ element nào trên trang web sử dụng XML path expression. Cú pháp
cơ bản của Xpath như hình dưới đây.

Các loại Xpath:
Xpath tuyệt đối: bắt đầu bằng dấu gạch chéo đơn "/", cho phép xác
định một đường dẫn tuyệt đối đến đối tượng UI. Xpath tuyệt đối
được xem là là cách tìm kiếm phần tử dễ dàng nhất, tuy nhiên
nhược điểm của nó là nếu có bất kỳ thay đổi nào trên đường dẫn
của element thì Xpath lấy sẽ sai. Ví dụ:
html/body/div[1]/div[2]/form/div/div[3]/div[1]/
div/div[2]/div[1]/div[1]/div/div/input

Xpath tương đối: bắt đầu bằng 2 dấu gạch chéo "//", cho phép xác
định một đối tượng UI ở bất kỳ đâu trên trang web, không cần bắt
đầu bởi thẻ html trong đường dẫn. Ví dụ:
//div//input: cho phép lấy ra tồn bộ thẻ input mà trước đó là một

thẻ div.


12


1.3.2 Áp dụng vào dự án thực tế
Màn hình để quản lý project, code và endpoints:

Chi tiết các mục trong Projects:

13


Màn hình ghi lại các Action + Element (Xpath) + Screenshot:

Chi tiết màn hình Element (Xpath) và Screenshot mà Xpath bắt
được

14


15


Màn hình để lấy element ở định dạng Xpath:

Màn hình để truy cập vào folder report để xem các report:

16



1.3.2.1 Validate text
Xpath của text element (định dạng thẻ

) trong Ranorex:
Syntax Xpath:
.//div[#'contents']/section[#'kvtype2']/div[2]/div/article[1]/div[1]/h1

Screenshot của đoạn text mà Ranorex bắt được thông qua Xpath:

Code validate text

Syntax Code
text = "Samsung Galaxy Note20 & Note20 Ultra";
Validate.AreEqual(repo.ES.Highlight_Tab.KeyVisual.txt_Header.InnerTe
xt,text);

1.3.2.2 Click button
Xpath của button element (định dạng thẻ <a>) trong Ranorex:
Syntax Xpath:
17


.//div[#'contents']/section[#'kvtype2']/div[2]/div/article[1]/div[1]/div//a[2]

Screenshot của button mà Ranorex bắt được thông qua Xpath:

Code validate text

Syntax Code
Validate.AttributeEqual(repo.ES.Highlight_Tab.KeyVisual.btn_PreOderI
nfo,"Href
"," />common.ClickAction("Pre-order",

repo.ES.HighlightTab.KeyVisual.btn_PreOder);

Delay.Seconds(5);
Report.Log(ReportLevel.Info,"Back to previous page");
repo.ES.Self.ExecuteScript("history.back()");

1.3.2.3 Validate image
Xpath của image element (định dạng thẻ <div>) trong Ranorex:

Syntax Xpath:


18


.//div[#'contents']/section[#'kv-type2']/div[2]/div/article[1]/div[2]

Screenshot của image mà Ranorex bắt được thông qua Xpath:

Code validate text

Syntax Code
public void ContainImage1 (RepoItemInfo
CompressedImage

ItemInfo,

containImage, Adapter target) {
SectionIterm("Verify Image", target);
Delay.Seconds(3);

Validate.ContainsImage(ItemInfo, containImage, Image
Option); slog ="Expected Image";
Report.Screenshot(slog,target);

19


}

---------------------------------------------common.ContainImage1(repo.ES.Highlight_Tab.KeyVisual.img_HeaderIn
fo,img_ KeyVisual_Section,repo.ES.Highlight_Tab.KeyVisual.img_Header);

#region
CompressedImage img_KeyVisual_Section
{ get { return repo.ES.Highlight_Tab.KeyVisual.img_HeaderInfo
.GetScree nshot1(new Rectangle(0, 0, 180, 804)); } } #endregion
}

1.3.2.4 Report (Báo cáo kiểm thử)
Trở thành tester khơng có nghĩa là bạn cần ln tạo và gửi test report (báo cáo
kiểm thử). Nhưng, để trở thành một tester và muốn sự nghiệp tester của bạn thực sự
đột phá, một test report có hiệu quả sẽ minh chứng cho điều này; một báo cáo có thể
thực hiện hoặc phá vỡ ngày của bạn và / hoặc nhóm phát triển của bạn. Để có một
testing report tốt, bạn cần phải được xây dựng dựa trên các yếu tố sau:
(1) Đúng đối tượng
(2) Cung cấp chi tiết nhưng không quá nhiều
(3) Luôn cung cấp tài liệu tham khảo về các nhiệm vụ được thực hiện
hôm nay và những gì được lên kế hoạch cho ngày mai
(4) Đọc lại
Hình (1) là folder chứa các report trong Ranorex và hình (2) là chi tiết từng file

khi chúng ta built code automation:

20


×