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

Báo cáo kết thúc môn phân tích thiết kế

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 (538.7 KB, 21 trang )

CHƯƠNG 1. CÔNG CỤ KIỂM THỬ TỰ ĐỘNG
1. Giới thiệu về công cụ kiểm thử Selenium Webdriver
1.1. Khái niệm Selenium
Selenium là một công cụ nguồn mở được sử dụng để kiểm thử tự động và cũng
được giảng dạy trong các chương trình học auto test được thực hiện trên các trình
duyệt web (Các ứng dụng web được kiểm thử bằng bất kỳ trình duyệt web nào).
Selenium WebDriver (gọi tắt là Webdriver) là một framework tự động dành cho
Web, cho phép thực hiện các kiểm thử trên các trình duyệt khác nhau.
Selenium WebDriver có thể chạy trên các nền tảng Windows, Linux và macOS.
1.2.

Cách thức hoạt động của Selenium Webdriver

Các ngôn ngữ lập trình này giao tiếp với Selenium WebDriver bằng cách gọi các
phương thức trong API ứng dụng khách Selenium. Dịng cơng việc của Selenium
Driver


1.3.
1.3.1.

1.3.2.

Ưu nhược điểm của Selenium Webdriver
Ưu điểm


Selenium Webdriver là mã nguồn mở miễn phí.




Hỡ trợ nhiều ngơn ngữ lập trình: Web Driver hỗ trợ viết kịch bản kiểm
thử bằng nhiều ngơn ngữ khác nhau như Java, .NET, PHP, Python,
Perl, Ruby.



Tốc độ: Khi so sánh với các công cụ khác của bộ Selenium,
WebDriver là công cụ nhanh nhất trong số tất cả, do nó tương tác trực
tiếp từ hệ điều hành tới trình duyệt.

Nhược điểm


Cài đặt phức tạp.



Việc xây dựng các phiên kiểm thử tự động yêu cầu kiến thức lập trình
cao.



Khơng có chức năng báo cáo kết quả thử nghiệm được tích hợp sẵn.

1.4.
Ngơn ngữ viết kiểm thử testcase
- Ngơn ngữ lập trình: Python
- Framework xây dựng Website: Django
- Database: Sqlite
- Framework kiểm thử: Selenium Webdriver

1.5.
Tính năng của Selenium Webdriver
1.5.1. Tương thích với trình duyệt

WebDriver hỡ trợ đa dạng các loại trình duyệt web và những phiên bản của nó. Từ
những trình duyệt thơng thường hiện nay như: Chrome, FireFox... cho đến những
trình duyệt hiếm gặp như HtmlUnit. Điều này hồn tồn khơng hề thấy ở những
bản Selenium RC và Selenium IDE.


1.5.2.

Hỗ trợ đa ngôn ngữ


Selenium Webdriver hỡ trợ đa ngơn ngữ lập trình:
- Java
- C#
- PHP
- Pearl
- Ruby
- Python
1.5.3. Tốc

độ

Khi so sánh với các tool khác của bộ công cụ Selenium, WebDriver trở thành
tool có tốc độ nhanh nhất trong số đó. Việc giao tiếp không cần thông qua bất
cứ thiết bị ngoại vi nào mà trực tiếp kết nối thẳng với trình duyệt tương tự như
người sử dụng. Do đó, WebDriver tận dụng được khả năng tương thích với trình

duyệt để tự động hóa.

1.5.4.

Drivers, Methods and Classes

WebDriver cung cấp một loạt các giải pháp cho một số các thách thức trong
kiểm thử tự động. Nó giúp cho chúng ta xử lý các loại phần tử web phức hợp
như checkbox, dropdowns và thông báo với sự trợ giúp của tìm kiếm động.


2. Cách tổ chức chương trình chạy với cơng cụ
2.1. Thực hiện triển khai Website lên Localhost


2.2.

Thực hiện viết chương trình triển khai kiểm thử trên một file Python


3. Áp dụng kiểm thử tự động với chức năng đăng nhập
1.
2.
3.
4.
5.
6.
7.
8.
9.

10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
def viewAtritue(self):
print(' - Atritute : ', self)
print(' - Displayed : ', self.is_displayed())

print(' - Enabled : ', self.is_enabled())
print(' - Selected :', self.is_selected())
PATH = "E:\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("http://127.0.0.1:8000/login/")
time.sleep(2)
try:
taikhoan = driver.find_element_by_xpath('//*[@id="id_usernameLoginForm"]')
print('Atritute Username: ', taikhoan)
print('Displayed Username: ', taikhoan.is_displayed())
print('Enabled Username: ',taikhoan.is_enabled())
matkhau = driver.find_element_by_name("passwordLoginForm")
print('Atritute Password: ', matkhau)
print('Displayed Password: ', matkhau.is_displayed())
print('Enabled Password: ',matkhau.is_enabled())
taikhoan.send_keys("vietdd")
matkhau.send_keys("admin123")
loginButton = driver.find_element_by_xpath('/html/body/div/div[2]/form/div[2]/input[3]')
loginButton.click()
# driver.switch_to_alert().accept()
except:
print("Có lỡi xảy ra!")
time.sleep(30)
driver.quit()


CHƯƠNG 2. ĐẶC TẢ PHẦN MỀM KIỂM THỬ
1. Mô tả hệ thống
Đề tài: Xây dựng Website bán đồ ăn nhanh
Cửa hàng bán đồ ăn nhanh là cửa hàng chuyên bán các sản phẩm đồ ăn nhanh.

Hiện nay, cửa hàng muốn triển khai bán các sản phẩm lên website và cho phép
khách hàng chọn dịch vụ, đăng ký mua hàng.
Ngoài ra, cửa hàng có các dịch vụ khuyến mại, tin tức nội bộ cũng đều muốn triển
khai trên website. Song song đó, cửa hàng có đội ngũ tư vấn bán hàng để hỗ trợ
sản phẩm cũng như tư vấn các sản phẩm đến khách hàng một cách nhanh nhất và
tốt nhất
1.1.

Mô hình tổng quan hệ thống

Hình 1. 1: Mơ hình tổng quan hệ thống

1.2.

Bảng thông tin chung các chức năng hệ thống

Tác nhân

Người dùng truy cập vào hệ thống

Điều kiện
trước

Truy cập thành cơng vào Website

Kết quả đạt
được

Hiển thị tồn bộ thơng tin Website


Trigger

Người dùng chọn các đề mục trong Menu

Ngoại lệ

[N/A]


Logic xử lý






u cầu phi
chức năng

Trường thơng tin:
• Người dùng: Trên màn hình Website, chọn các đề mục Menu
• Hệ thống: Hiển thị thơng tin đề mục
Import:
• Người dùng: Trên màn hình đăng ký bàn tiệc
• Hệ thống: Thực hiện thêm dữ liệu vào hệ thống và thơng báo
trạng thái
Trích xuất thơng tin đồ ăn nhanh:
• Người dùng: Trên màn hình giao diện, người xem combo và thêm
đồ ăn vào giỏ hàng
• Hệ thống: Hiển thị danh sách món ăn


[N/A]

Bảng 1. 1: Phân rã chức năng hệ thống
Tác nhân

Admin được phân quyền

Điều kiện
trước

Đăng nhập thành công vào hệ thống và có quyền thực hiện chức năng này

Kết quả đạt
được

Hiển thị tồn bộ thơng tin Website và danh sách combo, đồ ăn nhanh, …

Trigger

Admin chọn lấy dữ liệu người dùng

Ngoại lệ

[N/A]

Logic xử lý









u cầu phi
chức năng

Trường thơng tin:
• Người dùng: Trên màn hình Website, chọn các đề mục Menu
• Hệ thống: Hiển thị thơng tin đề mục
Import:
• Người dùng: Trên màn hình thêm đồ ăn, …
• Hệ thống: Thực hiện thêm dữ liệu vào hệ thống và thơng báo trạng
thái
Trích xuất thơng tin món ăn:
• Người dùng: Trên màn hình giao diện, người dùng chọn Món ăn
trên Menu Admin
• Hệ thống: Hiển thị danh sách món ăn
Trích xuất thơng tin bài viết
• Người dùng: Trên màn hình giao diện Admin, người dùng chọn
Blogs trên thanh Menu
• Hệ thống: Hiển thị danh sách bài viết

[N/A]

Bảng 1. 2: Bảng phân rã chức năng Admin


1.3.


Ma trận thực thể chức năng
Từ bảng phân tích chức năng, ta có ma trận thực thể như sau:

-

Danh sách loại đồ ăn nhanh: Ta có thể chia thành nhiều danh mục để người dùng
nhận biết
Danh sách đồ ăn nhanh: Mỡi một đồ ăn sẽ có 1 ID riêng để phân biệt và quản lý
Danh sách người dùng: Mỗi một người dùng sẽ có một tài khoản riêng để quản lý
thông tin cá nhân, …
Danh sách bài viết: Quản lý thông tin bài viết hiển thị trên trang chủ
Danh sách user: Quản lý tài khoản của người dùng
1. Danh sách danh mục sản phẩm
2. Danh sách sản phẩm
3. Danh sách người dùng
4. Danh sách tin tức
5. Danh sách đơn đặt hàng
Các chức năng

1

2

Y/c 1. Login

3

4


5

R

Y/c 2. Hiển thị Website
Y/c 2.1. Hiển thị danh sách sản phẩm
Y/c 2.1.1. Hiển thị chi tiết sản phẩm

R

R
R

Y/c 2.2. Hiển thị danh sách tin tức

R

Y/c 2.3. Hiển thị danh sách bài viết
Y/c 2.3.1. Hiển thị chi tiết bài viết
Y/c 3. Thực hiện đặt hàng

Bảng 1. 3:Ma trận thực thể chức năng

Giải thích:
Tác nhân: User (Khách hàng, Quản lý, Adminstator)

R
C



1.4.

Sơ đồ phân rã chức năng

Hình 1. 2: Biểu đồ phân rã chức năng

1.4.1. Các chức năng thuộc chức năng
1.4.1.1. Hiển thị danh sách sản phẩm

hiển thị thông tin Website

Khách hàng khi xem sản phẩm sẽ bấm chọn nút sản phẩm trên thanh menu để
hiển thị danh sách sản phẩm
1.4.1.2. Hiển

thị danh sách tin tức
Khách hàng khi xem tin tức sẽ bấm chọn nút tin tức trên thanh menu để hiển thị
danh sách tin tức
1.4.1.3. Hiển

thị chi tiết tin tức
Với mỗi tin tức hiển thị, khi click vào tiêu đề hệ thống sẽ hiển thị một trang chi
tiết bài viết
Đặt hàng
Khách hàng sau khi đặt hàng sẽ đến trang thanh toán để tiến hành thanh toán
1.4.1.3.1.


2. Đặc tả yêu cầu của phần mềm
2.1. Đặc tả yêu cầu chức năng đăng nhập của hệ

2.1.1. Use case chức năng đăng nhập hệ thống

thống Website

Luồng sự kiện chính:
Hành động tác nhân
Phản ứng hệ thống
Dữ liệu liên quan
1. Chọn chức năng
2. Hiển thị trang Danh sách người dung
đăng nhập hệ
đăng nhập
thống
3. Nhập thông tin tài
4. Thực hiện đăng Danh sách người dung
khoản và mật
nhập vào hệ thống
khẩu
Luồng sự kiện phụ: Sửa thông tin đăng nhập (tài khoản, mật khẩu).


2.1.2.

Biểu đồ hoạt động của chức năng đăng nhập


2.1.3.

Biểu đồ tuần tự chức năng đăng nhập


2.2. Đặc tả yêu cầu chức năng đặt bàn ăn trên trang chủ hệ thống
2.2.1. Use case chức năng đặt bàn ăn trên trang chủ hệ thống
2.2.2. Biểu đồ hoạt động của chức năng đặt bàn ăn
2.2.3. Biểu đồ tuần tự chức năng đặt bàn ăn
2.3. Đặc tả yêu cầu chức năng bình luận trên bài viết
2.3.1. Use case chức năng bình luận

2.3.2.

Biểu đồ hoạt động của chức năng bình luận


2.3.3.

Biểu đồ tuần tự chức năng bình luận



CHƯƠNG 3. KẾ HOẠCH TEST
1. Test Scope
ID
Feature

1

Function all
testing

Itegration
Testing


Quản lý đăng nhập và 5 man days
quyền truy xuất
Website
Quản lý đặt bàn và
5 man days
truy xuất trên Website
Quản lý bình luận bài 5 man days
vết và truy xuất trên
Website

2
3

0.5 man days

Security &
Access
Control
Testing
0.5 man days

0.5 man days

0.5 man days

0.5 man days

0.5 man days


2. Feature/non feature to be test
-

-

Chức năng test: Chức năng chính của sản phẩm như:
o Quản lý người dùng: Đăng nhập tài khoản Website
o Chức năng đặt bàn trên trang của Website
o Chức năng bình luận trên các bài viết của Website
Chức năng không test:
o Quản lý người dung: Cập nhật thông tin người dùng, phản hồi người dùng
o Phân trang hệ thống, đăng bài viết

3. Test tool
ID

Action

1

Quản lý hoạt động kiểm
thử

2
3




4. Test environment

ID

Resouece

1

Phiên bản

2

Database

3

Mạng

4

Server/client

5. Test Resources
Man-power
Bảng sau đây mô tả nguồn lực test cho dự án:
ID

Member

1

Đinh Doãn Việt


2

3

System
Hardware
- 1PC (Ram>=1GB, CPU…_


- Các browser: IE >7.0, firefox>3.0, hỗ trợ đầy đủ
Javascript
- Server LAMP: Ubuntu server >9.04, Apache 2.0,
SQLite 3.8, Python Django, DB Browser for SQLite
3.12.1.
6. Features
Testing features:
- Quản trị website:
1. Quản lý người dung và quyền truy xuất website
- Người dùng:
1. Chức năng đặt bàn trên Website hệ thống
2. Chức năng bình luận trên trang bài Viết của hệ thống
Non-testing features
o Quản lý người dung: Cập nhật thông tin người
dùng, phản hồi người dùng
o Phân trang hệ thống, đăng bài viết
7. Test milestones
Mỗi Milestione cho 1 module bao gồm cả việc design testcase và
chạy testcase
ID


Milestone Task

1

Quản lý
người
dung và
quyền

2

Thực hiện
đặt hàng

3

Thực hiện
bình luận

8. Test products
STT

Sản phẩm


1

Test plan


2

Test cases


CHƯƠNG 4. BẢNG CHECKLIST TESTCASE



×