1. Trang chủ
  2. » Công Nghệ Thông Tin

công cụ kiểm thử tự động

57 449 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

Định dạng
Số trang 57
Dung lượng 4,46 MB
File đính kèm nhom6.rar (4 MB)

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

Nội dung

Việc đưa ra một ứng dụng hoàn hảo cho những người đang,sẽ sử dụng ứng dụng đã trở thành một thử thách chính trong đảm bảo chất lượng. Kiểm thử các ứng dụng đã vượt quá giới hạn của kiểm thử những hệ thống phần mềm truyền thống.Như chúng ta đã biết, một ứng dụng thường có rất nhiều nhóm người sử dụng với các nền tảng khác nhau (hệ điều hành, trình duyệt,…), điều này dẫn tới việc kiểm thử ứng dụng cần phải có những phương pháp đặc biệt khác với phần mềm truyền thống.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN

KIỂM THỬ PHẦN MỀM

ĐỀ TÀI KIỂM THỬ ỨNG DỤNG WEB VỚI CÔNG CỤ SELENIUM

Giảng viên hướng dẫn : Ts Nguyễn Hoàng Tú Nhóm thực hiện : NHÓM 6

Lớp : KHMT4-K9 Danh sách nhóm: 1.Phạm Văn Hải

2.Lê Sỹ Tiến3.Dương Đức Tuyến4.Hoàng Bá Vũ

Hà Nội,năm 2017

1

Trang 2

LỜI NÓI ĐẦU

Các ứng dụng Web đã được phát triển và trở thành nền tảng kết nối thông tin thiếtyếu trong nhiều doanh nghiệp, đóng vai trò quyết định của thương mại điện tử (e -commerce), trao đổi thông tin Để có thể đạt được điều này, các ứng dụng web cần phải

có hiệu năng cao, đáng tin cậy,…Việc đưa ra một ứng dụng Web hoàn hảo cho nhữngngười đang và sẽ sử dụng ứng dụng đã trở thành một thử thách chính trong đảm bảochất lượng Kiểm thử các ứng dụng Web đã vượt quá giới hạn của kiểm thử những hệthống phần mềm truyền thống.Như chúng ta đã biết, một ứng dụng Web thường có rấtnhiều nhóm người sử dụng với các nền tảng khác nhau (hệ điều hành, trình duyệt,…),điều này dẫn tới việc kiểm thử ứng dụng Web cần phải có những phương pháp đặc biệtkhác với phần mềm truyền thống

Selenium là một công cụ kiểm thử ứng dụng Web tiêu biểu Đây là một công cụ mãnguồn mở, mạnh mẽ hỗ trợ trên nền Web, nhiều platform và các trình duyệt phổ biến.Công cụ này được phát triển chủ yếu trong Java script và công nghệ trình duyệt nhưDHTML và các khung hình, và do đó hỗ trợ tất cả các trình duyệt chính trên tất cả cácnền tảng Selenium có lẽ là một trong những công cụ tốt nhất trên thị trường cho cácứng dụng Web Điều đáng lưu ý là kiểm thử phần mềm nói chung và kiểm thử ứng dụngweb nói riêng đều chưa được phổ biến ở Việt Nam Đây cũng là lý do nhóm em chọn đề

tài “Kiểm thử ứng dụng Web với công cụ Selenium” với mong muốn giúp nhiều

người hiểu rõ hơn nữa về kiểm thử ứng dụng web, cũng như cách sử dụng công cụSelenium vào công việc này

2

Trang 3

MỞ ĐẦU

1.LÝ DO CHỌN ĐỀ TÀI

Với mục tiêu đến năm 2020 đưa đất nước ta cơ bản trở thành một nước Công nghiệp hóa theo hướng hiện đại, Công nghệ thông tin phải là một trong những ngành kinh tế mũi nhọn của Đất nước, mở đường, tạo động lực cho một giai đoạn đổi mới mạnh mẽ hơn của đất nước vì vậy Đảng và Nhà nước ta đã và đang tiếp tục đầu tư và khuyến khích phát triển, ứng dụng Công nghệ thông tin trong tất cả các lĩnh vực của đời sống Như chúng ta đã biết, để tạo ra sản phẩm công nghệ thông tin hay phần mềm có chất lượng thì hoạt động kiểm tra phần mềm đóng vai trò rất quan trọng Nó đảm bảo cho phần mềm tạo ra có chạy đúng với yêu cầu của khách hàng hay không, có xảy ra những sai sót mà nó khác với bảng phân tích thiết

kế ban đầu không từ đó đảm bảo được yêu cầu chất lượng sản phẩm trước khi bàn giao cho khách hàng Tuy nhiên, hoạt động này lại tiêu tốn và chiếm tỷ trọng khá lớn công sức và thời gian trong một dự án Do vậy, nhu cầu tự động hoá quy trình kiểm thử phần mềm cũng được đặt ra để nhằm giảm nhân lực, vật lực, thời gian màvẫn có độ chính xác cao

Hiện nay, các ứng dụng web đang được sử dụng khá phổ biến Lĩnh vực kiểm thử phần mềm đã được phát triển khá lâu cùng với đó kiểm thử phần mềm cho các ứng dụng web cũng đang phát triển Rất nhiều doanh nghiệp CNTT đã và đang có nhu cầu tuyển dụng rất lớn về lĩnh vực này nhưng không tuyển đủ vì hầu hết

những người làm về kiểm thử đều nghiên cứu về kiểm thử trên desktop

application Hiện tại trong lĩnh vực kiểm thử phần mềm cho Web app đã có nhiều công cụ hỗ trợ kiểm thử tự động như: QuickTest Pro, Selenium, LoadRunner…Trong số đó, , Selenium là một tool khá tốt và mạnh, bao gồm nhiều chức năng điển hình của một công cụ kiểm thử tự động

Vì những lý do trên trên nên nhóm quyết định chọn đề tài “Kiểm thử tự động ứng dụng web với Selenium” từ đó áp dụng vào thực nghiệm bằng việc sử dụng công cụ Selenium để kiểm thử trên một ứng dụng web

3

Trang 4

2 MỤC TIÊU

- Tìm hiểu về kiểm thử phần mềm

- Tìm hiểu về kiểm thử tự động, các công cụ kiểm thử tự động

- Tìm hiểu, nghiên cứu công cụ kiểm thử tự động Selenium: Tổng quan cài đặt, ứng dụng

- Xây dựng kịch bản kiểm thử (testcase) cho một số chức năng của phần mềm

- Ứng dụng công cụ trong kiểm thử ứng dụng web, Sử dụng công cụ kiểm thử Selenium, thực hiện kiểm thử và xây dựng testscript kiểm thử demo

1 số chức năng trên cơ sở testcase đã có và xây dựng báo cáo, kết quả kiểm thử

-4

Trang 5

CHƯƠNG I.TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

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

- Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định xem

phần mềm có đúng với đặc tả không và thực hiện trong môi trường như mong đợi hay không

- Mục đích của kiểm thử phần mềm là để kiểm tra xem phần mềm có đáp ứng với nhucầu của khách hang và phù hợp với đặc tả yêu cầu, đảm bảo chất lượng và tínhchính xác của ứng dụng

2.Các cấp độ kiểm thử phần mềm

Hình 1: Các cấp độ kiểm thử

2.1.Kiểm thử đơn vị

Trang 6

Một đơn vị (Unit) là một thành phần phần mềm nhỏ nhất mà ta có thể kiểmthử được, ví dụ: các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc cácphương thức (Method)

Unit testing đề cập đến các kiểm thử để chứng thực (xác minh - verify) chứcnăng của một phần riêng biệt của code, thường ở mức hàm (function level) Trongmột môi trường hướng đối tượng (object-oriented environment), kiểm thử đơn vịthường được sử dụng ở mức lớp (class) và kiểm thử các đơn vị nhỏ nhất bao gồmcác hàm constructor và destructor

Kiểm thử đơn vị thường do lập trình viên thực hiện Công đoạn này cầnđược thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳphát triển phần mềm Một hàm có thể có nhiều kiểm thử, để bắt được các trườnghợp hoặc các nhánh trong code

Cũng như các mức kiểm thử khác, kiểm thử đơn vị cũng đòi hỏi phải chuẩn

bị trước các ca kiểm thử (hay trường hợp kiểm thử) (test case) hoặc kịch bản (testscript), trong đó chỉ định rõ dữ liệu vào, các bước thực hiện và dữ liệu mong muốn

sẽ xuất ra Các test case và test script được giữ lại để sử dụng sau này

2.2 Kiểm thử tích hợp

Integration test kết hợp các thành phần của một ứng dụng và kiểm thử nhưmột ứng dụng đã hoàn thành Trong khi Unit Test kiểm tra các thành phần và Unitriêng lẻ thì Intgration Test kết hợp chúng lại với nhau và kiểm tra sự giao tiếp giữachúng

Integration Test có 2 mục tiêu chính:

• Phát hiện lỗi giao tiếp xảy ra giữa các Unit

• Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ (subsystem) và cuối cùng lànguyên hệ thống hoàn chỉnh (system) chuẩn bị cho kiểm thử ở mức hệ thống(System Test)

Có 4 loại kiểm thử trong Integration Test:

Trang 7

• Kiểm thử cấu trúc (Structure Test): Tương tự White Box Test (kiểm thử nhằm bảođảm các thành phần bên trong của một chương trình chạy đúng), chú trọng đếnhoạt động của các thành phần cấu trúc nội tại của chương trình chẳng hạn các lệnh

và nhánh bên trong

• Kiểm thử chức năng (Functional Test): Tương tự Black Box Test (kiểm thử chỉchú trọng đến chức năng của chương trình, không quan tâm đến cấu trúc bêntrong), chỉ khảo sát chức năng của chương trình theo yêu cầu kỹ thuật

• Kiểm thử hiệu năng (Performance Test): kiểm thử việc vận hành của hệ thống

• Kiểm thử khả năng chịu tải (Stress Test): kiểm thử các giới hạn của hệ thống

2.3 Kiểm thử hệ thống

Kiểm thử hệ thống (ST) bao gồm một loạt những kiểm nghiệm nhằm xácminh toàn bộ các thành phần của hệ thống được tích hợp một cách đúng đắn Mụcđích của ST là đảm bảo toàn bộ hệ thống hoạt động như khách hàng mong muốn

System Test bắt đầu khi tất cả các bộ phận của PM đã được tích hợp thànhcông Thông thường loại kiểm tra này tốn rất nhiều công sức và thời gian Trongnhiều trường hợp, việc kiểm tra đòi hỏi một số thiết bị phụ trợ, phần mềm hoặcphần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực, hệ thống phân bố, hoặc

hệ thống nhúng Ở mức độ hệ thống, người kiểm tra cũng tìm kiếm các lỗi, nhưngtrọng tâm là đánh giá về hoạt động, thao tác, sự tin cậy và các yêu cầu khác liênquan đến chất lượng của toàn hệ thống

Điểm khác nhau then chốt giữa Integration Test và System Test là System Testchú trọng các hành vi và lỗi trên toàn hệ thống, còn Integration Test chú trọng sựgiao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm việc cùng nhau Thôngthường ta phải thực hiện Unit Test và Integration Test để bảo đảm mọi Unit và sựtương tác giữa chúng hoạt động chính xác trước khi thực hiện System Test

Kiểm thử hệ thống thường có các loại kiểm thử sau:

• Kiểm tra chức năng (Functional Test): bảo đảm các hành vi của hệ thống thỏa mãnđúng yêu cầu thiết kế

• Kiểm tra khả năng vận hành (Performance Test): bảo đảm tối ưu việc phân bổ tàinguyên hệ thống (ví dụ bộ nhớ) nhằm đạt các chỉ tiêu như thời gian xử lý hay đápứng câu truy vấn…

Trang 8

• Kiểm tra khả năng chịu tải (Stress Test hay Load Test): bảo đảm hệ thống vận hànhđúng dưới áp lực cao (ví dụ nhiều người truy xuất cùng lúc) Stress Test tập trungvào các trạng thái tới hạn, các “điểm chết”, các tình huống bất thường…

• Kiểm tra cấu hình (Configuration Test)

• Kiểm tra khả năng bảo mật (Security Test): bảo đảm tính toàn vẹn, bảo mật của dữliệu và của hệ thống

• Kiểm tra khả năng phục hồi (Recovery Test): bảo đảm hệ thống có khả năng khôiphục trạng thái ổn định trước đó trong tình huống mất tài nguyên hoặc dữ liệu; đặcbiệt quan trọng đối với các hệ thống giao dịch như ngân hàng trực tuyến

2.4 Kiểm thử chấp nhận

Sau giai đoạn ST là AT, đây là giai đoạn kiểm tra được khách hàng thực hiện.Mục đích của AT là để chứng minh phần mềm thỏa mãn tất cả yêu cầu của kháchhàng và khách hàng chấp nhận sản phẩm và trả tiền thanh toán hợp đồng

AT có ý nghĩa hết sức quan trọng, mặc dù trong hầu hết mọi trường hợp, cácphép kiểm tra của ST và AT gần như tương tự, nhưng bản chất và cách thức thựchiện lại rất khác biệt

Trên thực tế, nếu khách hàng không quan tâm và không tham gia vào quátrình phát triển phần mềm thì thường kết quả AT sẽ sai lệch rất lớn, mặc dù PM đãtrải qua tất cả các kiểm tra trước đó Sự sai lệch này liên quan đến việc hiểu sai yêucầu cũng như sự mong chờ của khách hàng Ví dụ đôi khi một PM xuất sắc vượtqua các phép kiểm tra về chức năng thực hiện bởi nhóm thực hiện dự án, nhưngkhách hàng khi kiểm tra sau cùng vẫn thất vọng vì bố cục màn hình nghèo nàn,thao tác không tự nhiên, không theo tập quán sử dụng của khách hàng…

Có 2 phương pháp kiểm thử chấp nhận:

Kiểm thử alpha: được thực hiện tại nơi tổ chức phát triển nhưng không phải do

nhóm phát triển test mà do khách hàng thực hiện test

Kiểm thử beta: được thực hiện bởi khách hàng hoặc các khách hàng tiềm năng tại

nơi của họ (khách hàng download bản beta và cài vào máy mình rồi sử dụng)

3.Các kỹ thuật kiểm thử

Một sản phẩm đều có thể được kiểm thử theo 2 cách:

• Hiểu rõ một chức năng cụ thể của một hàm hay một module Các trường hợpkiểm thử có thể xây dựng để kiểm thử tất cả các thao tác đó

Trang 9

• Hiểu rõ cách hoạt động của một hàm/module hay sản phẩm Các trường hợpkiểm thử có thể được xây dựng để đảm bảo tất cả các thành phần con khớp vớinhau Đó là tất cả các thao tác nội bộ của hàm dựa vào các mô tả và tất cả cácthành phần nội bộ đã được kiểm thủ một cách thoả đáng.

Cách tiếp cận đầu tiên được gọi là kiểm thử hộp đen (Black-box testing) vàcách tiếp cận thứ hai là gọi là kiểm thử hộp trắng (White-box testing)

3.1 Kiểm thử hộp đen (Black Box Test)

Kiểm thử hộp đen hay còn gọi là kiểm tra chức năng và thử nghiệm hành vi.Xem chương trình như là một “hộp đen”, hoàn toàn không quan tâm về cách cư xử

và cấu trúc bên trong của chương trình Thay vào đó, Tập trung vào tìm các trườnghợp mà chương trình không thực hiện theo các đặc tả của nó [2]

Phương pháp kiểm thử hộp đen bao gồm:

• Phân vùng tương đương - Equivalence partitioning

• Phân tích giá trị biên – Boundary value analysis

• Kiểm thử mọi cặp – All-pairs testing

• Kiểm thử fuzz – Fuzz testing

• Kiểm thử dựa trên mô hình – Model-based testing

• Ma trận dấu vết – Traceability matrix

• Kiểm thử thăm dò – Exploratory testing

• Kiểm thử dựa trên đặc tả – Specification-base testing

3.1.1 Phân vùng tương đương - Equivalence partitioning

Phân vùng tương đương (Equivalence Class): là một kỹ thuật kiểm thử phầnmềm có liên quan đến phân chia các giá trị đầu vào thành các phân vùng hợp lệ vàkhông hợp lệ, sau đó chúng ta sẽ viết ra các kịch bản kiểm thử cho từng phần, chọngiá trị đại diện từ mỗi phân vùng làm dữ liệu thử nghiệm.[2]

• Phân vùng tương đương: là kỹ thuật thực hiện test theo từng class đồng giá trị (tậphợp điều kiện cùng một thao tác)

• Tập hợp giá trị input có cùng một kết quả xử lý, tập hợp thời gian có cùng một kếtquả xử lý, tập hợp kết quả export được xử lý cùng một giá trị nhập

• Mục đích : Giảm đáng kể số lượng test case cần phải thiết kế vì với mỗi lớp tươngđương ta chỉ cần test trên các phần tử đại diện

Trang 10

• Chọn tối thiểu một giá trị đại diện từ các class đồng giá trị để tiến hành test.

• Thiết kế ca kiểm thử cho phân vùng tương đương dựa trên sự đánh giá về các vùngtương đương với một điều kiện vào Vùng tương đương biểu thị một tập cho cáctrạng thái hợp lệ hay không hợp lệ đối với điều kiện vào

• Thiết kế test case bằng phân vùng tương đương tiến hành theo hai bước:

- Xác định các lớp tương đương

- Xác định các ca kiểm thử

Hình 2:Các giá trị trong vùng tương đương

> Nếu có lỗi xảy ra thì các giá trị khác trong class đồng giá trị cũng sẽ có lỗigiống nhau

3.1.2 Phân tích giá trị biên – Boundary Value Analysis

Phân tích giá trị biên (Boundary Value Analysis): là một kỹ thuật kiểm thửphần mềm có liên quan đến việc xác định biên (ranh giới) của điều kiện mô tả chocác giá trị đầu vào và chọn giá trị ở biên và bên cạnh giá trị biên làm dữ liệu kiểmthử Phương pháp phân tích giá trị biên sẽ đưa ra các giá trị đặc biệt, bao gồm loại

dữ liệu, giá trị lỗi, bên trong, bên ngoài biên giá trị, lớn nhất và nhỏ nhất

Trang 11

• Quyết định giá trị để test

• Giá trị biên

• Dưới giá trị biên (Nếu là class đồng giá trị)

• Trên 1 giá trị biên (Nếu là class đồng giá trị)

Hình 4: Các giá trị trong vùng dữ liệu

3.1.3 Sử dụng bảng quyết định – Decision Table

- Làm giảm số lượng tets casse không cần thiết so với 2 kỹ thuật trên vì nó loại trừcác phép kết hợp không cần thiết giữa các giá trị biến đầu vào

- Liệt kê nguyên nhân (cause) – kết quả (result) trong một ma trận Mỗi cột ma trậnđại diện cho 1 phép kết hợp giữa các cause trong trong việc tạo ra 1 result

Trang 12

Hình 5 Bảng quyết định

- Các bước để tạo bảng quyết định

• Liệt kê các nguyên nhân trong bảng quyết định

• Tính tổng số lượng kết hợp giữa các cause

• Điền vào các cột với tất cả các kết hợp có thể có

• Rút bớt số lượng các phép kết hợp dư thừa

• Kiểm tra các phép kết hợp có bao phủ hết mọi trường hợp hay không

• Bổ sung kết quả vào bảng quyết định [11]

3.2 Kiểm thử hộp trắng

Kiểm thử hộp trắng (White box testing) là một kỹ thuật xác minh giúp các kỹ sưphần mềm có thể sử dụng để kiểm tra mã code của họ hoạt động như dự kiến

Có các loại white box testing đang tồn tại như sau:

* API testing (application programming interface) – Kiểm thử ứng dụng bằngcách sử dụng các hàm API public và private

* Code coverage – Là việc tạo các trường hợp test để thỏa mãn một số điềukiện bao phủ code - code coverage (ví dụ như, người thiết kế test có thể tạo ra các

Trang 13

trường hợp test sao cho tất cả các câu lệnh của chương trình đều được thực thi ítnhất 1 lần)

* Fault injection methods – cải tiến bao phủ một trường hợp bằng cách đưa một

số lỗi vào để test các đường dẫn code

* Mutation testing methods

* Static testing - White box testing bao gồm tất cả các phương pháp kiểm thửtĩnh (ví dụ review code)

Kiểm thử độ bao phủ

Phương pháp kiểm thử white box cũng có thể được sử dụng để ước lượng tínhtrọn vẹn đầy đủ của các tập hợp kiểm thử (test suit) đã được tạo ra bằng phươngpháp kiểm thử black box Điều này cho phép nhóm sản xuất phần mềm xem xét lạicác phần của hệ thống ít được test nhất và để chắc chắn rằng các chức năng quantrọng nhất đã được tập trung test kỹ

Hai hình thức chung của kiểm thử độ bao phủ code:

* Bao phủ chức năng - Function coverage, dựa trên việc thực thi các chức năng

* Bao phủ câu lệnh - Statement coverage, dựa trên số lượng các dòng lệnh đã đượcthực thi để hoàn thành kiểm thử

4.Tổng kết

Chương I đã trình bày các khái niệm, những định nghĩa và những vấn đề cơ bản xung quanh phần mềm và kiểm thử phần mềm, quy trình kiểm thử phần mềm Các vấn đề chính bao gồm:

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

• Các cấp độ kiểm thử

• Các kỹ thuật kiểm thử

Trang 14

CHƯƠNG II TÌM HIỂU KIỂM THỬ TỰ ĐỘNG

1. Khái niệm kiểm thử tự động

Kiểm thử tự động là quy trình xử lý một cách tự động các bước thực hiện cáctestcase, kiểm thử bằng một công cụ nhằm rút ngắn thời gian kiểm thử

Công cụ kiểm thử tự động có thể lấy dự liệu từ file bên ngoài (excel,

csv, …) nhập vào ứng dụng, so sánh kết quả mong đợi (từ excel, csv) với kết quảthực tế và xuất ra báo cáo kết quả kiểm thử

Ưu điểm: Thích hợp với trường hợp phải test nhiều lần cho một test case có

tính ổn định và tin cậy cao hơn so với kiểm thử thủ công.Có thể thực hiện thao táclặp đi lặp lại(nhập dữ liệu,click,check kết quả ) giúp tester không phải làm nhữngviệc gây nhàm chán và dễ nhầm lẫn.Giảm chi phí đầu tư dài hạn

Nhược điểm: Tốn kém hơn kiểm thủ công, chi phí đầu tư ban đầu lớn Kiểm

thử thủ công là không thể thay thế vì người ta không thể tự động hóa mọi thứ

2. Lý do cần kiểm thử tự động

• Kiểm thử bằng tay cho tất cả các flow, field và scenario là tốn thời gian và chi phí

• Độ tin cậy cao

• Manual testing có thể trở nên nhàm chán và do đó dễ bị sót lỗi

• Cách duy nhất để thực hiện Load test, performance test

• Khả năng tái sử dụng

3. Khi nào áp dụng kiểm thử tự động

• Kiểm thử tự động sẽ được sử dụng khi dự án không đủ tài nguyên: thời gian, nhânlực và chi phí

• Kiểm thử hồi quy khi sản phẩm được sửa đổi hoặc nâng cấp và cần kiểm thử lại cáctính năng đã thực hiện tốt trước đó

• Kiểm tra khả năng vận hành của sản phẩm trong các môi trường đặc biệt: đo tốc độ

xử lý trung bình ứng với mỗi yêu cầu, xác định khả năng chịu tải tối đa, xác địnhcấu hình tối thiểu để thực thi hệ thống, kiểm tra các cơ chế an ninh và an toàn,

4. So sánh kiểm thử tự động và kiểm thử bằng tay

Cả hai thử nghiệm thủ công và tự động đều có những mặt lợi và bất lợi Đó làgiá trị để biết sự khác biệt, khi sử dụng một trong hai cho kết quả tốt nhất

Trong kiểm thử thủ công, trường hợp thử nghiệm được thực hiện bằng thủ công(bởi một con người) mà không cần bất kỳ sự hỗ trợ từ các công cụ hoặc cáckịchbản.Nhưng với kiểm thử tự động, trường hợp thử nghiệm được thực hiện với

sự hỗ trợ của các công cụ, kịch bản, và phần mềm

Trang 15

Kiểm thử thủ công Kiểm thử tự động

Kiểm thử thủ công là không chính xác

tại mọi thời điểm do lỗi của con người,

do đó nó là ít đáng tin cậy.

Tự động thử nghiệm là đáng tin cậy hơn,

vì nó được thực hiện bởi các công cụ hoặc các kịch bản.

Kiểm thử thủ công tốn thời gian Tự động thử nghiệm được thực hiện bởi

các công cụ phần mềm, vì vậy nó là nhanh hơn so với một phương pháp thủ công đáng kể.

Đầu tư là cần thiết cho nguồn nhân lực Đầu tư là cần thiết cho công cụ kiểm

thử.

Kiểm thử thủ công chỉ là thực tế khi các

trường hợp thử nghiệm đang chạy một

lần hoặc hai lần, và thường xuyên lặp đi

lặp lại không cần thiết.

Tự động thử nghiệm là một lựa chọn thực tế khi các trường hợp thử nghiệm được chạy liên tục trong một thời gian dài.

Kiểm thử thủ công cho phép con người

quan sát, có thể hữu ích hơn nếu mục

tiêu là người dùng thân thiện hoặc cải

thiện trải nghiệm của khách hàng.

Kiểm thử tự động không đòi hỏi sự quan sát của con người và không thể đảm bảo thân thiện với người hoặc trải nghiệm khách hàng tích cực.

• Khi nào nên áp dụng kiểm thử tự động

• So sánh kiểm thử tự động và kiểm thử bằng tay

Trang 16

CHƯƠNG III.KIỂM THỬ TỰ ĐỘNG ỨNG DỤNG WEB

1.Ứng dụng web

Trong kỹ thuật phần mềm, một Ứng dụng web hay webapp là một trình ứngdụng mà có thể tiếp cận qua web thông qua mạng như Internet hay intranet.Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của mộtchương trình Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phânphối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổbiến của nó

Ứng dụng web được dùng để hiện thực Webmail, bán hàng trực tuyến, đấugiá trực tuyến, wiki, diễn đàn thảo luận, Weblog, Hệ quản trị nội dung, Phầnmềm quản lý nguồn nhân lực và nhiều chức năng khác

2. Kiểm thử ứng dụng web

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 webcủa mình lên Gần như những gì phần mềm truyền thống làm được thì ứng dụngweb cũng có thể làm được Và cho đến nay, các ứng dụng web đóng vai tròquyết định trong thương mại điện tử và trao đổi thông tin

Muốn tạo ra được ứng dụng web có hiệu năng cao, đáng tin cậy như vậy thìsau khâu tạo dựng, cần phải kiểm thử ứng dụng đó một cách tỉ mỉ, cẩn thận vàchặt chẽ Về mặt bản chất, các ứng dụng web cũng là phần mềm, nên các loạikiểm thử áp dụng cho phần mềm cũng được áp dụng khi kiểm thử ứng dụngweb Tuy nhiên, người kiểm thử cũng không thể áp dụng một cách cứng nhắccác phương pháp đó, mà cần phải linh hoạt, biến nó trở nên phù hợp, thích ứngvới kiểm thử ứng dụng web

3.Các bước kiểm thử ứng dụng web

Một ứng dụng web thường có rất nhiều nhóm người sử dụng với nhiều nềntảng khác nhau (hệ điều hành, trình duyệt…), người ta cũng rất khó có thể đoánđược số lượng người sử dụng một ứng dụng web là bao nhiêu, rồi thời gian hồiđáp yêu cầu của người sử dụng đối với ứng dụng là một trong những yếu tốmang tính quyết định thành bại của ứng dụng…dẫn đến việc kiểm thử ứng dụngweb sẽ có những khác biệt nhất định so với kiểm thử phần mềm truyền thống.Trong đó, kiểm thử giao diện người dùng, kiểm thử hiệu năng và kiểm thử bảomật là những loại kiểm thử mà ứng dụng web cần chú trọng

Các bước kiểm thử ứng dụng web:

Trang 17

3.1. Kiểm thử chức năng

Việc kiểm thử chức năng yêu cầu tester thực hiện test tất cả các link trongtrang web, định dạng được sử dụng trong các trang web để gửi và nhận cácthông tin cần thiết từ người dùng Ngoài ra còn có kết nối cơ sở dữ liệu, kiểmtra cookies và xác minh HTML/CSS

• Kiểm tra các liên kết (links) bao gồm kiểm tra liên kết ngoài trang web, liên kếtnội bộ, liên kết tới các vị trí trong cùng trang, liên kết sử dụng để gửi email tớiadmin hoặc người dùng khác trong trang…

• Kiểm tra form của các trang: form là phần cơ bản của các trang web, nên cầnđược kiểm tra một cách kỹ càng, bao gồm các yêu cầu sau:

- Không nhập gì vào các trường bắt buộc thì sao?

- Giá trị mặc định của các trường là gì?

- Nhập đầu vào không đúng validate của các trường thì sao?

- Thao tác trên các trường: xem, nhập, lưu, sửa, xóa…

• Kết nối cơ sở dữ liệu: yêu cầu kiểm tra tính toàn vẹn của dữ liệu khi tạo, sửa, xóaform…hoặc bất cứ chức năng nào có liên quan tới cơ sở dữ liệu Khi truy vấn

cơ sở dữ liệu thì kết quả trả về có tương ứng với kết quả nhìn thấy được trêngiao diện không, dữ liệu có được lấy và cập nhật chính xác không?

• Kiểm thử cookies: cookies là các tệp được tạo bởi trang web đã truy cập để lưutrữ thông tin duyệt web, như các tùy chọn trang web hoặc thông tin đăng nhậpcủa người dùng Người dùng có thể tùy chỉnh trên trình duyệt nhằm quản lýcookies, thực hiện các thao tác cho phép lưu, hoặc xóa, hoặc chặn…để kiểm tracác tính năng lưu hoặc không lưu trạng thái đăng nhập, tính năng bảo mật củaứng dụng web

• Xác minh HTML/CSS: việc xác minh này đặc biệt quan trọng khi developer thựchiện tối ưu hóa trang web cho các công cụ tìm kiếm, chủ yếu liên quan tới lỗi cúpháp HTML Tester sẽ kiểm tra xem trang web có được nhận diện bởi các công

cụ tìm kiếm khác nhau hay không (ví dụ: Google, Yahoo, Bing…)

3.2. Kiểm thử tính khả dụng

Tính khả dụng của trang web được định nghĩa là trang web dễ sử dụng, cóhướng dẫn sử dụng rõ ràng, rành mạch, mỗi trang đều có menu chính và menunày phải nhất quán Tester cần lưu ý những điều này

Trang 18

Ngoài ra, khi kiểm thử tính khả dụng, tester còn cần thực hiện kiểm thử cácđiều khiển chuyển hướng (như button, text box, text link, bread crum…), nộidung của trang web phải dễ hiểu và thân thiện với người sử dụng Không có lỗichính tả, không khó để đọc chữ, hình ảnh được sắp xếp gọn gàng, hợp lý.

3.3. Kiểm thử giao diện

Các giao diện chính bao gồm:

•Giao diện web server và server ứng dụng

•Giao diện server ứng dụng và giao diện server dữ liệu

Kiểm tra tất cả các tương tác giữa các server Nếu server dữ liệu hoặc webserver trả lại bất kỳ báo lỗi nào cho bất kỳ truy vấn nào từ server ứng dụng thìngay lập tức server ứng dụng phải nhận được và cho hiển thị cảnh báo tới ngườidùng Kiểm tra các trường hợp giao dịch bị ngắt đột ngột do người dùng, hoặckết nối tới server bị gián đoạn, bị khởi động lại…

3.4. Kiểm thử khả năng tương thích

Yêu cầu thực hiện các kiểm tra như sau:

• Tương thích với trình duyệt (trên máy tính và điện thoại di động): Người dùngkhác nhau có thể sử dụng trình duyệt khác nhau tùy theo nhu cầu, thói quen…của họ Cần phải kiểm tra ứng dụng web trên càng nhiều trình duyệt càng tốt(IE, Firefox, Chrome, Safari, Opera…) để kiểm tra sự tương thích Kiểm tratrên cả các phiên bản khác nhau của trình duyệt Kiểm tra trên cả trình duyệtcủa thiết bị điện thoại thông minh

• Nếu ứng dụng chạy tốt hơn, hoặc có ưu tiên tương thích hơn với trình duyệt nào

đó thì cần có thông báo tới người dùng

• Tương thích với hệ điều hành: một số chức năng của ứng dụng có thể khôngtương thích với một số hệ điều hành, hoặc có những lưu ý khác khi sử dụng,điều này cần phải được kiểm tra kỹ và thông báo cho người dùng được biết

• Tương thích với các thiết bị ngoại vi (máy in…): khi người dùng có lệnh in trangthì phải đảm bảo tính chính xác của fonts, cỡ chữ, cỡ giấy…mà người dùng đãchọn

3.5. Kiểm thử hiệu năng

Bao gồm các yêu cầu:

• Kiểm thử tải: kiểm thử hiệu năng của ứng dụng với các tốc độ kết nối mạng khácnhau Kiểm thử khi có nhiều người dùng cùng truy cập hoặc cùng yêu cầu một

Trang 19

trang xem hệ thống có thể duy trì hoạt động được không? Hoặc kiểm thử khingười dùng tải lên hoặc tải xuống một số lượng dữ liệu đặc biệt lớn…

• Kiểm thử áp lực: tức là việc đẩy hệ thống ra ngoài giới hạn của nó, thử làm giánđoạn trang web bằng cách tăng lượng tải cao hơn và kiểm tra xem hệ thốngphản ứng như thế nào và phục hồi như thế nào

3.6. Kiểm thử bảo mật

Một số case cho kiểm thử bảo mật web như sau:

• Gõ trực tiếp url vào thanh địa chỉ của trình duyệt mà không qua đăng nhập Cáctrang nội bộ phải không được mở

• Sau khi đăng nhập và mở các trang nội bộ, thay đổi url trực tiếp bằng cách đổitham số ID của trang tới trang thuộc quyền người dùng đã đăng nhập khác Truycập phải bị từ chối bởi người dùng này không thể xem trang thống kê của ngườidùng khác

• Thử các giá trị đầu vào không hợp lệ trong các trường username, password Hệthống phải báo lỗi

• Các thư mục web, các tệp tin không được truy nhập trực tiếp mà không có tùychọn “Download”

4. Tổng kết

Chương II đã giới thiệu được về kiểm thử tự động trên ứng dụng web, khái quát

về ứng dụng web và các bước thực hiện trên ứng dụng web Các vấn đề chính:

• Giới thiệu về ứng dụng web

• Tìm hiểu về kiểm thử trên ứng dụng web

• Các bước kiểm thử ứng dụng web

Trang 20

CHƯƠNG IV:TÌM HIỂU VỀ SELENIUM

1 Giới thiệu chung về Selenium, cách cài đặt và sử dụng Selenium

1.1 Giới thiệu chung về Selenium.

Selenium (thường được viết là SE) là m ột phần mềm mã nguồn mở,được phát triển bởi Jason Huggins, sau được phát triển bởi nhóm Thought Workvào năm 2004.Selenium là một bộ các công c ụ hỗ trợ kiểm thử tự động các tínhnăng củaứng dụng Web, bao gồm 4 phần: Selenium IDE, Selenium RemoteControl (RC),Selenium Core và Selenium Grid

Selenium IDE: là môi trường phát triển tích hợp cho việc xây dựng trường hợp kiểm thử Selenium Nó ho ạt động như một add-on của Firefox và

cung cấp một giao diện dễ sử dụng để phát triển và chạy trường hợp kiểm thử.Selenium- IDE có tính năng thu lại kịch bản kiểm thử để tái sử dụng Nó cũng

có một menu ngữ cảnh tích hợp với trình duyệt Firefox, cho phép người dùng

ch ọn từ một danh sách xác minh (verify) và khẳng định (assert) cho các yếu tốgiao diện đã ch ọn Selenium-IDE cũng cung cấp các chức năng chỉnh sửa cáctrường hợp kiểm thử chính xác và dễ kiểm soát hơn.Mặc dù Selenium - IDE chỉ

Trang 21

là một Firefox add-on, nhưng các test case tạo ra bằng Selenium-IDE vẫn có th

ể chạy trên các trình duyệt khác bằng cách sử dụng Selenium- RC

Selenium Core: Công cụ này đã được tích hợp trong Selenium IDE.

Selenium Core là một công c ụ chạy các test script viết bằng Selenese Thếmạnh của công c ụ này là có th ể chạy test script trên hần hết các trình duyệt,nhưng lại yêu cầu được cài đặt trên máy ch ủ của ứng dụng web cần kiểm tra.Điều này là không thể khi nhân viên ki ểm thử không có quy ền truy cập đếnmáy chủ

Selenium RC (Remote Control): Selenium- RC cho phép các nhà phát tri ển tự động hóa ki ểm thử sử dụng một ngôn ng ữ lập trình cho tính linh hoạt

tối đa và mở rộng trong việc phát triển logic thử nghiệm Ví dụ, nếu trình ứngdụng trả về một tập kết quả của việc kiểm thử, và nếu chương trình thử nghiệm

tự động cần chạy thử nghiệm trên mỗi phần tử trong tập hợp kết quả, hỗ trợ lặp

đi lặp lại các ngôn ng ữ lập trình có thể được sử dụng để chuyển đổi thông qua

vi ệc tập hợp kết quả, kêu gọi lệnh Selenium chạy thử nghiệm trên mỗi mục.Selenium - RC cung cấp một API (Application Programming Interface) và thưviện cho mỗi ngôn ng ữ được hỗ trợ: HTML, Java, C #, Perl, PHP, Python, vàRuby Khả năng sử dụng Selenium- RC với một ngôn ng ữ lập trình bậc cao đểphát triển các trường hợp thử nghiệm cũng cho phép thử nghiệm tự động đượctích hợp với một dự án xây dựng môi trường tự động

1.2 Selenium IDE.

1.2.1 Giới thiệu về Selenium IDE.

Selenium IDE là một add-on của Mozilla Firefox phiên bản 2.0 trở lên, banđầu được phát triển bởi Shinya Kasatani theo hướng sử dụng Selenium Core màkhông c ần cài đặt Selenium vào máy ch ủ ứng dụng Nó được xây dựng sửdụng JavaScript do vậy mà nó có th ể tương tác với DOM (Document ObjectModel), sử dụng được những cách gọi Java Script

Selenium cho phép ghi lại những hành động trong luồng công vi ệc cầnkiểm tra bằng các chức năng Record và Playback

Trang 22

Selenium IDE cũng chứa một menu ngữ cảnh cho phép lựa chọn yếu tốgiao diện người dùng t ừ các trình duyệt đang hiển thị trang và sau đó chọn từmột danh sách các l ệnh Selenium và các thông s ố được xác định theo ngữ cảnhcủa phần giao diện người dùng lựa chọn.

1.2.2 Hướng dẫn cài đặt Selenium IDE.

Để kiểm tra xem trên trình duyệt Firefox đã được cài selenium IDE.Người dùng có thể vào bật trình duyệt này và nhấp vào Tools trên menu Bar.Quan sát trên menu đổ xuống có mục selenium IDE không? Nếu chưa có thìthực hiện những bước sau để cài tiện ích này của Firefox

-Bước 1: Vào trang http://docs.seleniumhq.org/download/ tại thẻ

“Download” click vào phiên bản IDE.

Hình 6 Trang Download tiện ích IDE

- Bước 2: Popup như phía dưới hiện lên Click “Alow” để cho phép cài đặt phần

mềm trên máy tính

Trang 23

Hình 7 Popup Alow hiển thị khi cài đặt IDE

- Bước 3: Màn hình tiếp theo hiển thị Click “Install Now”

Hình 8 Các thành phần được cài đặt trong Selenium IDE

-Bước 4: Khởi động lại trình duyệt Firefox.

-Bước 5: Lần đầu khởi động Selenium của bạn

Click vào Tool trên Menu Bar, di chuyển chuột và click lên mục Selenium IDE

Hình 9 Thao tác mở IDE trên menu Tools

Trang 24

Một cửa sổ mới bật ra như hình vẽ dưới đây:

Hình 10 Giao diện Selenium IDE

1.2.3.Các icon của Selenium IDE.

Phần này sẽ giải thích một số thành phần và ký hiệu của Selenium IDE

Hình 11 Giải thích các thành phần và ký hi ệu của Selenium IDE

Trang 25

Giải thích 1 số ký hiệu :

o Base URL: Đây là URL của ứng dụng web được kiểm thử

o Thanh trượt : Điều chỉnh tốc độ nhanh chậm khi chạy testcase

o Nút : Chạy tất cả các testcase

o Nút : Chạy từng testcase một

o Nút : Cho phép dừng thử nghiệm tại bất kỳ một điểm nào bạn muốn

o Nút : Sau khi click vào biểu tượng Pause, nó s ẽ chuyển sang biểu tượngResume Với nút này cho phép b ạn có th ể tiếp tục chạy thử nghiệm của bạntạiđoạn bạn đã dừng

o Nút : Bỏ qua một testcase khi nó đã bị tạm dừng

o Nút : Được sử dụng để thu các testcase qua những thao tác bạn tác động

đến trang web cần kiểm thử

o Textbox Command: dòng lệnh

o Textbox Target: Kết quả mong đợi của dòng lệnh

o Textbox Value: Giá trị đầu vào của dòng lệnh

Bảng Selenium sẽ lưu lại các lệnh, kết quả mong đợi và giá tr ị đầu vào của các lệnh.Nếu Click vào tab Source, ta có th ể thấy Selenium IDE lưu trữ các testcase códạng

HTML:

Trang 26

- Khu vực phía dưới textbox Value sẽ hiển thị các log của Selenium trong khi cáctest case chạy Nếu có m ột test case bị thất bại Selenium IDE sẽ log một lỗi.

-Log: Hiển thị thông báo l ỗi và các bước được thực thi trong quá trình chạy

một test case tự động Ngay cả khi ta không ch ọn tab log, các thô ng tin nàyvẫn hiển thị Các thông tin này giúp ích cho nhân viên ki ểm thử cũng như

nhân viên l ập trình trong quá trình tìm ra nguyên nhân lỗi đã phát hi ện trongtest case (nếu có)

-Reference: Thẻ tham chiếu

-UI-Element và Rollup : Tính năng nâng cao của Selenium IDE

Lưu ý:

- Các test case luôn luôn có điểm bắt đầu Trong ngữ cảnh của Selenium, điều

này có nghĩa làm ở một trang nào đó để bắt đầu luồng công vi ệc

- Các test case có th ể không c ần dựa trên những test case khác để chạy.

1.2.4 Các thao tác thực hiện kiểm thử tự động với Selenium IDE

Khởi động chế độ ghi.

Theo mặc định sau khi bật Selenium IDE lên thì chế độ Record đã được bật Đểtắt/bật chế độ này chỉ cần click vào nút Record màu đỏ Xem hình dưới đây:

Hình 12 Khởi động chế độ ghi.

Trang 27

Ví dụ:

Dưới đây là một kịch bản đơn giản, thực hành cách ghi m ột scripts bằngSelenium IDE

Bật trình duyệt Firefox

Truy cập vào trang http://www.google.com.vn

Gõ t ừ khóa tìm kiếm là: “forum vietdesigner”

Truy cập vào trang chủ của Selenium trong bảng kết quả trả về bởi Google.Kiểm tra xem title của trang chủ của selenium có phải là:

Chọn File /Open, chọn 1 testcase tại thư mục chứa để mở nó

Có một sự khác biệt giữa testcase và testsuite Testsuite là t ập các testcase,

để lưu lại các bước kiểm thử người dùng có th ể lưu lại một test case riêng

Trang 28

lẻ, hoặc có thể lưu nhiều test case dưới dạng một test suite Chương trình

sẽ nhắc nhở ta lưu chúng trước khi các testcase của test suite chưa đươclưu lại

- Stop and Start: Nút Pause được dùng để tạm dừng một testcase khi

nó đang chạy Để tiếp tục chạy test case bị tạm dừng, click nútResume

- Hoặc chúng ta có th ể thiết lập các điểm ngắt, điểm dừng ở giữa dựavào: break point và start point

Để thiết lập một breakpoint, chọn một lệnh, nhấp chuột phải, từ trìnhđơn ngữ cảnh chọn Toggle Breakpoint Sau đó nhấp vào nút Run để chạycác testcase của bạn từ đầu đến điểm dừng

Các thao tác chỉnh sửa

Ngày đăng: 01/07/2017, 15:08

HÌNH ẢNH LIÊN QUAN

Hình 1:  Các cấp độ kiểm thử - công cụ kiểm thử tự động
Hình 1 Các cấp độ kiểm thử (Trang 5)
Hình 2:Các giá trị trong vùng tương đương - công cụ kiểm thử tự động
Hình 2 Các giá trị trong vùng tương đương (Trang 10)
Hình 6. Trang Download tiện ích IDE - công cụ kiểm thử tự động
Hình 6. Trang Download tiện ích IDE (Trang 22)
Hình 8. Các thành phần được cài đặt trong Selenium IDE - công cụ kiểm thử tự động
Hình 8. Các thành phần được cài đặt trong Selenium IDE (Trang 23)
Hình 10. Giao diện Selenium IDE - công cụ kiểm thử tự động
Hình 10. Giao diện Selenium IDE (Trang 24)
Hình 11. Giải thích các thành phần và ký hi ệu của Selenium IDE - công cụ kiểm thử tự động
Hình 11. Giải thích các thành phần và ký hi ệu của Selenium IDE (Trang 24)
Hình 12. Khởi động chế độ ghi. - công cụ kiểm thử tự động
Hình 12. Khởi động chế độ ghi (Trang 26)
Hình 13.Ví dụ thực hành cách ghi 1 script - công cụ kiểm thử tự động
Hình 13. Ví dụ thực hành cách ghi 1 script (Trang 27)
Hình 15. Chèn lệnh trong mã nguồn - công cụ kiểm thử tự động
Hình 15. Chèn lệnh trong mã nguồn (Trang 30)
Hình 16. Chèn nhận xét ở dạng bảng - công cụ kiểm thử tự động
Hình 16. Chèn nhận xét ở dạng bảng (Trang 31)
Hình 18. Trang chủ website “Fresh Shop” - công cụ kiểm thử tự động
Hình 18. Trang chủ website “Fresh Shop” (Trang 33)
Hình 21 : Giải mã chức năng đăng nhập - công cụ kiểm thử tự động
Hình 21 Giải mã chức năng đăng nhập (Trang 38)
Hình 29 : Mật khẩu 5 ký tự - công cụ kiểm thử tự động
Hình 29 Mật khẩu 5 ký tự (Trang 48)
Hình 32: Email không có dấu chấm. - công cụ kiểm thử tự động
Hình 32 Email không có dấu chấm (Trang 49)
Hình 33: Mật khẩu 5 ký tự - công cụ kiểm thử tự động
Hình 33 Mật khẩu 5 ký tự (Trang 50)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w