PHẦN MỞ ĐẦU
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 đánh giá một hệ thống phần mềm nhằm xác định tính chính xác của nó so với các yêu cầu đã được xác định và kiểm tra khả năng hoạt động trong môi trường dự kiến.
Kiểm thử phần mềm nhằm xác định liệu sản phẩm có đáp ứng nhu cầu của khách hàng và phù hợp với yêu cầu đã được chỉ định, đồng thời đảm bảo chất lượng và độ chính xác của ứng dụng.
2.Các cấp độ kiểm thử phần mềm
A unit is the smallest testable component of software, including functions, procedures, classes, or methods.
Unit testing involves validating the functionality of individual code components, typically at the function level In an object-oriented environment, unit testing is often applied at the class level, focusing on the smallest units of code, including constructor and destructor functions.
Kiểm thử đơn vị, thường do lập trình viên thực hiện, là một bước quan trọng cần được tiến hành sớm trong quá trình viết mã và xuyên suốt vòng đời phát triển phần mềm Mỗi hàm có thể trải qua nhiều kiểm thử để đảm bảo phát hiện các trường hợp và nhánh khác nhau trong mã nguồn.
Kiểm thử đơn vị, giống như các mức kiểm thử khác, cần phải chuẩn bị các ca kiểm thử hoặc kịch bản cụ thể Những tài liệu này bao gồm dữ liệu đầu vào, các bước thực hiện và kết quả mong muốn Các ca kiểm thử và kịch bản này sẽ được lưu trữ để sử dụng trong tương lai.
Kiểm thử tích hợp (Integration Test) kết hợp các thành phần của ứng dụng và thực hiện kiểm tra như một hệ thống hoàn chỉnh Trong khi kiểm thử đơn vị (Unit Test) chỉ tập trung vào việc kiểm tra các thành phần riêng lẻ, kiểm thử tích hợp lại chú trọng vào việc kiểm tra sự giao tiếp và tương tác giữa các thành phần này.
6 download by : skknchat@gmail.com
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 đơn vị riêng lẻ thành các hệ thống nhỏ (subsystem) và cuối cùng tạo thành một hệ thống hoàn chỉnh (system) là bước quan trọng chuẩn bị cho việc kiểm thử ở cấp độ hệ thống (System Test).
Có 4 loại kiểm thử trong Integration Test:
Kiểm thử cấu trúc, hay còn gọi là Kiểm thử White Box, là phương pháp kiểm tra nhằm đảm bảo rằng các thành phần nội tại của chương trình hoạt động chính xác Phương pháp này tập trung vào việc kiểm tra các lệnh và nhánh bên trong, giúp xác định tính đúng đắn của cấu trúc chương trình.
Kiểm thử chức năng (Functional Test) là một phương pháp kiểm tra tương tự như Black Box Test, tập trung vào việc đánh giá các chức năng của chương trình mà không xem xét cấu trúc bên trong Phương pháp này chỉ khảo sát các chức năng của phần mềm dựa trên các yêu cầu kỹ thuật đã được xác định.
• 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.
Kiểm thử hệ thống (ST) là quá trình kiểm nghiệm toàn diện nhằm xác minh các thành phần của hệ thống được tích hợp chính xác Mục tiêu chính của kiểm thử hệ thống là đảm bảo rằng toàn bộ hệ thống hoạt động đúng theo mong đợi của khách hàng.
Kiểm thử hệ thống (System Test) bắt đầu khi tất cả các thành phần của phần mềm đã được tích hợp thành công Loại kiểm tra này thường tốn nhiều thời gian và công sức, và có thể yêu cầu các thiết bị, phần mềm hoặc phần cứng đặc thù, đặc biệt là đối với các ứng dụng thời gian thực, hệ thống phân tán hoặc hệ thống nhúng Trong quá trình kiểm thử hệ thống, các kiểm tra viên tìm kiếm lỗi nhưng chủ yếu tập trung vào việc đánh giá hiệu suất, độ tin cậy và các yêu cầu chất lượng của toàn bộ hệ thống Sự khác biệt chính giữa kiểm thử tích hợp (Integration Test) và kiểm thử hệ thống là kiểm thử hệ thống chú trọng vào hành vi và lỗi trên toàn bộ hệ thống, trong khi kiểm thử tích hợp tập trung vào sự tương tác giữa các thành phần khi hoạt động cùng nhau Trước khi thực hiện kiểm thử hệ thống, cần phải thực hiện kiểm thử đơn vị (Unit Test) và kiểm thử tích hợp để đảm bảo rằng tất cả các đơn vị và sự tương tác của chúng hoạt động chính xác.
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ế.
7 download by : skknchat@gmail.com
Kiểm tra khả năng vận hành (Performance Test) là quá trình quan trọng nhằm tối ưu hóa việc phân bổ tài nguyên hệ thống, chẳng hạn như bộ nhớ, để đạt được các chỉ tiêu như thời gian xử lý và khả năng đáp ứng câu truy vấn.
Kiểm tra khả năng chịu tải, hay còn gọi là Stress Test và Load Test, là quy trình đảm bảo hệ thống hoạt động hiệu quả dưới áp lực cao, chẳng hạn như khi có nhiều người truy cập đồng thời Stress Test tập trung vào việc xác định các trạng thái tới hạn, các "điểm chết" và những tình huống bất thường có thể xảy ra trong quá trình vận hành.
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) là quy trình đảm bảo hệ thống có thể khôi phục lại trạng thái ổn định trước đó sau khi xảy ra sự cố mất tài nguyên hoặc dữ liệu Điều này đặc biệt quan trọng đối với các hệ thống giao dịch, như ngân hàng trực tuyến, nhằm bảo vệ thông tin và duy trì sự tin cậy cho người dùng.
Tổng quan về Selenium
Giới thiệu chung về Selenium
In the realm of automated testing, there are numerous well-known commercial testing tools such as Selenium, QuickTest Professional, WinRunner, Rational Robot, SilkTest, and JTest Among these, Selenium stands out for its comprehensive features that exemplify the capabilities of an effective automated testing tool.
Selenium (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ở mạnh mẽ nhất hiện nay, đặc biệt dành cho việc kiểm thử ứng dụng Web.
Selenium là công cụ kiểm thử phần mềm tự động được phát triển bởi ThoughtWorks từ năm 2004, ban đầu mang tên JavaScriptTestRunner Năm 2007, Jason Huggins, một trong những tác giả, rời ThoughtWorks để gia nhập nhóm Selenium tại Google, từ đó phát triển Selenium trở thành công cụ như hiện nay.
Selenium là bộ công cụ mạnh mẽ hỗ trợ phát triển nhanh chóng các thử nghiệm tự động hóa cho ứng dụng web Nó cung cấp nhiều loại thử nghiệm chức năng, đáp ứng nhu cầu kiểm tra của các ứng dụng web Các hoạt động của Selenium rất linh hoạt, cho phép tùy chọn vị trí các thành phần UI và so sánh kết quả thử nghiệm với hành vi thực tế của ứng dụng.
Hỗ trợ các trường hợp mà việc execute test lặp đi lặp lại
12 download by : skknchat@gmail.com
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
Selenium nổi bật với tính năng mã nguồn mở, cho phép người dùng sử dụng mà không cần lo lắng về chi phí bản quyền hay thời hạn sử dụng, điều này tạo lợi thế lớn so với các công cụ kiểm thử khác.
Selenium, với mã nguồn mở, có một cộng đồng hỗ trợ mạnh mẽ, đặc biệt do Google phát triển, mang đến sự hỗ trợ miễn phí cho người dùng Tuy nhiên, sự phong phú của cộng đồng cũng có thể trở thành điểm yếu, khi một vấn đề có thể nhận được nhiều giải pháp, trong đó không phải tất cả đều hiệu quả Hơn nữa, người dùng không thể yêu cầu hỗ trợ theo thời gian cụ thể, điều này có thể gây khó khăn trong quá trình giải quyết vấn đề.
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,
Selenium cho phép chạy trên nhiều hệ điều hành khác nhau mà không cần chỉnh sửa script nhiều Tuy nhiên, điều này chủ yếu phụ thuộc vào khả năng viết script của người dùng.
Chạy test case ở chế độ nền cho phép chúng ta thực hiện các tác vụ khác trên cùng một máy tính trong khi vẫn thực thi test script Điều này giúp tiết kiệm tài nguyên máy móc, tối ưu hóa hiệu suất làm việc trong quá trình kiểm thử.
Selenium chỉ hỗ trợ tương tác với trình duyệt và không hỗ trợ làm việc với các ứng dụng Windows, bao gồm cả hộp thoại Windows như Download/Upload, ngoại trừ thông báo từ trình duyệt Do đó, để xử lý các tình huống cần tương tác với hệ thống hoặc ứng dụng bên thứ ba, chúng ta cần sử dụng thêm các thư viện khác như AutoIt hoặc Coded UI.
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 vai trò cụ thể trong việc hỗ trợ kiểm thử Web :
13 download by : skknchat@gmail.com
Hình 1.1.1 Các Thành phần của Selenium
Selen-IDE là một công cụ phát triển tích hợp dành cho việc tạo ra các trường hợp thử nghiệm Selenium, hoạt động như một tiện ích mở rộng trên trình duyệt Firefox Nó cung cấp giao diện thân thiện giúp người dùng dễ dàng phát triển và chạy các trường hợp kiểm thử cá nhân cũng như bộ kiểm tra toàn bộ Tính năng ghi lại của Selenium-IDE cho phép lưu trữ các thao tác của người dùng dưới dạng kịch bản tái sử dụng Ngoài ra, nó còn tích hợp menu ngữ cảnh khi nhấn chuột phải, cho phép người dùng chọn và xác minh các vị trí đã chọn Selenium-IDE cũng hỗ trợ chỉnh sửa toàn diện các trường hợp thử nghiệm, mang lại độ chính xác và kiểm soát cao hơn.
Mặc dù Selen-IDE chỉ là một tiện ích mở rộng cho Firefox, nhưng các bài kiểm tra được tạo ra trong Selen-IDE có thể được chạy trên các trình duyệt khác Điều này có thể thực hiện được thông qua Selenium-RC, nơi bạn chỉ cần chỉ định tên của bộ ứng dụng thử nghiệm trên dòng lệnh.
WebDriver là một công cụ để kiểm thử tự động các ứng dụng web.
WebDriver, thường được gọi là Selenium 2.0, sử dụng một framework khác biệt so với Selenium RC, vốn dựa vào Javascript Selenium-Core nhúng trong trình duyệt Khác với Selenium RC cần một máy chủ trung gian, WebDriver tương tác trực tiếp với các trình duyệt, mang lại hiệu suất và tính linh hoạt cao hơn.
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).
Điều khiển nhiều frame, nhiều cửa sổ trình duyệt, nhiều popup và alert.
Điều hướng trang phức hợp.
14 download by : skknchat@gmail.com
Điều hướng người dùng nâng cao như kéo-thả (drag-and-drop)
Selenium RC là dự án chính của Selenium trước khi sự ra đời của Selenium WebDriver (Selenium 2.0), nhưng hiện tại Selenium RC hầu như không còn được sử dụng do WebDriver cung cấp nhiều tính năng mạnh mẽ hơn Tuy nhiên, người dùng vẫn có thể tiếp tục phát triển các script sử dụng Selenium RC.
Selenium RC cho phép các nhà phát triển tự động hóa kiểm tra bằng cách sử dụng ngôn ngữ lập trình, mang lại tính linh hoạt và khả năng mở rộng trong việc phát triển logic thử nghiệm Khi một ứng dụng trả về tập kết quả kiểm tra, chương trình thử nghiệm tự động có thể lặp lại và chạy thử nghiệm trên từng phần tử trong tập hợp kết quả đó, nhờ vào khả năng gọi lệnh Selenium để thực hiện kiểm tra cho mỗi mục.
Selen-RC cho phép sử dụng ngôn ngữ lập trình bậc cao để phát triển các trường hợp thử nghiệm, từ đó tích hợp thử nghiệm tự động vào dự án xây dựng môi trường tự động.
Selenium RC cho phép tự động hóa kiểm thử giao diện ứng dụng Web bằng nhiều ngôn ngữ lập trình như Java, C#, Perl, Python và PHP Điều này giúp tạo ra các ca kiểm thử phức tạp, bao gồm khả năng đọc và viết tập tin, truy vấn cơ sở dữ liệu, và gửi email kết quả kiểm thử Việc sử dụng Selenium RC với ngôn ngữ lập trình bậc cao còn hỗ trợ tích hợp kiểm thử tự động vào dự án xây dựng môi trường tự động.
Selenium Grid cho phép người dùng thực thi kiểm thử song song trên nhiều máy tính khác nhau với nhiều trình duyệt khác nhau.
Selenium Grid cho phép thực hiện kiểm thử phân tán hiệu quả, sử dụng cùng một mã nguồn, giúp loại bỏ nhu cầu phải hard code trên tất cả các máy tính tham gia vào quá trình kiểm thử.
Selenium Grid bao gồm 2 thành phần chính là Hub và Nodes:
Hub là máy chủ server, nơi lưu trữ mã nguồn cứng và gửi lệnh điều khiển đến các máy khác trong mô hình thực thi kiểm thử Lưu ý rằng Hub chỉ có thể được thiết lập duy nhất trên một máy tính.
Nodes là các phiên bản Selenium được kết nối với Hub để thực hiện các kịch bản kiểm thử Trong một mô hình Grid, có thể có nhiều Nodes, và chúng có thể được thiết lập trên nhiều máy tính khác nhau với các trình duyệt đa dạng.
15 download by : skknchat@gmail.com
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
To download Eclipse, visit [http://www.eclipse.org/downloads/](http://www.eclipse.org/downloads/) and choose the appropriate version (32/64-bit) based on your system I recommend downloading the Eclipse IDE for Java Developers, as it meets all necessary requirements for development tasks Additionally, proceed to download the Selenium Java Client Driver as the next step.
Link download: http://seleniumhq.org/download/
Giải nén và lưu trữ vào một thư mục cố định, nên chọn vị trí khác ngoài ổ C để dễ dàng tái sử dụng khi cài đặt lại hệ thống Bạn cũng có thể đặt trực tiếp vào trong Project để đảm bảo rằng khi cài lại máy hoặc di chuyển sang hệ thống khác, vẫn có thể hoạt động bình thường.
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] ->
Tạo mới Package: Right click vào Project ->New -> Package -> [Đặt tên
Tạo mới Class: Right click vào Package -> New -> Class -> [Đặt tên
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
Chọn tất cả những file có định dạng là jar trong thư mục [selenium- java-2.47.1] -> OK
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
Click vào TestNG và nhấn Next button
To complete the installation, click "I accept the terms of the license agreement" and then press the Finish button If a Security Warning pop-up appears, click OK to proceed Finally, click Yes to restart Eclipse.
Sau khi khởi động xong, cần kiểm tra TestNG đã được cài đặt thành công: Window -> Preferences
16 download by : skknchat@gmail.com
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
17 download by : skknchat@gmail.com
18
I TÀI LIỆU KHẢO SÁT, XÁC ĐỊNH YÊU CẦU CỦA HỆ THỐNG.
Thương mại điện tử đang phát triển mạnh mẽ trong thời đại ngày nay, bao gồm tất cả các phương pháp kinh doanh và quản trị thông qua các kênh điện tử Internet và các kỹ thuật, giao thức liên quan đóng vai trò quan trọng, trong khi công nghệ thông tin được xem là điều kiện tiên quyết cho sự phát triển này.
Thương mại điện tử mang lại lợi ích lớn nhất là tiết kiệm chi phí cho các bên giao dịch, giúp giao dịch diễn ra nhanh chóng hơn so với phương thức truyền thống như fax hay thư điện tử Chi phí cho các giao dịch qua internet rất thấp, cho phép doanh nghiệp gửi thư tiếp thị đến hàng loạt khách hàng với chi phí tương đương như gửi cho một khách hàng Thương mại điện tử cũng giúp các bên giao dịch không bị giới hạn bởi không gian địa lý, từ thành phố đến nông thôn hay giữa các quốc gia, tiết kiệm chi phí đi lại và thời gian gặp mặt Người tiêu dùng có thể dễ dàng đặt hàng và mua sắm nhiều loại hàng hóa dịch vụ ngay tại nhà một cách nhanh chóng.
Trong các website thương mại điện tử, đặc biệt là các trang bán hàng, người chủ cửa hàng giữ vai trò quan trọng nhất, có quyền truy cập thông tin về tình hình thu nhập và mọi thay đổi trên trang web Nếu chủ cửa hàng đồng thời là quản trị viên, tất cả nội dung trên website sẽ do chính họ cập nhật Ngược lại, nếu thuê nhân viên quản trị, chủ cửa hàng sẽ cung cấp thông tin cần thiết hoặc cấp quyền hạn cho người quản lý đó.
18 download by : skknchat@gmail.com
Nhân viên giao dịch có nhiệm vụ theo dõi số lượng đơn đặt hàng trong ngày và trong tuần, đồng thời ghi nhận số lượng đơn đã được xử lý Họ cần cung cấp báo cáo cho chủ cửa hàng bất cứ lúc nào khi có yêu cầu.
Người đứng đầu có quyền truy cập tất cả thông tin, trong khi nhân viên và khách hàng chỉ có thể xem những thông tin được cấp trên cho phép.
Website bán sách online sử dụng công nghệ PHP-MySQL, cho phép khách hàng truy cập để xem, lựa chọn và mua sách trực tuyến Người dùng có thể dễ dàng mua sách online và theo dõi các tin tức liên quan.
19 download by : skknchat@gmail.com
20 download by : skknchat@gmail.com
Giỏ 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:
21 download by : skknchat@gmail.com
Chức năng hệ thống: Khách hàng:
Tìm kiếm sản phẩm - Đặt mua sản phẩm -
Admin: ngoài những chức năng như khách hàng còn thêm -
- Quản lý loại sản phẩm -
4 Phân tích thiết kế hệ thống:
Tên trường Kiểu dữ liệu Ghi chú
Cus _id Int(11) Mã khách hàng
Cus_user varchar(20) Tên đăng nhập
Cus_password Varchar(50) Mật khẩu
Cus_fullname Nvarchar(100 Họ tên khách hàng
Cus_date Varchar(15) Ngày sinh
Cus_phone Int(15) Số điện thoại
Cus_address Varchar(200) Địa chỉ
Cus_email Varchar(100) Địa chỉ email
22 download by : skknchat@gmail.com
Tên trường Kiểu dữ liệu Ghi chú
User_id Int(11) Mã người dùng
User_name Varchar(20) Tên đăng nhập
User_password 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
Tên trường Kiểu dữ liệu Ghi chú
Listbook_id Int(11) Mã danh mục sách
Listbook_name Nvarchar(200 Tên danh mục sách
Tên trường Kiểu dữ liệu Ghi chú
Book_id Int(11) Mã Sách
Listbook_id Int(11) Mã Danh Mục Sách
Book_name Nvarchar(200) Tên sách
Book_image Varchar(1000) Đường dẫn ảnh sách
Book_author Nvarchar(200) Tên tác giả
23 download by : skknchat@gmail.com
Book_price Int(11) Giá bán
Book_advertise Varchar(500) Quảng cáo
Book_introduct Varchar(5000) Giới thiệu
Tên trường Kiểu dữ liệu Ghi chú
Order_id Int(11) Mã hóa đơn
Cus_id Int(11) Mã khách hàng
Order_date Nvarchar(15) Ngày tháng
Order_name Nvarchar(100) Tên hóa đơn
Order_note Nvarchar(1000 Ghi chú
Order_phone Int(15) Số điện thoại
Order_address Varchar(500) Địa chỉ
Order_email varchar(1000) Địa chỉ email
Tên trường Kiểu dữ liệu Ghi chú
Detail_id Int(11) Mã chi tiết hóa đơn
Order_id Int(11) Mã hóa đơn
Book_id Int(11) Mã Sách
Detail_image Varchar(500) Đường dẫn ảnh
Detail_name Varchar(100) Tên hóa đơn
24 download by : skknchat@gmail.com
Detail_author Varchar(100) Tác giả
Detail_price Int(200) Giá bán
Detail_number Int(10) Số lượng
Detail_sumprice Int(20) Tổng giá
Tên trường Kiểu dữ liệu Ghi chú
Pro_id Int(11) Mã sản phẩm
Tên trường Kiểu dữ liệu Ghi chú
News_id Int(11) Mã tin
News_image Varchar(500) Đường dẫn ảnh
News_name Varchar(200) Tên tin
News_date Varchar(30) Ngày tháng
News_author Varchar(100) Tác giả
News_advertise Varchar(1000) Quảng cáo
News_introduct Varchar(5000) Giới thiệu
25 download by : skknchat@gmail.com
Tên trường Kiểu dữ liệu Ghi chú
Help_id Int(11) Mã danh mục hỗ trợ
Help_name Varchar(500) Tên danh mục hỗ trợ
Tên trường Kiểu dữ liệu Ghi chú
Web_id Int(11) Mã trang web liên kết
Web _name Varchar(500) Tên trang web liên kết
Web_link Varchar(1000) Địa chỉ web liên kết
4.2 Một số mô hình thực thể quan hệ riêng
26 download by : skknchat@gmail.com
4.3 Mô hình thực thể liên kết
27 download by : skknchat@gmail.com
28 download by : skknchat@gmail.com
KIỂM THỬ TỰ ĐỘNG WEBSITE
Nhiệm vụ Ngày bắt đầu Ngày kết thúc Thực hiện
II Chiến lược kiểm thử 1 Các loại hình kiểm thử
Mục đích của việc kiểm tra chức năng là đảm bảo rằng các yêu cầu kiểm thử có thể được theo dõi trực tiếp trong các chức năng và quy tắc nghiệp vụ.
Mục tiêu của kiểu kiểm tra này là xác minh tính chính xác của dữ liệu, quy trình và báo cáo, đồng thời đảm bảo việc tuân thủ đúng các quy tắc nghiệp vụ.
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 dữ liệu hợp lệ và không hợp lệ để kiểm tra:
- Kết quả mong đợi với dữ
29 download by : skknchat@gmail.com liệu hợp lệ.
- Lỗi thích hợp hoặc thông báo hiển thị khi dữ liệu không hợp lệ.
- Mỗi qui tắc nghiệp vụ đều được áp dụng đúng Điều kiện hoàn thành: - Toàn bộ kế hoạch test đã được thực hiện.
- Toàn bộ các lỗi phát hiện ra đã được ghi nhận.
Chú ý Xác định hoặc mô tả các vấn đề
(nội bộ hoặc bên ngoài) ảnh hưởng đến việc test chức năng
Kỹ thuật kiểm thử hộp đen xem chương trình như một "hộp đen", trong đó người kiểm thử chỉ tập trung vào dữ liệu đầu vào và đầu ra mà không quan tâm đến cấu trúc bên trong Mục tiêu của phương pháp này là phát hiện các trường hợp mà chương trình không tuân theo các đặc tả đã định Kiểm thử hộp đen có ưu điểm là đánh giá phần mềm một cách khách quan, cho phép người kiểm thử không cần hiểu mã lệnh vẫn có thể phát hiện lỗi mà nhà phát triển có thể bỏ sót Tuy nhiên, nhược điểm của nó là thăm dò mù, vì người kiểm thử không nắm rõ cách chương trình được xây dựng, dẫn đến việc cần viết nhiều trường hợp kiểm thử trong khi có thể chỉ cần một ca kiểm thử duy nhất để kiểm tra hiệu quả.
Kỹ thuật kiểm thử hộp trắng, hay còn gọi là kiểm thử cấu trúc, cho phép khảo sát kiến trúc bên trong của chương trình Đây là một chiến lược quan trọng trong ba loại kiểm thử cơ bản, bao gồm kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử hồi quy Mục tiêu chính của kiểm thử hộp trắng là đảm bảo bao phủ tối đa các câu lệnh, điểm quyết định và các nhánh trong mã nguồn.
30 download by : skknchat@gmail.com
31 download by : skknchat@gmail.com
III Ứng dụng kiểm thử trên Web 1 chức năng đăng nhập
32 download by : skknchat@gmail.com
1.2 Đồ thị lưu trình Độ phức tạp của chu trình: C=7
33 download by : skknchat@gmail.com
1.3 Đồ thị dòng Độ pức tạp C!-16+2=7
34 download by : skknchat@gmail.com
35 download by : skknchat@gmail.com
36 download by : skknchat@gmail.com Độ phức tạp của chu trình: C
37 download by : skknchat@gmail.com
2.3 Đồ thị dòng Độ phức tạp C = 49-32+2
38 download by : skknchat@gmail.com
Màn hình đăng nhập gồm các thành phần:
- Textbox Tài khoản và mật khẩu cho phép người dùng nhập dữ liệu
- Button Đăng nhập và Đăng ký cho phép người dùng click chọn
39 download by : skknchat@gmail.com
Màn hình đăng ký gồm các thành phần:
- Textbox Tài khoản,mật khẩu,họ và tên,ngày sinh,số điện thoại ,địa chỉ và email cho phép người dùng nhập dữ liệu
- Button Đăng ký cho phép người dùng click chọn
4 Xây dựng test case đăng nhập
Mô tả: các trường bắt buộc nhập không được bỏ trống
- Tài khoản nhập đúng là khi tồn tại trong csdl
- Mật khẩu nhập đúng là khi tồn tại trong csdl
Sử dụng phương pháp bảng quyết định ta có
Conditi Mật nul T nul F F T T l l ons khẩu
Vui vẻ, sôi động và đầy năng lượng, không khí tràn ngập niềm vui Những âm thanh vui tươi, rộn ràng khiến mọi người cảm thấy phấn khởi Hãy tận hưởng từng khoảnh khắc và hòa mình vào không gian đầy màu sắc này.
Hành động là yếu tố quan trọng trong việc xây dựng thói quen và đạt được mục tiêu Để duy trì động lực, bạn cần xác định rõ ràng các bước cần thực hiện và kiên trì thực hiện chúng Việc tập trung vào những nhiệm vụ nhỏ nhưng có ý nghĩa sẽ giúp bạn tiến bộ từng ngày Hãy chắc chắn rằng bạn theo dõi sự tiến bộ của mình để có thể điều chỉnh kế hoạch khi cần thiết.
40 download by : skknchat@gmail.com kh ẩu
Hiện Lo Lo Lo Lo Lo Lo Ho form gin gin gin gin gin gin me pag e
Test case Đầu vào Đầu ra mong đợi
1 Tài khoản :null Thông báo:Vui lòng nhập tên
Mật khẩu:null đăng nhập và mật khẩu
2 Tài khoản:null Thông báo: Vui lòng nhập tên đăng nhập
3 Mật khẩu:null Thông báo : Vui lòng nhập mật khẩu
4 Tài khoản:nhập sai Thông báo : Sai tên đăng
Mật khẩu:nhập sai nhập hoặc mật khẩu
5 Tài khoản:nhập sai Thông báo : Sai tên đăng
Mật khẩu:nhập đúng nhập hoặc mật khẩu
6 Tài khoản: nhập đúng Thông báo : Sai tên đăng
Mật khẩu :nhập sai nhập hoặc mật khẩu
7 Tài khoản: nhập đúng Thông báo : Chào user full
Mật khẩu : nhập đúng name
5 Xây dựng test case đăng ký
- Các trường bắt buộc nhập không được bỏ trống
41 download by : skknchat@gmail.com
- Tài khoản không chứa các kí tự đặc biệt là duy nhất và phải lớn hơn 6 kí tự,nhỏ hơn 20 kí tự
- Mật khẩu phải lớn hơn 6 kí tự,nhỏ hơn 20 kí tự
- Số điện thoại là số và từ 10-12 kí tự và đúng định dạng 09,08,02,016[2-9]
- Email phải đúng định dạng xxx@xxx.xxx không chứa kí tự đặc biệt và là duy nhất
Áp dụng phương pháp phân vùng tương đương:
- Tài khoản phải chứa [6,20] ký tự chỉ gồm chữ và số: thực hiện nhập vào 5,21ký tự,rỗng
- Mật khẩu phải chứa [6,20] kí tự:thực hiện nhập vào 5,21 kí tự,rỗng
- Nhập lại mật khẩu phải giống mật khẩu
- Số điện thoại phải từ [10,12] ký tự số ,đúng định dạng 09,08,02,016[2-9] : thực hiện nhập vào 9, 13 ký tự số,rỗng.
- Họ và tên không được rỗng
- Địa chỉ không được rỗng
- Ngày sinh không được bỏ trống và đúng
Các lớp tương đương Tài khoản
- Tài khoản 20 không hợp lệ
- Tài khoản rỗng không hợp lệ
- Tài khoản có kí tự không phải số hoặc chữkhông hợp lệ
- Mật khẩu 20 không hợp lệ
- Mật khẩu rỗng không hợp lệ
- Họ và tên không rỗng hợp lệ
- Họ và tên rỗngkhông hợp lệ
42 download by : skknchat@gmail.com
- Số điện thoại > && < hợp lệ
- Số điện thoại 12 không hợp lệ
- Số điện thoại chứa kí tự không phải số không hợp lệ
- Số điện thoại rỗng không hợp lệ
- Ngày [1-30] và tháng 4,6,9,11 hợp lệ
- Ngày[1-28] và tháng 2 năm không nhuận hợp lệ
- Ngày[1-29] và tháng 2 năm nhuận hợp lệ
- Ngày 31 và tháng 4,6,9,11 không hợp lệ
- Ngày 29 và tháng 2 năm không nhuận không hợp lệ
- Ngày 30,31 và tháng 2 năm nhuận không hợp lệ
- Ngày sinh bỏ trống không hợp lệ
- Local-Part là chữ hoặc số hoặc các kí tự(+ - ) và kí tự nối là @ và server name có dạng xxx.xxx hợp lệ
- bỏ trống email không hợp lệ
- Thiếu Local-Part không hợp lệ
- Thiếu server name không hợp lệ
- Local-Part chứa kí tự không phải chữ hoặc số không hợp lệ
- Server name sai định dạng xxx.xxx không hợp lệ
Áp dụng phương pháp phân vùng tương đương: Điều kiện đầu vào Các lớp tương Các lớp tương đương đương hợp lệ không hợp lệ
- có kí tự không phải số hoặc chữ:
+ khoảng trắng + kí tự đặc biệt + chữ
43 download by : skknchat@gmail.com
3 số đầu:016[2-9] - Chứa kí tự không phải số:
+ khoảng trắng + kí tự đặc biệt +chữ
Họ và tên Không trống Bỏ trống Địa chỉ Không trống Bỏ trống
Ngày sinh - Ngày [1-30] và - Ngày 31 và tháng : tháng [4,6,9,11]
- Ngày[1-29] và +11 tháng 2 năm nhuận
- Ngày 29 tháng 2 năm không nhuận
Email Local-Part là chữ -bỏ trống email hoặc số hoặc các kí
-Thiếu Local-Part tự(+ - ) và kí tự nối
-Thiếu server name server name có
-Local-Part chứa kí tự
44 download by : skknchat@gmail.com dạng xxx.xxx không phải chữ hoặc số:
+ khoảng trắng +kí tự đặc biệt
-Server name sai định dạng xxx.xxx:
+ thiếu + thiếu com + chứa khoảng trắng +chứa kí tự đặc biệt + thiếu com
+thiếu domain trong server name
Các ca kiểm thử : Từ mô tả và bảng phân vùng tương đương ta có
Test case Đầu vào Đầu ra mong đợi
1 Bỏ trống tất cả các Hiển thị thông báo trường nhập tất cả các trường
2 Tất cả các trường Hiển thị thông báo hợp lệ đăng ký thành công
3 Tài khoản nhỏ hơn 6 Thông báo độ dài ký tự tên đăng nhập không hợp lệ
4 Tài khoản lớn hơn Thông báo độ dài
20 ký tự tên đăng nhập không
45 download by : skknchat@gmail.com hợp lệ
5 Tài khoản đã tồn tại Thông báo tên đăng nhập đã tồn tại
6 Tài khoản có kí tự Thông báo tên đăng đặc biệt nhập không hợp lệ
7 Tài khoản có khoảng Thông báo tên đăng trắng nhập không hợp lệ
8 Tài khoản bỏ trống Thông báo vui lòng nhập tất cả các trường
9 Mật khẩu < 6 kí tự Thông báo độ dài mật khẩu không hợp lệ
10 Mật khẩu >20 kí tự Thông báo độ dài mật khẩu không hợp lệ
11 Bỏ trống mật khẩu Thông báo vui lòng nhập tất cả các trường
12 Bỏ trống họ và tên Thông báo vui lòng nhập tất cả các trường
13 Chọn ngày > 28 Thông báo ngày sinh tháng 2 năm không không hợp lệ nhuận
14 Chọn ngày > 29 Thông báo ngày sinh tháng 2 năm nhuận không hợp lệ
15 Chọn ngày 31 các Thông báo ngày sinh tháng 4 không hợp lệ
16 Chọn ngày 31 các Thông báo ngày sinh
46 download by : skknchat@gmail.com tháng 6 không hợp lệ
17 Chọn ngày 31 các Thông báo ngày sinh tháng 9 không hợp lệ
18 Chọn ngày 31 các Thông báo ngày sinh tháng 11 không hợp lệ
19 Bỏ trống ngày sinh Thông báo vui lòng nhập tất cả các trường
20 Nhập số điện thoại Thông báo số điện
12 kí tự số thoại không hợp lệ
22 Nhập số điện thoại Thông báo số điện có chữ thoại không hợp lệ
23 Nhập số điện thoại Thông báo số điện có kí tự đặc biệt thoại không hợp lệ
24 Nhập số điện thoại Thông báo số điện có khoảng trắng thoại không hợp lệ
25 Nhập số điện thoại Thông báo số điện sai đầu số thoại không hợp lệ
26 Bỏ trống số điện Thông báo số điện thoại thoại không hợp lệ
27 Bỏ trống địa chỉ Thông báo vui lòng nhập tất cả các trường
28 Bỏ trống địa chỉ Thông báo vui lòng email nhập tất cả các trường
29 Email không đúng Thông báo địa chỉ định dạng email không hợp lệ xxx@xxx.xxx
47 download by : skknchat@gmail.com
30 Email không có kí tự Thông báo địa chỉ nối @ email không hợp lệ
31 Email không có Thông báo địa chỉ server name email không hợp lệ
32 Email không có Thông báo địa chỉ domain email không hợp lệ
33 Email không có dấu Thông báo địa chỉ
34 Email không có com Thông báo địa chỉ email không hợp lệ
Local- Part Thông báo địa chỉ email email không hợp lệ
36 Local-Part email có Thông báo địa chỉ kí tự đặc biệt trừ các email không hợp lệ kí tự + -
37 Local-Part email có Thông báo địa chỉ khoảng trắng email không hợp lệ
38 Domain name chứa Thông báo địa chỉ kí tự đặc biệt email không hợp lệ
39 Email đã tồn tại Thông báo địa chỉ email đã tồn tại
48 download by : skknchat@gmail.com
6 Thực hiện test bằng selenium webdriver
6.1 Viết các kịch bản Đăng Nhập hệ thống website :
Các kịch bản Đăng Nhập bằng Selenium Webdriver
Kiểm thử với công cụ Selenium sử dụng chú thích @Test để đánh dấu các phương thức dưới đây là các testcase Sau khi thực hiện, Eclipse cung cấp hai đầu ra: một là trong cửa sổ Console và hai là trong cửa sổ TestNG Results.
49 download by : skknchat@gmail.com
Kết quả trong cửa sổ Console
50 download by : skknchat@gmail.com
Kết quả trong cửa sổ TestNGResutls
51 download by : skknchat@gmail.com
6.2 Viết các kịch bản Đăng Ký hệ thống website :
Các kịch bản Đăng Ký bằng Selenium Webdriver
52 download by : skknchat@gmail.com
Kết quả trong cửa sổ Console
Kết quả trong cửa sổ TestNGResutls
53 download by : skknchat@gmail.com
54 download by : skknchat@gmail.com
55 download by : skknchat@gmail.com
56 download by : skknchat@gmail.com
57 download by : skknchat@gmail.com
58 download by : skknchat@gmail.com
59 download by : skknchat@gmail.com
60 download by : skknchat@gmail.com
61 download by : skknchat@gmail.com
62 download by : skknchat@gmail.com
63 download by : skknchat@gmail.com
STT Module code Pas Fail Number s of test cases
64 download by : skknchat@gmail.com Đã test: 100%
IV: Kiểm thử hiệu năng web bán sách
A Tìm hiểu cộng cụ Jmeter
JMeter là công cụ mạnh mẽ dùng để đo lường độ tải và hiệu suất của các hệ thống, cho phép kiểm tra hiệu năng trên cả nguồn tĩnh và nguồn động Nó hỗ trợ kiểm tra tải cho nhiều loại máy chủ khác nhau, bao gồm Web HTTP, HTTPS, SOAP, cũng như các cơ sở dữ liệu thông qua JDBC, LDAP, JMS, và các giao thức email như SMTP(S), POP3(S) và IMAP(S).
JMeter là một công cụ mã nguồn mở được phát triển bằng ngôn ngữ Java Được sáng lập bởi Stefano Mazzocchi, JMeter đã được Apache cải tiến với giao diện đồ họa thân thiện hơn và khả năng kiểm thử chức năng hiệu quả.
- Giao diện đơn giản, trực quan dễ sử dụng
- Có thể kiểm thử nhiều kiểu server: Web - HTTP, HTTPS, SOAP, Database
- JDBC, LDAP, JMS, Mail - POP3,…
Công cụ này là một ứng dụng độc lập, có khả năng hoạt động trên nhiều hệ điều hành khác nhau Đối với Linux, người dùng chỉ cần thực hiện bằng một shell script, trong khi trên Windows, chỉ cần chạy một file bat để khởi động.
- Đa luồng, giúp xử lý tạo nhiều request cùng một khoảng thời gian, xử lý các dữ liệu thu được một cách hiệu quả.
- Đặc tính mở rộng, có rất nhiều plugin được chia trẻ rộng rãi và miễn phí
- Một công cụ tự động để kiểm thử hiệu năng và tính năng của ứng dụng.
Cách thức hoạt động của hệ thống này là giả lập một nhóm người dùng gửi yêu cầu đến máy chủ, sau đó nhận và xử lý các phản hồi từ máy chủ Kết quả được trình bày cho người dùng dưới dạng bảng biểu, đồ thị hoặc cây, giúp người dùng dễ dàng nắm bắt thông tin.
- Tải jmeter tại trang : http://jmeter.apache.org/download_jmeter.cgi, chọn download và tìm đến mục Binaries
65 download by : skknchat@gmail.com
- Giải nén vào bin chạy file ApacheJMeter.
66 download by : skknchat@gmail.com
B Tiến hành kiểm thử hiệu năng cụ thể
1 Giả lập nhiều user truy cập vào trang web
Mở jmeter ,đặt tên cho Test Plan testtruycap.
Chuột phải vào Test Plan –> Add –> Threads(users) –> Thread Group
Cửa sổ Thread Group hiện ra với các mục quan trọng :
67 download by : skknchat@gmail.com
Name : tên của thread group.
Number of Threads(users) : số lượng thread user mà ta muốn giả lập.
Ramp-Up Period: cho biết thời gian để JMeter tạo ra tất cả những thread cần thiết.
Loop Count : số lần các thread được tạo thực hiện , nếu chọn forever sẽ thực hiện mãi mãi cho tới khi người dùng dừng lại bằng tay.
Tạo request đến server : 1 thread(tương ứng 1 user) có thể tạo nhiều request http gửi lên server.
Chuột phải vào Thread group –> add –> sample –> http request Default
68 download by : skknchat@gmail.com
Cửa sổ Http Request Default Cửa sổ Http Request Default:
Protocol: giao thức được sử dụng HTTP hoặc HTTPS(bỏ trống mặc định là http)
Server Name or IP: điền vào domain hoặc IP của trang web cần kiểm tra Port Number: chỉ ra port của web, để trống sẽ là port mặc định 80
Method: phương thức để gửi các HTTP request, các phương thức ở đây bao gồm GET, POST, PUSH, HEAD,…
Path: đường dẫn nguồn để xử lý các Request
Parameters: biểu diễn danh sách các thông số gửi cùng request, ta có thể thêm hoặc xóa các thông số này.
69 download by : skknchat@gmail.com
Truy cập vào trang chủ Đăng nhập vào hệ thống
70 download by : skknchat@gmail.com
Tiến hành chạy và thu được kết quả :
2.1 Xem kết quả tổng hợp của tất các thread (Chuột phải vào Thread Group –> Add -> Listener –> Summary Report)
Average : thời gian trung bình xử lý các request min : thời gian nhỏ nhất xử lý request max : thời gian nhỏ nhất xử lý request
Std.Dev: độ lệch tiêu chuẩn mô tả mức độ phân tán của một tập dữ liệu đã được lập thành bảng tần số
Error : phần trăm bị lỗi của các request(lỗi kết nối hoặc lỗi cho đầu ra không mong muốn) thoughput : số request/s của server kb/s = (avg.bytes*thoughput)/1024
Kết quả tổng hợp của thread truy cập trang chủ
71 download by : skknchat@gmail.com
Kết quả tổng hợp của thread login
2.2 Xem kết quả của từng request trong kịch bản(Chuột phải Thread Group –> Add –> Listener –> View Results Tree)
Kết quả trong thread truy cập trang chủ
72 download by : skknchat@gmail.com
Kết quả trong thread login
73 download by : skknchat@gmail.com