Tải bản đầy đủ (.doc) (39 trang)

Kiểm thử ứng dụng WEB với công cụ Selenium

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 (965.83 KB, 39 trang )

Lời cảm ơn
Em xin chân thành cảm ơn các thầy cô giáo Khoa Công Nghệ Thông Tin
trường đại học Tài Nguyên và Môi Trường Hà Nội và nhất là cô KS.Lê Thị
Vui đã tạo điều kiện thuận lợi cho em qua quá trình học tập 4 năm qua và
trong quá trình thực hiện báo cáo tốt nghiệp.
Và em cũng xin cảm ơn bố mẹ và các anh chị tại công ty cổ phần VP9 đã
giúp đỡ em rất nhiều trong quá trình thực tập.
Mặc dù đã rất cố gắng hoàn thiện bản báo cáo với tất cả năng lực của bản
thân nhưng vẫn không thể tránh khỏi nhiều điểm thiếu sót . Vì thế mong thầy
cô thông cảm và đóng góp thật nhiều ý kiến để em có thể hoàn thiện hơn về
kiến thức.
Một lần nữa em chân thành cảm và luôn mong nhận được các ý kiến của
thầy cô!

1


Lời mở đầu
Hiện nay công nghệ thông tin, công nghệ phần mềm ngày càng có xu
hướng phát triển mạnh trong xu hướng phát triển kinh tế công nghiệp hóa
hiện đại hóa.
Cùng với sự phát triển của ngành gia công phần mềm; ngành gia công kiểm
thử phần mềm tại Việt Nam cũng đang có tiềm năng phát triển. Từ năm 2010,
một số tập đoàn CNTT trên thế giới đang thuê các công ty phần mềm tại Việt
Nam gia công kiểm thử phần mềm cho họ.
Nhu cầu sử dụng dịch vụ kiểm thử phần mềm từ các đối tác nước ngoài,
đặc biệt là kiểm thử phần mềm tự động tại Việt Nam đang gia tăng. Số lượng
các kỹ sư kiểm thử phần mềm tại Việt Nam trong tương lai có thể tăng đến
hơn 10.000 người.
Ngày nay tự động hóa đang được nghiên cứu và ứng dụng trong nhiều lĩnh
vực trong đó công nghệ phần mền nói chung và kiểm thử tự động nói riêng.


Khi mà kiểm thử phần mền tốn khá nhiều thời gian,tiền bạc và nhân lực cho
một dự án nào đó thì kiểm thử tự động sẽ hỗ trợ tốt hơn kiểm thử thủ công
trong mọt số trường hợp. Selenium là một trong các loại kiểm thử tự động
đang phát triển nhất hiện nay. Nó là một công cụ kiểm thử các ứng dụng web
có khá nhiều ưu điểm như có thể kiểm thử trên nhiều trình duyệt,hỗ trợ nhiều
ngôn ngữ lập trình và đặc biệt là nó là một mã nguồn mở, do đó các tổ chức
sẽ không mất phí bản quền
Với mong muốn tìm hiểu rõ hơn về kiểm thử phần mềm và nhất là về kiểm
thử tự động với công cụ Selenium để là cơ sở cho ngành Tester mà em sẽ
hướng đến trong tương lai, nên em đã chọn đề tài “ Kiểm thử ứng dụng
WEB với công cụ Selenium” làm đồ án tốt nghiệp đại học của mình. Do thời
gian, kinh nghiệm bị hạn chế và nhất là ngành Tester đang còn mới nên có
những phần em tìm hiểu còn chưa tốt mong thầy cô và các bạn thông cảm.


MỤC MỤC


Chương 1. Phần mềm và kiểm thử phần mềm:

1. Phần mềm:
1.1.

Khái niệm:

Phần mềm là một (bộ) chương trình được cài đặt trên máy
tính nhằm thực hiện một nhiệm vụ tương đối độc lập,phục vụ cho một ứng
dụng cụ thể quản lý hoạt động của máy tính trong các hoạt động kinh tế, quốc
phòng, văn hóa, xã hội, giáo dục, giải trí.....
1.2.


Thế nào là lỗi phần mềm:

Có rất nhiều định nghĩ khác nhau về lỗi phần mềm, nhưng ta có thể hiểu một
cách tổng quát như sau:”lỗi phần mềm là sự không khớp giữa chương trình và
đặc tả của nó”
Dựa vào định nghĩa , chúng ta có thể thấy lỗi phần mềm sẽ xuất hiện dưới 3
dạng chính sau:
- Sai: Sản phẩm được xây dựng khác với đặc tả.
- Thiếu: yêu cầu được đặc tả nhưng trong sản phẩm lại không có.
- Thừa: yêu cầu được đặc tả nhưng trong sản phẩm không yêu cầu.
Một số hình thức khác cũng được coi là lỗi khi đó là phần mềm khó hiểu,
chậm hay phần mềm gây cho người sử dụng cảm giác không đúng.

2. Kiểm thử phần mềm:
2.1.

Các định nghĩa :

 Kiểm thử phần mềm là qui trình chứng minh phần mềm không có lỗi.
 Kiểm thử phần mềm là qui trình thực hành phần mềm với ý định tìm kiếm
các lỗi của nó.
 Kiểm thử phần mềm là một quá trình được sử dụng để xác định tính chính
xác, đầy đủ, và chất lượng của phần mềm máy tính phát triển.

1


 Kiểm thử phần mềm là qui trình đánh giá phần mềm ở cuối chu kì phát
triển để đảm bảo sự bằng lòng sử dụng của khách hàng ( ta có xây dựng phần

mềm đúng theo yêu cầu của khách hàng không? Các hoạt động kiểm thử được
dùng để đánh giá xem các tính chất được thực hiện trong phần mềm có thỏa
mãn các yêu cầu khách hàng và có thể theo dõi với các yêu cầu khách hàng
không?)
Các mục tiêu chính của kiểm thử phần mềm:
 Phát hiện càng nhiều lỗi càng tốt trong thời gian kiểm thử xác định trước.
 Chứng minh rằng sản phẩm phần mềm phù hợp với các đặc tả yêu cầu của
khách hàng.
 Xác thực chất lượng kiểm thử phần mềm đã sử dụng chi phí tối thiểu.
 Tạo các testcase chất lượng cao, thực hiện kiểm thử hiệu quả và tạo ra các
báo cáo đúng vấn đề và hữu dụng.
2.2.

Vòng đời của kiểm thử (testing life cycle)

Lỗi có thể xảy ra ở tất cả các công đoạn từ “Mô tả yêu cầu”,”Thiết kế” đến
“Lập trình”.
Từ công đoạn này chuyển sang giai đoạn khác thường rất dễ nảy sinh lỗi (do
dư thừa hoặc thiếu theo mô tả yêu cầu) đến công đoạn kiểm nghiệm chúng ta
sẽ phát hiện ra các hậu quả (các kết quả không theo mong muốn).
Quá trình sửa lỗi bao gồm “Phân loại lỗi”, “Cô lập lỗi” (tìm ra nguyên nhân
và nơi gây ra lỗi) sau đó đề ra” phương pháp sửa lỗi” rồi sửa lỗi.

2


Lỗi

Sửa lỗi


Mô tả yêu cầu

Giải pháp sửa
lỗi

Sai sót

Lỗi

Thiết kế

Cô lập lỗi

Sai sót

Lỗi
Lập trình

Phân loại lỗi

Sai sót

Hậu quả
Kiểm nghiệm

Vòng đời kiểm nghiệm
2.3. Quy trình của kiểm thử
Quy trình kiểm thử phần mềm bao gồm các bước
·


Lập kế hoạch kiểm tra

·

Thiết kế test case

·

Phát triển test script

-

Thực hiện test

-

Đánh giá kết quả test

3


+) Lập kế hoạch : Nhằm chỉ định và mô tả các loại kiểm tra sẽ được triển
khai và thực hiện. Kết quả của bước lập kế hoạch là bản tài liệu kế hoạch
KTPM bao gồm nhiều chi tiết từ các loại kiểm tra, chiến lược kiểm tra, cho
đến thời gian và phân định lực lượng kiểm tra viên
+) Thiết kế test: Nhằm chỉ định các test case và các bước kiểm tra chi tiết cho
mỗi phiên PM. Giai đoạn thiết kế test là hết sức quan trọng, hết sức quan
trọng , nó đảm bảo tất cả các tình huống kiểm tra hết tất cả các yêu cầu
Các bước thiết kế test :
·


Xác định và mô tả test cây

·

Mô tả các bước chi tiết để kiếm tra

·

Xem xét và khảo sát độ bao phủ của việc kiểm tra

·

Xem xét test case và các bước kiểm tra

+) Phát triển test Script: Bước này thường không bắt buộc trong các loại và
mức kiểm tra, chỉ yêu cầu trong những trường hợp đặc thù cần thiết kế, tạo ra
các test script có khả năng chạy trên máy tính giúp tự động hoá việc thực thi
các bước kiểm tra đã định nghĩa ở các bước thiết kế test
+) Thực hiện test:Mục đích thực hiện các bước kiểm tra đã thiết kế và ghi
nhận kết quả
+) Đánh giá test: Mục đích: Đánh giá toàn bộ quá trình kiểm tra bao gồm
xem xét và đánh giá kết quả kiểm tra lỗi, chỉ định các yêu cầu thay đổi và tính
toán số liệu liên quan, đến quá trình kiểm tra
2.4. Phân loại kiểm nghiệm:
• Một là phân biệt vào kĩ thuật kiểm thử ( Testing Technique)
- Kiểm thử tĩnh ( Static Testing): là phương pháp kiểm thử phần mềm đòi
hỏi phải duyệt lại các yêu cầu và đặc tả bằng tay,thông qua việc sử dụng giấy
bút để kiểm tra logic,chi tiết từng tí mà không cần chạy chương trình. Kiểm


4


thử này thương được sử dụng bởi chuyên viên thiết kế_ người viết mã lệnh
một mình.
Kiểm thử tĩnh cũng có thể được tự động hóa. Nó sẽ được thực hiện kiểm tra
toàn bộ bao gồm các chương trình được phân tích bởi một thông dịch hay
biên dịch mà xác nhận tính hợp lệ về cú pháp của chương trình.
- Kiểm thử động (Dynamic Testing): là phương pháp kiểm thử thông qua
việc dùng máy chạy chương trình để kiểm tra trạng thái tác động của chương
trình. Kiểm thử động bao gồm làm việc với phần mềm , nhập các giá trị đầu
vào và kiểm tra xem liệu đầu ra ( sản phẩm) có như mong muốn theo yêu cầu
đặc tả hay không.
• Hai là phân biệt theo mức độ chi tiết của các bộ phận hợp thành phần mềm
- Mức kiểm tra đơn vị (Unit):kiểm thử sự hiện thực chi tiết của từng đơn vị
nhỏ (hàm , class...) có hoạt động đúng không?
- Mức kiểm tra thành phần ( Module):kiểm thử các dịch vụ của module có
phù hợp với đặc tả của module đó hay không?
- Mức kiểm tra tích hợp ( Integration): kiểm thử từng phân hệ của phần
mềm có đảm bảo đặc tả thiết kế của phân hệ đó không?
- Mức kiểm tra tích hợp hệ thống ( System): kiểm thử các yêu cầu không
chức năng của phần mềm như chức năng, hiệu suất, mức độ đáp ứng, cấu
hình, ổn định,phục hồi, quá tải,chất lượng, cài đặt. Với mục đích đảm bảo
tòan bộ hệ thống hoạt động như ý mà khách hàng mong muốn
 Kiểm nghiệm chức năng( Function testing)
 Kiểm nghiệm hiệu suất(Perfomance testing)
 Kiểm nghiệm mức độ đáp ứng(Stress testing)
 Kiểm nghiệm cấu hình(Configuration testing)
 Kiểm nghiệm ổn định(Robustness testing)
 Kiểm nghiệm phục hồi(Recovery testing)


5


 Kiểm nghiệm quá tải(Overload testing)
 Kiểm nghiệm chất lượng(Quality testing)
 Kiểm nghiệm cài đặt (Installation testing)
- Mức kiểm tra độ chấp nhận của người dùng(Acceptence testing ):
nhằm bảo đảm việc người dùng có được hệ thống mà họ yêu cầu. Việc kiểm
nghiệm này hoàn thành bởi ngường dùng phụ thuộc vào các hiểu biết của họ
về các yêu cầu.
Ngoài ra còn có:
- Alpha Test: Là kiểm thử hoạt động chức năng thực tế hoặc giả lập do
người dùng/khách hàng ngay tại nơi phát triền phần mềm, lập trình viên ghi
nhận lại lỗi hoặc phản hồi và lên kế hoạch sửa lỗi
- Beta Test: phần mềm được gửi đến cho người sử dụng để kiểm tra 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.
• Các phân loại khác dựa trên phương pháp thử nghiệm (thường dùng ở mức
kiểm ta đơn vị)
- Kiểm nghiệm hộp đen (Black box testing) dùng để kiểm tra chức năng.
Các phương pháp kiểm thử hộp đen:
 Phân lớp 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-base 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


6


Ưu và nhược điểm: Các tester kiểm thử theo phương pháp blackbox testing
không có “mối ràng buộc” nào với code,và nhận thức của một tester rất đợn
giản: một source code ra nhiều lỗi. Sử dụng nguyên tắc “hỏi và bạn sẽ nhận”
các tester blackbox tìm được nhiều bug ở nơi mà các DEV không tìm
thấy.Mặt khác, việc kiểm thử blackbox được xem như “là bước đi trong mê
cung tối đen mà không mang đèn pin” bởi vì tester không biết phần mềm
đang được test đã được xây dựng như thế nào.
Vì vậy,black box testing có ưu điểm “an unaffiliated opinion” (một quan điểm
độc lập) mặt khác nó có nhược điểm là “blind exploring”(khám phá mù)
- Kiểm nghiệm hộp trắng (White box testing) dùng đề kiểm tra cấu trúc.
Các phương pháp kiểm thử hộp trắng:
 Kiểm thử giao diện lập trình ứng dụng- API testing (Application
programming interface):là phương pháp kiểm thử ứng dụng các API công
khai và riêng tư
 Bao phủ mã lệnh – Code coverage: tạo các kiểm tra để đáp ứng một số tiêu
chuẩn về bao phủ mã lệnh
 Các phương pháp gán lỗi – Fault injection
 Các phương pháp kiểm thử hoán chuyển – Mutation testing methods
 Kiểm thử tĩnh –Static testing: kiểm thử hộp trắng bao gồm mọi kiểm thử
tĩnh
Phương pháp kiểm thử hộp trắng cũng có thể sử dụng để đánh giá sự hoàn
thành của một bộ kiểm thử mà được tạo cùng với các phương pháp kiểm thử
hộp đen

7



Chương 2. Kiểm thử ứng dụng WEB và kiểm thử tự động
2.1. Kiểm thử ứng dụng WEB:
2.1.1. Khái quát :
Các ứng dụng Web đã được phát triển và trở thành một nền tảng kết nối thông
tin thiết yếu trong nhiều doanh nghiệp. Các ứng dụng Web đó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 1 ứng dụng Web hoàn hảo cho những người
đang và sẽ sử dụng ứng dụng đã trở thành 1 thử thách chính trong đảm bảo
chất lượng. Kiểm thử là một trong những công việc quan trọng để có thể đánh
giá chất lượng của 1 sản phẩm và đương nhiên là các ứng dụng Web cũng
không phải ngoại lệ. Các phương pháp kiểm thử thông thường và các kĩ thuật
sẽ tập trung vào đánh giá các chức năng yêu cầu của ứng dụng. Tuy nhiên,
không thể nào tập trung được vào hầu hết tất cả các chức năng yêu cầu. Bởi
có rất nhiều chức năng quan trọng cho người sử dụng đó như : tính hiệu năng,
tính dễ sử dụng, độ tin cậy,và tính bảo mật cần phải được xem xét. Những yêu
cầu và mong đợi của người sử dụng, những vấn đề về nền tảng và cấu hình ,
mô hình nghiệp vụ,sự phát triển và chi phí cho việc kiểm thử là những vấn đề
thường hay gặp phải và thay đổi liên tục đổi xuyên suốt chu trình của 1 ứng
dụng Web. Vì thế, cần thiết
phải phát triển 1 chiến lược hiệu quả cho việc kiểm thử mà có thể bao quát
được giới hạn tổng thể rộng lớn của những yêu cầu, chức năng cho 1 ứng
dụng Web qua đó có thể giúp cho việc cài đặt, hoàn thành ứng dụng cũng như
tránh được các rủi ro có thể gặp.
2.1.2.Những công việc khi kiểm thử 1 ứng dụng Web :
Kiểm thử là một hoạt động để đánh giá chất lượng của 1 sản phẩm phần mềm
và quan trọng là cải thiện nó bằng cách tìm ra những thiếu xót , khuyến

8



khuyết. “Nếu chúng ta chạy 1 phần mềm mà với ý định tìm ra lỗi của nó tức
là chúng ta đang nói đến việc kiểm thử” (Myers 1979). Một vấn đề thường
hay xảy ra trong quá trình phát triển các ứng dụng Web đó là các yêu cầu này
thường không đầy đủ , tường minh và thường có thể thay đổi bất kì lúc nào.
Thông thường, chúng ta cần có dược cái nhìn khái quát về các chức năng cơ
bản mà ứng dụng web sẽ có. “Cái nhìn khái quát” này sẽ là tầm nhìn để thực
hiện phát hành lần đầu ứng dụng. Kết quả là,các chu kì nhỏ hơn của các chức
năng mới được bổ sung sẽ theo sau các chu trình phát triển ban đầu này.
Phương pháp tiếp cận nhanh – tập trung vào tính chất lặp và tiến hóa của 1
ứng dụng web và vòng đời phát triển của chúng mà không hề có bất kì văn
bản cụ thể nào định nghĩa về phương pháp này. Các mục tiêu, mối quan tâm
và mong đợi của các bên liên quan có thể hình thành cơ sở cho việc thử
nghiệm.
2.1.3.Các đặc điểm về chất lượng của một ứng dụng Web
Một người sử dụng không chỉ mong đợi chương trình của họ sẽ vận hành 1
cách ổn định, đúng đắn mà họ yêu cầu 1 số chức năng nào đó phải luôn sắn
sàng trên 24h/7day. Hơn nữa, người sử dụng còn mong đợi ở chương trình ở
những ưu điểm sau: tính dễ sử dụng, độ tin cậy, tốc độ , tương thích với các
hệ thống khác nhau và tương thích với các phiên bản trong tương lai. Còn với
1 ứng dụng web , thì những yêu cầu về chất lượng bao gồm:
• Yêu cầu về chức năng : sự hiện diện của các chức năng đáp ứng những yêu
cầu được xác định. Các yêu cầu cần có nữa là tính phù hợp, chính xác, khả
năng tương tác, tuân thủ và bảo mật.
• Yêu cầu về độ tin cậy: khả năng của 1 ứng dụng để duy trì sự hiệu quả của
nó trong 1 điều kiện cụ thể và trong khoảng thời gian xác định.

9



• Yêu cầu về khả năng sử dụng: tính dễ sử dụng và hiệu quả của 1 ứng dụng.
Vấn đề này có thể được thẩm định bởi 1 nhóm người giả định.
• Yêu cầu về hiệu quả: tỷ lệ giữa mức độ hiệu quả của 1 ứng dụng và các tài
nguyên mà nó sử dụng trong các điều kiện cụ thể.
Các yêu cầu về chất lượng đóng một vai trò thiết yếu khi thử nghiệm các ứng
dụng web. Mặc dù nhìn chung thì chúng tương tự như những yêu cầu về chất
lượng cho các hệ thống phần mềm truyền thống, tuy nhiên chúng có thể có
mức độ đòi hỏi cao hơn về chiều sâu.
Do ý nghĩa quan trọng của các đặc điểm về chất lượng và sự khác biệt ở cách
mà chúng được kiểm thử, nhiều phương pháp để kiểm thử 1 ứng dụng web
tập trung vào 1 vài các đặc điểm. Tuy nhiên tất cả các đặc điểm đều quan
trọng đối với 1 ứng dụng web. Và công việc kiểm thử phải đảm bảo những
yêu cầu này được cài đặt thành công.
2.1.4.Những phương pháp kĩ thuật khi kiểm thử một ứng dụng WEB
Bảng:các phương pháp,kĩ thuật và các lớp công cụ để thử nghiệm các ứng
dụng web
Chức năng

ND và cấu trúc

CSHT và môi
trường

Chức Phù hợp

Xem lại và kiểm Bảng

Năng


tra,

kiểm

kiểm

tra mục,kiểm tra từ

hướng phát triển mục,phong cách
hướng

dẫn,xem

Độ

lại
Thu hút /chạy Phân tích tĩnh, Phân

chính

lại

kiểm

tra kiểm

tra

tích


tĩnh,

ngữ kiểm tra ngữ pháp

xác
hướng phát triển pháp,xem lại
Thao tác Trình
duyệt Kiểm tra in ấn, Trình duyệt chéo
giữa các chéo



nền bảng chỉ mục, và nền tảng

10


phần

tảng

thử tính tương Kiểm

Kiểm tra khả thích, xem lại
năng
Sự

nghiệm Bảng

tương hợp

Phóng

Bảo mật

thích

kiểm Trình duyệt chéo

mục,tương thích và nền tảng
cách thử

nghiệm, Kiểm

hướng dẫn kiểm phong
tra

khả

năng hướng

tra

tương

cách thích
dẫn

tương thích
viên,xem lại
Phân tích chung


Phân tính chung

tấn công,xét và

tấn

thanh tra

lỗi thử nghiệm,đạo

Độ

thử

đức hacker
Độ
bền

thử

nghiệm
Buộc
lỗi

thử

bền

công,cưỡng-


Độ

đ Đáo

Tin

hạn
nghiệm
Dung sai Buộc-lỗi

thử

nghiệm,

căng

nghiệm

thử

Nguồn

Cậy

tương

tương

thích

hài Thử

lòng

tra

thẳng
nghiệm

lực

thử

nghiệm thấp,căng

Tính có Buộc –lỗi thử

thẳng thử nghiệm
Fail—over
thử

thể khôi nghiệm

nghiệm

phục

Fail-over

thử


Buộc

nghiệm

lỗi

thử

nghiệm
Nguồn nhân lực
thấp

11


Khả

Tính dễ Có thể học được Dễ phân tích để

Năng hiểu

Tìm tòi đánh giá học

Sử

Có thể học được


thể Nghiên cứu khả


học

năng sử dụng

được
Tính

Tìm tòi đánh giá
Nghiên cứu khả

thực thi

năng sử dụng

Tìm tòi đánh giá

Tìm tòi đánh giá
Sự

hấp

Công khai thử

Tính

dẫn
Thời

nghiệm

Kiểm thử tải và

Kiểm thử tải và

Hiệu

gian

căng

căng thẳng, giám

Quả

Hành vi
Tài

giám sát
Độ bền

nguyên

nghiệm

thẳng,
thử Tải thử nghiệm

sát
Độ


bền

thử

nghiệm, giám sát

sử dụng
2.1.4.1.

Thử nghiệm liên kết

Liên kết bên tong một cấu trúc siêu văn bản mà điểm đến không tồn tại một
nút (các trang web, hình ảnh....) gọi là liên kết hỏng thương xuyên xảy ra sai
sót trong các ứng dụng web . Để kiểm tra tính chính xác của các trang liên kết
(link kiểm tra) tất cả các liên kết được hệ thống theo sau bắt đầu trên một
trang bắt đầu. , và sau đó được nhóm trong một đồ thị liên kết (bản đồ trang
web) .
Khi chạy một thói quen kiểm tra liên kết , người ta thường thấy các liên kết
không chỉ là điểm đến không tồn tại trang, nhưng cũng có các trang không
được interlinked với những người khác hoặc còn gọi là các trang mồ côi.
Những trang mồ côi có thể được đạt đến thông qua một liên kết , nhưng

12


không có một liên kết đến cấu trúc siêu văn bản . Để đơn giản người sử dụng
nó không rõ ràng nơi để đi tới , để chúng rời bỏ trang web.
2.1.4.2.Thử nghiệm trình duyệt
Sự khác biệt trong các trình duyệt web , môi trường hoạt động , và các thiết bị
phần cứng ảnh hưởng đến các hoạt động chính xác của ứng dụng web

• Trình duyệt tương thích :
- Thử nghiệm ứng dụng web của bạn cho chức năng chính xác trên một số
trinh duyệt như firefox, IE, Chrome, Opera...
- Kiểm tra chức năng ứng dụng với một loạt các cài đặt cấu hình bảo mật
trình duyệt
- Kiểm tra các chức năng ứng dụng với tính năng trình duyệt bật /tắt
- Kiểm tra dựng hình trình duyệt của giao diện người dùng ứng dụng của
bạn.
- Kiểm tra các thiết bị bảo mật của trình duyệt cho tên miền chéo truy cập và
hack
- Kiểm tra chức năng ứng dụng nhất quán trên nhiều phiên bản của một trình
duyệt
• Môi trường hoạt động tương thích
- Kiểm tra ứng dụng giao diện người dùng vẽ trên hệ thống cửa sổ hệ điều
hành
- Kiểm tra chức năng tích hợp máy tính để bàn , bao gồm kéo thả tập tin
- Thử nghiệm ứng dụng web của bạn trên các hệ điều hành khác nhau như
windown, unix,linux...
2.1.4.3.Thử nghiệm tính năng
• Load test
- Kiểm tra phản ứng máy chủ để dưới dạng trình duyệt gửi yêu cầu
- Xác thực thay đổi hoạt động trong một khoảng thời gian

13


- Thử nghiệm cho các chức năng mà ngừng làm việc ở các cấp độ cao hơn
của người tải.
- Xác định các vấn đề về độ trễ mạng về chức năng ứng dụng web
• Stress test

- Xác định cách thức ứng dụng đáp ứng theo mức độ tải
- Xác định các phần của ứng dụng web mà không theo mức độ tải
- Xác định các chức năng ứng dụng sau khi một vụ tai nạn hệ thống hay
thành phần thất bại
- Xác định các hình thức và liên kết các hoạt động khác nhau theo mức độ
tải.
2.1.4.4.Kiểm tra bảo mật
- Bảo vệ dữ liệu ứng dụng web và duy trì chức năng như thiết kế
- Kiểm tra các hoạt động mà không cần loging
- Kiểm tra xác thực cơ bản sử dụng tên giả và các thông tin mật khẩu
- Kiểm tra các chức năng ứng dụng với các lĩnh vực đầu vào không hợp lệ ,
bao gồm các lĩnh vực văn bản
- Kiểm tra bảo vệ máy chủ web của các thư mục web không thể truy cập
hoặc các tập tin
- Kiểm tra để xác định ứng dụng web vi phạm an ninh bao gồm thông báo lỗi
và vi phạm an ninh nỗ lực đang được đăng nhập
- Kiểm tra các thiết lập bảo mật trình duyệt để di chuyển từ an toàn vào các
trang web không an toàn
2.1.5.

Giới thiệu sơ qua về một số công cụ hỗ trợ kiểm thử ứng

dụng web
• Công cụ test bảo vệ web
Firebug: ứng dụng an ninh web cho trình duyệt firrefox
• Công cụ test hiệu năng

14



- Loadrunner:thực hiện tự động và kiểm thử tải phần mềm từ HP
- Neoload: công cụ kiểm tra hiệu suất từ Neotys
- Silk Perfomer: công cụ kiểm tra hiệu suất từ Borland.
...........
• Công cụ test chưc năng
- Test Studio: công cụ kiểm thử phần mềm cho chứ năng web từ Telerik
- TOSCA testsuite: công cụ phần mềm thực hiện tự động các ứng dụng web
theo chức năng vf hồi quy
....................
- Thêm nữa, Selenium cũng nằm trong thuộc nhóm công cụ này, nó dùng để
test tự động các ứng dụng web, có sẵn nhiều ngôn ngữ
2.3.Kiểm thử tự động
2.3.1.Khái quát kiểm thử tự động
Kiểm thử phần mềm tốn nhiều chi phí nhân công, thời gian. Trong một dự án,
chi phí cho kiểm thử phải chiếm đến 50% tổng giá trị của dự án. Nếu cần ứng
dụng an toàn hơn, chi phí kiểm thử sẽ tăng lên khá nhiều.
Do đó một trong những mục tiêu của kiểm thử là tự động hóa phần lớn,nhờ đó
mà giảm thiểu chi phí, giảm lỗi,đặc biệt giúp cho kiểm thử hồi quy được dễ
dàng và nhanh chóng hơn nhiều.
Tự động hóa kiểm thử là dùng phần mềm điều khiển việc thi hành kiểm thử
so sánh kết quả có được với kết quả mong muốn, thiết lập các điều kiện đầu
vào,các kiểm soát kiểm thử và các chức năng báo cáo kết quả.
2.3.2. Kiểm thử tự động là gì?
Kiểm thử tự động là qua trình xử lý 1 cách tự động các bước thực hiện
testcase, kiểm thử tự động bằng một công cụ nhằm rút ngắn thời gian kiểm
thử
2.3.3.Tại sao phải kiểm thử tự động?

15



- Kiểm thử tự động với các mục đích:
• Giảm bớt công sức và thời gian thực hiện quá trình thử nghiệm
• Tăng độ tin cậy
• Giảm sự nhàm chán cho tester
• Rèn luyện kỹ năng lập trình cho kĩ thuật viên
• Giảm chi phí cho tổng quá trình kiểm thử
- Khi nào cần kiểm thử tự động
• Không đủ tài nguyên: khi số lượng testcase quá nhiều mà kĩ thuật viên lại
không đủ để có thể hoàn tất trong một thời gian cụ thể
• Kiểm tra hồi quy: nâng cấp phần mềm, kiểm tra lại các tính năng đã được
sửa và chạy tốt nhưng việc này khó có thể đảm bảo về mặt thời gian
• Kiểm tra khả năng vận hành phần mềm trong môi trường đặc biệt hay các
môi trường khác nhau :
 Đo tốc độ trung bình xử lý một yêu cầu của web server
 Xác định số yêu cầu tối đa được xử lý bởi web server
 Xác định cấu hình máy thấp nhất mà phần mềm vẫn hoạt động tốt

16


2.3.4. Quy trình kiểm thử tự động
Bảng : Các bước thực hiện kiểm thử tự động
STT Bước thực hiện
1
Tạo kịch bản kiểm thử

Mô tả
Dùng công cụ kiểm thử để ghi lại các
thao tác lên phần mềm cần kiểm tra


2

và tự động sinh ra kịch bản kiểm thử
Chỉnh sửa kịch bản kiểm thử Chỉnh sửa để kịch bản kiểm thử thực
hiện kiểm tra theo đúng yêu cầu đề
ra. Cụ thể, làm theo trường hợp kiểm

3

Chạy kịch bản kiểm thử

thử cần thực hiện.
Chạy kịch bản kiểm thử để kiểm tra
phần mềm có đưa ra đúng như kết

4

Đáng giá kết quả

quả mong muốn hay không
Đánh giá kết quả sau khi chạy kịch
bản kiểm thử

2.3.5. So sánh giữa kiểm thử tự động và kiểm thử thủ công
Tiêu

Manual test

Automation test


chí
Thời

(kiểm thử thủ công)
(kiểm thử tự động)
Mất nhiều thời gian thực thi Mất ít thời gian thực thi nhưng

gian

nhưng không phải test lặp đi lặp quá trình test lặp tăng hơn

lại
nhiều so với Manual test
Độ linh Linh động do test thủ công có Không linh động vì test theo
hoạt

thể phát hiện và xử lý những testcript nên quá trình test
tình huống phát sinh trong quá không phát hiện ra lỗi mới chỉ

trình test và có thể tìm ra lỗi mới
Bảo trì Không cần bảo trì
Kết quả Có ngay
Ưu
Linh động và trong quá trình test

17

thích hợp với kiểm thử hồi quy
Cần bảo trì

Cần thời gian
Thích hợp cho việc kiểm thử


điểm

có thể tìm ra lỗi mới

hồi quy-lặp đi lặp lại.
Có thể tái sử dụng testcript.
Thích hợp giả lập để test hiệu
năng và khả năng chịu tải cũng
như giả lập các hệ thống để

Hạn

kiểm thử
Nếu sử dụng manual mà test một Nếu suer dụng Automation mà

chế

chức năng lặp đi lặp lại thì sẽ test ít thì sẽ lãng phí thời gian
tốn nhiều thời gian và khó chính và nhân lực cho công việc viết
xác

nên

thay

thế


bằng testscript nên thay thế bằng

Automation

Manual

18


Chương 3: Test Web bằng công cụ kiểm thử tự động SELENIUM
3.1. Selenium là gì?
Selenium (thương được viết tắt là SE) là một phần mềm mã nguồn mở được
tạo bởi Jason Huggins vào năm 2004. Là một kĩ sư tại Thought,ông đã làm
việc trên một ứng dụng web mà cần kiểm tra thường xuyên. Sau khi nhận ra
rằng kiểm tra thủ công lặp đi lặp lại các ứng hụng cửa họ ngày càng trở nên
kém hiệu quả hơn,ông đã tạo ra môt chương trình “Java Script” mà sẽ tự động
kiểm soát hoạt động của trình duyệt. Ông đặt tên cho chương trình là “Java
Script Test Runner”. Nhìn thấy tiềm năng trong ý tưởng này giúp tự động các
ứng dụng web khác, ông đã thực hiện “Java Script Runner”mã nguồn mở mà
sau này được đổi tên là Selenium Core
Selenium là một bộ các công cụ hỗ trợ kiểm thử tự động các tính năng của
ứng dụng web, bao gồm 4 phần: Selenium IDE, Selenium Remote control
(RC), Selenium Core và Selenium Grid
Trong chương này ta sẽ tìm hiểu Selenium IDE
3.2. Selenium IDE
Selenium IDE là gì?
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
thử nghiệm selenium. Nó hoạt động như một trình duyệt Firefox add-on và
một giao diện dễ sử dụng để phát triển và chạy trường hợp kiểm thử cá nhân,

bộ kiểm tra toàn bộ. Nó đượ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. Nó được xây dựng sử dụng
JavarScript do vậy mà nó có thể tương tác với DOM ( Document Object
Model), sử dụng được những cách gọi JavarScript.

19


3.2.1. Cách cài đặt Selenium IDE
Để kiểm tra xem trên trình duyệt Firefox đã được cài Selenium IDE hay
chưa? Thì ta bật vào trình duyệt Firefox rồi nhấp vào Tools trên Menu Bar và
quan sát trên menu đổ xuống liệu có Selenium IDE hay không? Nếu chưa có
ta sẽ làm các bước sau để cài phần mềm này
Bước 1: Mở trang chủ của Selenium ra: />
Bước 2: Bấm vào link download 2.8.0 ( chỉ số phiên bản sẽ thay đổi theo thời
gian) nó sẽ bật ra cửa sổ Software Installation ( cài đặt phần mềm) như hình
dưới và cờ trong vài giây sau đó click vào nút Install (cài đặt ngay) cạnh nút
Cancel( hủy bỏ).

20


Bước 3: Khởi động trình duyệt FireFox
Bước 4: Lần đầu khởi động Selenium IDE của bạn
Click vào Tools ( công cụ ) trên menu Bar. Tìm sẽ thấy mục mới ghi
Selenium IDE. Sau khi click vào mục này

21



Sau đó ta sẽ thấy hiện bảng sau

3.2.2. Các icon của Selenium

Hinh: các kí hiệu của SELENIUM
22


×