Bài báo cáo chi tiết về quá trình tìm hiểu lí thuyết kiểm thử, lí thuyết công cụ kiểm thử Selenium, mô tả quá trình tải và cài đặt công cụ kiểm thử. Có hướng dẫn viết testCase kiểm thử. các bạn chỉ cần 1 webSite có sẵn, sau đó viết testCase như mẫu.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁOKiểm thử phần mềm
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
ĐỀ TÀI:
KIỂM THỬ CHỨC NĂNG WEBSITE VỚI SELENIUM
WEBDRIVER
Giảng viên hướng dẫn:
Sinh viên thực hiện: Hoàng Tấn Phát
Hà Nội, ngày… tháng….năm 2016
Trang 3Lời Nói Đầu
Vì những vấn đề cấp thiết đó , nhóm em đã quyết định chọn đề tài trên đểnâng cao kĩ năng “ kiểm thử phần mềm ” để hướng đến những sản phẩmtốt nhất cho những người sử dụng
Em xin chân thành cảm ơn !
Trang 4Mục Lục
Phần 1 : PHẦN MỞ ĐẦU I.Tổng quan về kiểm thử phần mềm
Trang 51.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 nhu cầu của khách hang và phù hợp với đặc tả yêu cầu, đảm bảochất lượng và tính chính xác của ứng dụng
2.Các cấp độ kiểm thử phần mềm
2.1 Kiểm thử đơn vị
Một đơn vị (Unit) là một thành phần phần mềm nhỏ nhất mà ta có thểkiểm thử được, ví dụ: các hàm (Function), thủ tục (Procedure), lớp (Class),hoặc các phương thức (Method)
Unit testing đề cập đến các kiểm thử để chứng thực (xác minh - verify)chức năng của một phần riêng biệt của code, thường ở mức hàm (functionlevel) Trong một môi trường hướng đối tượng (object-orientedenvironment), 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ồm cá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àycần được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyênsuố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ường hợ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ảichuẩn bị trước các ca kiểm thử (hay trường hợp kiểm thử) (test case) hoặckịch bản (test script), 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ànhphần và Unit riêng lẻ thì Intgration Test kết hợp chúng lại với nhau và kiểmtra sự giao tiếp giữa chú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
Trang 6• 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:
• 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 đến hoạt động của các thành phần cấu trúc nội tại của chươngtrì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ểmthử chỉ chú trọng đến chức năng của chương trình, không quan tâm đến cấutrúc bên trong), 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ệmnhằm xác minh toàn bộ các thành phần của hệ thống được tích hợp mộtcách đúng đắn Mục đích của ST là đảm bảo toàn bộ hệ thống hoạt độngnhư 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ợpthành công Thông thường loại kiểm tra này tốn rất nhiều công sức và thờigian Trong nhiề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ặc phầ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 tracũng tìm kiếm các lỗi, nhưng trọ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ên quan đế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 Test chú trọng các hành vi và lỗi trên toàn hệ thống, còn IntegrationTest chú trọng sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làmviệc cùng nhau Thông thường ta phải thực hiện Unit Test và IntegrationTest để bảo đảm mọi Unit và sự tương tác giữa chúng hoạt động chính xáctrướ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ốngthỏ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ài nguyê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 7• Kiểm tra khả năng chịu tải (Stress Test hay Load Test): bảo đảm hệ thốngvậ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 trung vào các trạng thái tới hạn, các “điểm chết”, các tìnhhuố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ậtcủ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ăngkhôi phụ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; đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàngtrự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ựchiệ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ầucủa khách hàng và khách hàng chấp nhận sản phẩm và trả tiền thanh toánhợp đồng
AT có ý nghĩa hết sức quan trọng, mặc dù trong hầu hết mọi trườnghợp, các phé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ực hiệ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àoquá 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 đếnviệc hiểu sai yêu cầu cũng như sự mong chờ của khách hàng Ví dụ đôi khimột PM xuất sắc vượt qua các phép kiểm tra về chức năng thực hiện bởinhóm thực hiện dự án, nhưng khách hàng khi kiểm tra sau cùng vẫn thấtvọng vì bố cục màn hình nghèo nàn, thao tác không tự nhiên, không theotậ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).[5]
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áctrường hợp kiểm thử có thể xây dựng để kiểm thử tất cả các thao tác đó
• Hiểu rõ cách hoạt động của một hàm/module hay sản phẩm Cáctrường hợp kiểm thử có thể được xây dựng để đảm bảo tất cả các thành
Trang 8các mô tả và tất cả các thà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ệmhành vi Xem chương trình như là một “hộp đen”, hoàn toàn không quantâm về cách cư xử và cấu trúc bên trong của chương trình Thay vào đó, Tậptrung vào tìm các trường hợ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
• Đồ thị nguyên nhân-kết quả - Cause Effect Graphing
• 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ểmthử phần mềm có liên quan đến phân chia các giá trị đầu vào thành các phânvù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ểmthử cho từng phần, chọn giá 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ập hợ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ùngmột kết quả 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ớptương đương ta chỉ cần test trên các phần tử đại diện
• 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ùng tươ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ác trạ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ử
Trang 9- -> 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ỗi giố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ểmthử 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ả cho các giá trị đầu vào và chọn giá trị ở biên và bên cạnh giá trị biênlàm dữ liệu kiểm thử 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
Test giá trị biên được thực hiện theo trình tự dưới đây:
• Tìm ra đường biên
• Quyết định giá trị biên
• 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ị)
3.1.2 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 1result
- 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.1.3 Đồ thị nguyên nhân - kết quả
Là một kỹ thuật thiết kế kiểm thử phần mềm liên quan đến việc xác địnhcác trường hợp (điều kiện đầu vào) và các hiệu ứng (điều kiện đầu ra) Vì
Trang 10ta có thể có được một đồ thị các đối tượng mà hệ thống định nghĩa và kếtnối Từ đồ thị này, chúng ta dễ dàng biết các mối quan hệ của những đốitượng mà hệ thống xử lý, từ đó sẽ cho chúng ta các kịch bản kiểm thử phùhợp.
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ụngbằng cá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ều kiện bao phủ code - code coverage (ví dụ như, người thiết kế test cóthể tạo ra các 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 ít nhấ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ểmthử tĩnh (ví dụ review code)
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ứcnăng
* Bao phủ câu lệnh - Statement coverage, dựa trên số lượng các dòng lệnh
đã được thực thi để hoàn thành kiểm thử
Trang 11Phần 2 : Nội dung
Chương I Tổng quan về Selenium
1 Giới thiệu chung về Selenium
Trong lĩnh vực kiểm thử tự động hiện có khá nhiều test tool thương mạinổi tiếng, phổ biến như Selenium, QuickTest Professional, WinRunner,Rational Robot, SilkTest, JTest, Trong số đó, Selenium bao gồm nhiềuchức năng điển hình của một công cụ kiểm thử tự động
Selenium (thường được viết tắt là SE) là một trong những công cụkiểm thử phần mềm tự động mã nguồn mở (open source test automationtool) mạnh mẽ nhất hiện nay cho việc kiểm thử ứng dụng Web
Selenium là một công cụ kiểm thử phần mềm tự động, được phát triểnbởi ThoughtWorks từ năm 2004 với tên ban đầu là JavaScriptTestRunner.Đến năm 2007, tác giả Jason Huggins rời ThoughtWorks và gia nhậpSelenium team, một phần của Google và phát triển thành Selenium như hiệnnay
Selenium là một tập hợp mạnh mẽ của các công cụ hỗ trợ phát triểnnhanh chóng của các thử nghiệm tự động hóa cho các ứng dụng dựa trênweb.Selenium cung cấp một tập phong phú của các thử nghiệm chức năngđặc biệt hướng đến các nhu cầu của các thử nghiệm của một ứng dụng web.Các hoạt động này là rất linh hoạt, cho phép nhiều tùy chọn cho vị trí cácthành phần UI và so sánh kết quả thử nghiệm dự kiến sẽ chống lại hành viứng dụng thực tế
Lợi ích của Selenium :
• Hỗ trợ các trường hợp mà việc execute test lặp đi lặp lại
• Hỗ trợ các trường hợp execute test một ma trận thử nghiệm lớn
• Có thể thực hiện execute test song song
• Có thể thực hiện execute test mà không cần người giám sát
• Cải thiện độ chính xác, giảm tối đa các lỗi do con người tạo ra
• Tiết kiệm thời gian và tiền bạc
Các đặc điểm của Selenium
Trang 12 Mã nguồn mở Phải nói điểm này là điểm mạnh nhất của Selenium khi so sánh với các test tool khác Vì là mã nguồn mở nên chúng ta có thể sử dụng
mà không phải lo lắng về phí bản quyền hay thời hạn sử dụng
Cộng đồng hỗ trợ Vì là mã nguồn mở nên Selenium có một cộng đồng hỗ trợ khá mạnh mẽ Bên cạnh đó, Google là nơi phát triển Selenium nên
chúng ta hoàn toàn có thể yên tâm về sự hổ trợ miễn phí khi có vấn đề về Selenium Tuy nhiên, đây cũng là một điểm yếu của Selenium Cơ bản vì là hàng miễn phí, cộng đồng lại đông nên một vấn đề có thể nhiều giải pháp,
và có thể một số giải pháp là không hữu ích Mặc khác, chúng ta không thể hối thúc hay ra deadline cho sự hỗ trợ
Selenium hỗ trợ nhiều ngôn ngữ lập trình C#, Java, Python, PHP và
Selenium còn có thể kết hợp với một số công cụ kiểm thử khác như Junit, Bromien, Nunit
Selenium hỗ trợ chạy trên nhiều OS khác nhau với mức độ chỉnh sửa script hầu như là không có Thực sự thì điều này phụ thuộc phần lớn vào khả năngviết script của chúng ta
Chạy test case ở backround Khi chúng ta thực thi một test scrpit, chúng ta hoàn toàn có thể làm việc khác trên cùng một PC Điều này hỗ trợ chúng ta không cần tốn quá nhiều tài nguyên máy móc khi chạy test script
Không hỗ trợ Win app Selenium thực sự chỉ hỗ trợ chúng ta tương tác với Browser mà không hỗ trợ chúng ta làm việc với các Win app, kể cả Win dialog như Download/Upload – ngoại trừ Browser Alarm Vậy nên, để xử lýcác trường hợp cần tương tác với hệ thống hay một app thứ ba, chúng ta cầnmột hay nhiều thư viện khác như AutoIt hay Coded UI
2 Các thành phần của Selenium
Selenium gồm 4 thành phần chính , mỗi thành phần đều đóng một vaitrò cụ thể trong việc hỗ trợ kiểm thử Web :
Trang 13Mặc dù Selen-IDE chỉ là một Firefox add-on, các kiểm thử tạo ratrong nó cũng có thể được chạy cho các trình duyệt khác bằng cách sử dụngSelenium-RC và chỉ định tên của bộ ứng dụng thử nghiệm trên dòng lệnh.
2.2 Selenium Webdriver
WebDriver là một công cụ để kiểm thử tự động các ứng dụng web
Nó thường được gọi là Selenium 2.0 WebDriver sử dụng một framework cơbản khác biệt trong khi Selenium RC sử dụng Javacript Selenium-Corenhúng vào trong trình duyệt WebDriver tương tác trực tiếp với các trìnhduyệt và không cần bất kỳ trung gian nào, không giống như Selenium RCphụ thuộc vào một máy chủ WebDriver được sử dụng trong ngữ cảnh sau:
Kiểm thử đa trình duyệt, bao gồm cải thiện chức năng cho trình duyệt
mà không được hỗ trợ tốt bởi Selenium RC (Selenium 1.0)
Trang 14 Điều hướng trang phức hợp.
Điều hướng người dùng nâng cao như kéo-thả (drag-and-drop)
AJAX-based UI elements
2.3 Selenium RC ( Remote Control )
Selenium RC là dự án Selenium chính trong một thời gian dài trướckhi Selenium WebDriver (Selenium 2.0) ra đời Giờ đây Selenium RC hầunhư không được sử dụng vì WebDriver cung cấp nhiều tính tăng mạnh mẽhơn Tuy nhiên bạn vẫn có thể tiếp tục phát triển các script sử dụng RC
Selenium RC cho phép các nhà phát triển tự động hóa kiểm tra 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 ứng dụng trả về một tập kết quả của việc kiểm tra, 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ônngữ 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 Selenium lệnh chạy thử nghiệm trên mỗi mục
Khả năng sử dụng Selen-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 được tích hợp với một dự án xây dựng môi trường tự động
Selenium RC cho phép chúng ta viết các kiểm thử giao diện của ứngdụng Web tự động với sự giúp đỡ của các ngôn ngữ lập trình như Java, C#,Perl, Python, PHP để tạo ra các ca kiểm thử phức tạp hơn như đọc và viếtcác tập tin, truy vấn cơ sở dữ liệu và gửi mail kết quả kiểm thử Khả năng
sử dụng Selen-RC với một ngôn ngữ lập trình bậc cao để phát triển cáctrường hợp thử nghiệm cũng cho phép thử nghiệm tự động được tích hợpvới một dự án xây dựng môi trường tự động
Selenium Grid bao gồm 2 thành phần chính là Hub và Nodes:
Hub: có thể hiểu là máy chủ server, chứa hard code và là nơi gửi lệnh
điều khiển các máy khác trong mô hình thực thi kiểm thử Hub chỉ có thể được set up duy nhất trên một máy tính
Nodes: là các Selenium instances được kết nối vào Hub để thực thi
các kịch bản kiểm thử Có thể có nhiều Nodes trong một mô hình Grid Các
Trang 15Nodes có thể được set up trên nhiều máy tính với nhiều trình duyệt khác nhau.
3 Cài đặt Selenium Webdriver
Bước 1 Download và cài đặt Java Development Kit (JDK)
• Link download :
http://www.oracle.com/technetwork/java/javase/downloads/index.html
• Cài đặt bình thường, click Next, Install cho đến khi hoàn tất
Bước 2 Download và cài đặt Eclipse IDE
• Link download: http://www.eclipse.org/downloads/, tùy vào hệ thống của bạn phiên bản 32/64bit để lựa chọn cho phù hợp Ở đây mình tải
bản Eclipse IDE for Java Developer đã đáp ứng đủ nhu cầu công việc
Bước 3 Download Selenium Java Client Driver
• Link download: http://seleniumhq.org/download/
• Giải nén và đặt vào 1 thư mục cố định Nên đặt khác vị trí ổ C để sau này cài đặt lại hệ thống có thể tái sử dụng lại ngay hoặc đặt trực tiếp vào trong Project (cài lại máy hoặc di chuyển qua hệ thống khác vẫn chạy Ok)
Bước 4 Tạo Project
• Chạy eclipse.exe từ bước 2 đã tải về
• Set workspace (nơi lưu trữ dự án của bạn) vào bất kì thư mục nào khác ổ
C Mục đích để nếu cài đặt lại hệ thống eclipse sẽ tự động load lại các dự án
bạn đang làm việc từ workspace Ví dụ: D:\Workspace 64BIT (Đổi lại đường dẫn workspace trong eclipse: File -> Switch Workspace)
• Tạo mới Project: File -> New -> Java Project -> [Đặt tên Project] -> Finish
• Tạo mới Package: Right click vào Project ->New -> Package -> [Đặt tên Package] ->Finish
• Tạo mới Class: Right click vào Package -> New -> Class -> [Đặt tên Class] -> Finish
Bước 5.Thêm Selenium Java Client Driver (.jar) vào trong Project
• Right click vào tên Project -> Properties -> Java Build Path
-> Libraries -> Add External JARs
• Chọn tất cả những file có định dạng là jar trong thư mục java-2.47.1] -> OK
[selenium-Bước 6 Thêm TestNG plugin vào Eclipse
• Chọn Help -> Install New Software
• Nhập TestNG vào textbox Name và http://beust.com/eclipse vào
textbox Location -> click OK
Trang 16• Click “I accept the terms of the license agreement” và
nhần Finish button
Nếu hiện ra 1 pop up thong báo về Security Warning , nhấn OK để tiếp tục
• Hoàn thành, click Yes để khởi động lại Eclipse
• Sau khi khởi động xong, cần kiểm tra TestNG đã được cài đặt thành
công: Window -> Preferences
• TestNG plugin đã được tích hợp thành công vào Eclipse
Tích hợp thành công testNG plugin vào Eclip
Trang 17Lợi ích lớn nhất mà Thương mại điện tử mang lại đó chính là tiết kiệm đượcchi phí lớn tạo thuận lợi cho các bên giao dịch Giao dịch bằng phương tiệnđiện tử nhanh hơn là giao dịch bằng truyền thông, ví dụ gửi fax hay thư điện
tử thì nội dung thông tin sẽ đến người nhận nhanh hơn là gửi thư Các giaodịch qua internet có chi phí rất rẻ, một doanh nghiệp có thể gửi thư tiếp thị,chào hàng đến hàng loạt khách hàng chỉ với chi phí giống như gửi cho mộtkhách hàng Với Thương mại điện tử, các bên có thể tiến hành giao dịch khi
ở cách xa nhau, giữa thành phố với nông thôn, từ nước này sang nước kháchay nói cách khác là không bị giới hạn bởi không gian địa lý Điều này chophép các doanh nghiệp tiết kiệm chi phí đi lại, thời gian gặp mặt trong khimua bán Với người tiêu dùng họ có thể ngồi tại nhà để đặt hàng, mua sắmnhiều loại hàng hóa dịch vụ thật nhanh chóng
Với các website thương mại điện tử cụ thể là các website bán hàng thì : Người chủ cửa hàng là người có chức quyền cao nhất: có thể xem thông tin về tình hình thu nhập cũng như mọi thay đổi trên website bán hang
Nếu chủ cửa hang cũng là người quản trị website thì mọi thông tin trên web là do chủ cửa hàng đưa lên, nếu thuê nhân viên quản trị thì chủ cửa hàng cung cấp thông tin hoặc cấp quyền hạn cho người quản trị
Trang 18Nhân viên chỉ là người giao dịch: tức là xem trong ngày, trong tuần có bao nhiêu đơn đặt hàng và đã giải quyết được bao nhiêu, đểc ó thể báo cáo bất cứl úc nào cho chủ cửa hàng.
Người chức cao nhất thì xem được tất cả các thông tin, còn nhân viên và khách hàng chỉ được xem những thông tin mà người cấp trên cho phép
2 Giới thiệu website:
Giao diện website
Website bán sách online là website sử dụng công nghệ PHP-MySQL Cho phép khách hàng truy cập vào ứng dụng để xem, lựa chọn và mua hàngtrực tuyến Web cho phép người dùng mua sách onile, xem tin tức vv
Menu ngang
Trang 19Menu dọc
Trang 20Giỏ hang và thanh toán
3 Đối tượng sử dụng và chức năng của website
• Đối tượng sử dụng:
Khách hàng
Admin
• Chức năng hệ thống:
Trang 21Họ tên khách hàng
Bảng tbl_user
User_passwor
d
Varchar(50) Mật khẩu
User_fullname Varchar(100) Họ tên người dùng
User_address Varchar(200) Địa chỉ
User_phone Varchar(12) Số điện thoại
User_email Varchar(100) Địa chỉ email người dùng
User_avatar Varchar(1000)
Trang 22Bảng tbl_listbook
Book_image Varchar(1000) Đường dẫn ảnh sách
Book_advertise Varchar(500) Quảng cáo
Book_introduct Varchar(5000) Giới thiệu
Bảng tbl_order
Order_email varchar(1000) Địa chỉ email
Bảng tbl_detail_order
Trang 23Detail_author Varchar(100) Tác giả
News_advertise Varchar(1000) Quảng cáo
News_introduct Varchar(5000) Giới thiệu
Bảng tbl_help
Bảng tbl_linkweb
Web _name Varchar(500) Tên trang web liên kết
Web_link Varchar(1000) Địa chỉ web liên kết
Trang 244.2 Một số mô hình thực thể quan hệ riêng
4.3 Mô hình thực thể liên kết
Trang 25CHƯƠNG 3: KIỂM THỬ TỰ ĐỘNG WEBSITE
I Kế hoạch kiểm thử
Trang 26II Chiến lược kiểm thử
Mục đích test: Đảm bảo mục tiêu test đúng đắn
của chức năng, bao gồm định hướng, dữ liệu đầu vào, xử lý
và dữ liệu nhận được
Cách thực hiện: Thực hiện mỗi đơn vị, chu trình
đơn vị hoặc chức năng, sử dụng
- Mỗi qui tắc nghiệp vụ đều
Trang 27• Kỹ thuật kiểm thử hộp đen xem chương trình như là một “hộp đen”, trong
đó người kiểm thử không quan tâm đến cấu trúc bên trong của chương trình
mà chỉ quan tâm tới dữ liệu đầu vào và đầu ra sau khi được xử lý
• Mục đích của chiến lược này là tìm kiếm các trường hợp mà chương trình không thực hiện theo các đặc tả của nó
• Ưu, nhược điểm: Kiểm thử hộp đen có ưu điểm là có thể đánh giá phần mềm một cách khách quan, người kiểm thử có thể không hiểu biết về mã lệnh và có thể tìm ra các lỗi mà nhân viên phát triển không tìm ra.Song kiểm thử hộp đen lại có nhược điểm là thăm dò mù, do nhân viên kiểm thử không biết các chương trình thực sự được xây dựng như thế nào,dẫn đến trường hợp nếu kiểm thử hộp đen phải viết rất nhiều trường hợp kiểm thử trong khi chỉ cần viết một ca kiểm thử duy nhất để có thể kiểm tra được
2.2 Kiểm thử hộp trắng
Kỹ thuật kiểm thử hộp trắng hay còn gọi là “kiểm thử cấu trúc” là kỹ thuật kiểm thử cho phép khảo sát kiến trúc bên trong của chương trình Kiểm thử hộp trắng là chiến lược được thực hiện trên ba trong sáu loại kiểm thử cơ bản trong các giai đoạn kiểm thử phần mềm là: kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử hồi quy Mục tiêu của kiểm thử hộp trắng là kiểm thử bao phủ nhiều nhất các câu lệnh, điểm quyết định và các rẽ nhánh trong mã nguồn nếu có thể
Trang 29III Ứng dụng kiểm thử trên Web
1 chức năng đăng nhập
1.1 bao phủ câu lệnh
Chức năng đăng nhập
Trang 311.3 Đồ thị dòng
Độ pức tạp C=21-16+2=7
Trang 322 Chức năng đăng ký
2.1 bao phủ câu lệnh
Chức năng đăng ký
Trang 332.2 Đồ thị lưu trình