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

ĐỀ TÀI: CASE tools for deverlopment and Software Quality Assurance

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 (285.16 KB, 20 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN


Môn:Kiểm Thử Phần Mềm
ĐỀ TÀI: CASE tools for deverlopment and Software
Quality Assurance
............................................................................

NHÓM 11
GV hướng dẫn:
Nhóm thực hiện gồm các thành viên:
1. Nguyễn Phương Nam
2. Nguyễn Hữu Thông
3. Trần Văn Vinh
Hà Nội, Ngày 14 Tháng 6 Năm 2016
1


Mở Đầu
Hàng loạt các công cụ chuyên dụng trên máy vi tính ngày càng tăng (trên thực
tế phần mềm gói) đã được cung cấp để bộ phận kỹ thuật phần mềm kể từ
những thập niên 1990. Mục đích của những công cụ này là để thực hiện các
công việc phát triển và duy trì đội hiệu quả hơn và hiệu quả hơn.
Đặt tên công cụ CASE (máy tính hỗ trợ kỹ thuật phần mềm), họ cung cấp:
■ Tiết kiệm đáng kể nguồn tài nguyên cần thiết cho phát triển phần mềm
■ Ngắn hơn thời gian để thị trường
■ Tiết kiệm đáng kể nguồn tài nguyên cần thiết để bảo trì
■ Tái sử dụng nhiều hơn do tăng tiêu chuẩn của hệ thống phần mềm
■ Giảm thế hệ của các khiếm khuyết về cùng với gia tăng xác định "tương tác"


các khiếm khuyết trong quá trình phát triển.
Rõ ràng là đặc điểm cuối cùng này là một phần lớn thu hút sự quan tâm của
các nhà phân tích chất lượng phần mềm cho trường hợp các công cụ.
Trong ánh sáng của các đặc điểm của họ, các công cụ CASE phục vụ như là
một nguồn cho giảm bớt số lượng nỗ lực chi tiêu phát triển ngày càng phức tạp
và hệ thống phần mềm lớn .
các phần sau sẽ đối phó với các đối tượng:
■ Một công cụ CASE là gì?
■ Làm thế nào có thể công cụ CASE góp phần vào việc cải thiện chất lượng
sản phẩm phần mềm?
■ Làm thế nào có thể công cụ CASE góp phần vào việc cải thiện chất lượng
phần mềm
Bảo trì?
■ Làm thế nào và đến mức độ nào có thể công cụ CASE góp phần duy trì quá
trình phát triển lịch trình và phù hợp với ngân sách?

2


Mục Lục

I.
1.

Khái niệm CASE tool
Định nghĩa:

CASE tool : là những công cụ phần mềm máy tính để phát triển phần mềm mà
chúng hỗ trợ người phát triển thực hiện một hoặc nhiều pha trong vòng đời của
phần mềm và/hoặc hỗ trợ việc bảo trì phần mềm.

Tổng quát của định nghĩa cho phép trình biên dịch, gỡ lỗi các hệ thống tương tác,
hệ thống quản lý cấu hình và hệ thống kiểm tra tự động được coi là công cụ
CASE
CASE có các loại ICASE, Upper CASE và Lower CASE. ICASE nghĩa là
"Intergrated" CASE hay là CASE tích hợp,
"Upper" là công cụ ý tưởng hay chỉ là thiết kế logic,
3


"Lower" là công cụ chỉ hỗ trợ lập trình.
Trong những công cụ trên, chúng ta sẽ tập trung vào các công cụ CASE hỗ trợ tối
thiểu một giai đoạn phân tích và có thể hỗ trợ các giai đoạn khác; chúng được gọi
chung là "CASE". Chúng ta cũng xác định những giai đoạn hiện nay đang được
hỗ trợ (dĩ nhiên là các giai đoạn này có thể thay đổi khi phát hành).
Môi trường CASE chuẩn bao gồm một kho chứa, các công cụ đồ hoạ, phần mềm
soạn thảo văn bản, phần mềm giao diện kho chứa, phần mềm đánh giá, và giao
diện người sử dụng.

Một kho chứa là một từ điển dữ liệu hỗ trợ định nghĩa về các kiểu đối tượng khác
nhau và quan hệ giữa các đối tượng đó. Các công cụ đồ hoạ hỗ trợ cho việc phát
triển dạng sơ đồ và đánh giá sự hoàn chỉnh của sơ đồ dựa vào các luật đã được
xác định trước. Phần mềm văn bản cho phép định dạng tên, nội dung, và chi tiết
các phần tử trong kho chứa. Phần mềm giao diện là bộ biên dịch xác định dạng
dữ liệu được dùng (đồ hoạ hoặc văn bản). Phần mềm đánh giá là trí tuệ của
CASE. Phần mềm này phân tích các đầu vào của sơ đồ hoặc kho chứa và xác
định xem chúng có cú pháp hoàn chỉnh hay không (ví dụ có thoả mãn các định
nghĩa của kiểu dữ liệu thành phần không), và chúng có tương thích với các đối
tượng đang tồn tại khác trong ứng dụng hay không. Giao diện người dùng cung
cấp các màn hình và các báo cáo để xử lý tương tác và gián tiếp.
2.


Sự hỗ trợ của các công cụ CASE cho người phát triển hệ thống
được thể hiện trong bảng sau:

Kiểu công cụ CASE

Hỗ trợ
4


Sửa đổi và biểu đồ
Truy vấn kho chứa
Viết tài liệu tự động
Hỗ trợ thiết kế

Sửa đổi mã
Sinh mã

Quản lý cấu hình
Kiểm thử phần mềm
Kỹ nghệ ngược

Quản lý dự án và chỉ số phần mềm

II.

Sửa đổi văn bản và biểu đồ, tạo biểu đồ
thiết kế dựa trên các bản ghi trong kho
chứa
Hiển thị các phần của văn bản thiết kế,

biểu đồ… theo dõi yêu cầu
Tự động sinh ra các tài liệu được yêu
cầu theo các bản ghi cập nhật trong kho
chứa
Việc sửa đổi thiết kế được ghi lại bởi
người phân tích hệ thống và quản lý từ
điển dữ liệu
Biên dịch, thông dịch và gỡ lỗi tương
tác mã cho ngôn ngữ lập trình cụ thể
hoặc công cụ phát triển
Chuyển từ các bản ghi thiết kế sang mẫu
hoặc ứng dụng phần mềm thích hợp với
ngôn ngữ lập trình (hoặc công cụ phát
triển)
Quản lý phiên bản của tài liệu thiết kế
và mã phần mềm, kiểm soát sự thay đổi
trong thiết kế và mã phần mềm.
Kiểm thử tự động, kiểm thử tải và quản
lý kiểm thử và sửa bản ghi
Xây dựng kho chứa phần mềm và tài
liệu thiết kế, dựa trên mã của hệ thống
phần mềm thừa kế. Khi kho chứa của
phần mềm đã có, nó có thể được cập
nhật và sử dụng để tự động tạo ra phiên
bản mới của hệ thống
Hỗ trợ việc quản lý dự án bằng cách
theo dõi lịch và tính toán năng suất, chỉ
số lỗi

Đóng góp của công cụ CASE tới việc cải thiện chất lượng

phần mềm:
Đóng góp của CASE tool cho chất lượng sản phẩm phần mềm Lợi ích
của các công cụ CASE đối với chất lượng sản phẩm phần mềm đó là
làm giảm một số lượng lớn các lỗi trong các pha phát triển phần mềm.
5


Để đánh giá được lợi ích này, chúng ta cùng xem xét việc cải tiến chất
lượng mà các công cụ CASE thực hiện được trong 9 nguyên nhân gây
ra lỗi (được liệt kê trong phần 2.3). Đánh giá của chúng ta sẽ bao gồm
cả công cụ CASE cổ điển và thực.
Nguyên nhân gây ra lỗi
1. Lỗi trong xác định yêu
cầu

2. Việc thất bại trong giao
tiếp giữa khách hàng và
người phát triển

3. Sự chênh lệch có chủ ý
trong yêu cầu phần mềm

4. Những lỗi trong thiết
kế theo logic

Công cụ CASE cổ điển

Công cụ CASE thực
yêu cầu
Hầu như không đóng góp

Việc kiểm tra tính cố định
của yêu cầu hay sự chính
xác bằng máy tính gần
như hiếm xảy ra.
Hầu như không đóng góp
Trong hầu hết các trường
hợp, việc xác định sự thất
bại trong giao tiếp bằng
máy tính là không thể.
Những thất bại này chỉ có
thể được xác định và ngăn
chặn khi có thay đổi hoặc
khi những thông tin khác
được tìm thấy trở nên mâu
thuẫn với những thông tin
đã có.
Đóng góp lớn
Dựa trên những thông tin
đã có, những chênh lệch
từ yêu cầu được xác định
như những mâu thuẩn và
được liệt vào lỗi. Những
chênh lệch này có thể
được xác định bằng các
công cụ theo dõi yêu cầu
đã có và công cụ truy vấn
(cross- referenced query
tools).
Đóng góp lớn
• Việc thiết kế lại (reengineering) cho phép sản

sinh tự động bản thiết kế
6


5. Lỗi trong coding

6. Không làm đúng với
những chỉ dẫn về code và
viết tài liệu

7. Những thiếu xót xảy ra
trong quá trình test

cho những hệ thống kế
thừa và những bản ghi của
chúng.
• Việc sử dụng nơi lưu trữ
nhằm xác định những
thiếu xót trong thiết kế,
những thay đổi và những
mâu thuẫn mới có với
những bản ghi đã có (bản
ghi đã được lưu trữ từ
trước).
Đóng góp rất lớn Áp dụng Đóng góp rất lớn Áp dụng
những trình biên dịch
các công cụ CASE bên
(compiler, interpreters) và dưới vào nhằm tạo ra một
những trình gỡ lỗi tương
cách tự động những đoạn

tác (debugger) vào.
code tương thích hoàn
toàn với thiết kế có sẵn.
Thêm vào đó, vì code
được tự động nên không
có lỗi nào xảy ra.
Đóng góp có giới hạn Sử Đóng góp rất lớn
dụng những trình biên tập Áp dụng những công cụ
văn bản và kiểm định
CASE bên dưới vào nhằm
code để hỗ trợ chuẩn hóa tạo ra những đoạn code
cấu trúc, phong cách của
đảm bảo làm đúng với
văn bản, code và làm việc những chỉ dẫn về code và
xác định những sai lệch
viết tài liệu.
không đúng dễ dàng hơn.
Đóng góp lớn Những
Đóng góp lớn Áp dụng
công cụ kiểm tra tự động những công cụ CASE bên
thực hiện hồi quy và kiểm dưới, đặc biệt là những
tra việc nạp một cách tự
công cụ CASE được tích
động. Việc quản lý test và hợp vào để ngăn chặn lỗi
sửa lỗi bằng máy tính làm trong coding và giảm lỗi
giảm lỗi.
thiết kế. Ứng dụng của
những công cụ lưu trữ tới
việc sửa lỗi và thay đổi
trong suốt quá trình phát

triển nhằm ngăn ngữa hầu
hết các lỗi của phần mềm.
7


8. Lỗi thủ tục

Đóng góp lớn Việc điều
khiển các phiên bản, xem
xét lại và cài đặt phần
mềm bằng các công cụ
quản lý quản lý cấu hìn

9. Lỗi tài liệu

Đóng góp có giới hạn Áp
dụng duy nhất trình biên
tập văn bản vào

III.

1.

2.

3.

Đóng góp có giới hạn Sử
dụng những bản tài liệu
đầy đủ và luôn cập nhật

làm việc ngăn ngừa các
lỗi bảo trì gây ra bởi
những tài liệu không đầy
đủ hoặc thiếu chính xác,
đặc biệt nếu thiết kế đã
được sửa lại nhiều lần
Đóng góp lớn Sử dụng
nơi lưu trữ một cách tự
động nhằm sinh ra những
bản tài liệu đầy đủ và luôn
cập nhật trước mỗi lần sửa
lỗi và thay đổi

Đóng góp của CASE tool cho chất lượng bảo trì phần mềm
Các công cụ CASE có mặt trong nhiều loại của chất lượng bảo trì phần
mềm theo nhiều cách khác nhau.
Bảo trì sửa chữa (Corrective maintenance):
 Tài liệu của phần mềm được đã được cập nhật và CASE được
đưa ra đầy đủ sẽ giúp tìm ra nguyên nhân gây lỗi (failure) của
phần mềm một cách dễ dàng và chính xác hơn.
 Các câu truy vấn cross-referenced cho phép xác định trước kết
quả của kế hoạch sửa chữa đang đề ra một cách tốt hơn.
 Sửa chữa bằng các công cụ CASE tích hợp hay bên dưới hỗ trợ
coding tự động mà sẽ không có lỗi (error) lập trình nào cũng như
tài liệu tự động của việc sửa chữa.
Bảo trì thích nghi (Adaptive maintenance): PTIT
 Tài liệu phần mềm đầy đủ và được cập nhật bởi các công cụ
CASE cho phép xem xét kĩ lưỡng khả năng thích nghi của gói
phần mềm đối với ứng dụng mới, người dùng mới.
Bảo trì cải thiện chức năng (Functional improvement maintenance):

 Việc sử dụng kho chưá cho phép những người thiết kế có thể
đảm bảo tính nhất quán của các ứng dụng mới, các cải tiến mới
với các hệ thống phần mềm vốn có.
 Các câu truy vấn kho chứa cross-referenced cho phép lên kế
hoạch cho việc thay đổi, thêm chức năng một cách dễ dàng hơn
8




IV.



Các thay đổi và việc thêm các chức năng thực hiện bằng các công
cụ CASE tích hợp hay bên dưới cho phép coding tự động mà
không có bất cứ lỗi (error) coding nào cũng như tài liệu tự động
của các thay đổi và sửa chữa

Đóng góp của CASE tool cho quản lý dự án

Phương pháp sử dụng CASE nâng cao mang lại tính kinh tế cao hơn
phương pháp thông thường.
Chất lượng của việc quản lý cả hai dự án là giống nhau với việc ước lượng
lịch biểu và tài nguyên dưới mức yêu cầu. Thông thường, việc áp dụng các
công cụ CASE được mong đợi sẽ làm giảm giá thành và thời gian phát
triển của dự án (“shorter time to market”). Tuy nhiên, vai trò của các công
cụ CASE đối với các khía cạnh chất lượng của quản lý dự án (gồm: điều
khiển chi phí và thời gian) là trọng điểm sự quan tâm của chúng ta. Hiện
nay, đã có trường hợp sử dụng công cụ CASE hiện đại làm giảm độ lệch

giữa kinh phí thực thi và lịch biểu theo kế hoạch, đặc biệt bởi vì chúng
ngăn ngừa lượng lỗi (error) và cho phép sửa lỗi nhanh, dễ dàng hơn khi có
yêu cầu. Để việc quản lý dự án được cải thiện tốt hơn, công cụ điều khiển
dự án (ở đây được xem là loại của các công cụ CASE cổ điển) và các
phương pháp luận ước lượng thời gian, kinh phí được cải thiện phải được
phát triển.
4. Demo case tool

Giới thiệu về selenium

1.






Sử dụng selenium để viết test case
Selenium là một công cụ mã nguồn mở.

Các thử nghiệm sau đó có thể chạy trên các trình duyệt hiện
đại nhất
Selenium triển khai trên nền tảng Window , Linux, Mac
Nó cho phép recording, editing, và debugging tests.

Kiểm thủ có thể được exported ở hầu hết các ngôn ngữ như
HTML, JAVA, .NET,PERL, RUBY, …

Selenium có sự hỗ trợ của các nhà cung cấp trình duyệt lớn hỗ
trợ.

9


test case là cả đoạn code, và dữ liệu test là các giá trị nhập vào Test1,
Test2, Test3 và Đăng ký thành công
Như vậy, để tận dụng tối đa lợi thế test tự động, chúng ta viết một
vòng lặp for() và đọc kết quả test từ 1 danh sách nào đó - như excel rồi truyền vào các vị trí này.
Sau đây la code test case sử dụng selenium về đăng kí tài khoản
Gmail.
package com.example.tests;
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class test case selenium extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome",
" />selenium.start();
}
@Test
public void testTest case selenium() throws Exception {
selenium.open("/");
selenium.click("id=link-signup");
selenium.waitForPageToLoad("10000");
selenium.click("id=submitbutton");
selenium.click("id=TermsOfService");
selenium.click("id=Personalization");
selenium.click("id=submitbutton");

selenium.waitForPageToLoad("10000");
verifyTrue(selenium.isTextPresent("Bạn không được để trống
trường này."));
10


}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
2.

Giới thiệu về CSE HTML Validator

CSE HTML Validator là gì:
CSE HTML Validator for Microsoft Windows là một công cụ kiểm
tra CSS, HTML, XHTML mạnh mẽ, dễ sử dụng. Bên cạnh đó, nó
còn trang bị một công cụ kiểm tra SEO, liên kết, khả năng truy cập
và trình soạn thảo được tích hợp.
Chỉ cần mở một tài liệu HTML, XHTMLL hoặc CSS bằng CSE
HTML Validator Pro và sau đó nhấn F6, chương trình sẽ thực hiện
mọi thao tác cho bạn. Những lỗi cú pháp, cảnh báo và tin nhắn khác
sẽ xuất hiện bên dưới nguồn tài liệu của bạn. Đơn giản, chỉ cần nhấp
chuột lên một trong những tin nhắn đó và bạn sẽ phát hiện ra vị trí
mà tài liệu của mình gặp vấn đề. Sửa chữa vấn đề này với trình soạn
thảo được tích hợp, kiểm tra lại tài liệu để đảm bảo vấn đề đã được
khắc phục và sau đó lưu lại nó khi bạn đã hoàn tất.


Ví dụ:
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
11


$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
}
else
{
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
}
else
{
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
}
else
{
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
}
else
{
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
}
else
{
$gender = test_input($_POST["gender"]);
}
12


}
function test_input($data) {

$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>

Absolute classes registration


<span class="error">* required field.</span>


<form method="post" action=">?php echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table>
<tr>
<td>Name:</td>
<td><input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
</td>
</tr>
<tr>
<td>E-mail: </td>
<td><input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
</td>
</tr>
<tr>
<td>Time:</td>
<td> <input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
</td>
</tr>
<tr>

<td>Classes:</td>
<td> <textarea name="comment" rows="5" cols="40"></textarea></td>
</tr>
<tr>
<td>Gender:</td>
<td>
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
13


<span class="error">* <?php echo $genderErr;?></span>
</td>
</tr>
<td>
<input type="submit" name="submit" value="Submit">
</td>
</table>
</form>
echo "

Your given values are as:

";
echo $name;
echo "
";
echo $email;
echo "
";
echo $website;
echo "
";
echo $comment;
echo "
";
echo $gender;

?>
</body>
</html>

Kết quả sẽ là
một bảng đăng kí lớp học :

14


3.

Giới thiệu về jQuery Validation
jQuery Validation là một công cụ được xây dựng giúp các lập trình viên có
thể xác thực được những thông tin người dùng nhập vào Form một cách
nhanh chóng và dễ dàng.
Để sử dụng jQuery Validation các bạn cần phải biết qua phương thức “$
(‘#id_cua_form’).validate()” (Nếu dùng class thì các bạn hãy tự thay thế). Chúng ta sẽ có

cấu trúc HTML đơn giản như sau:

<fieldset>
<legend>Demo jQuery Validation - ThienAnBlog.com</legend>
<div>
<label>Họ</label>
<input name="ho" type="text" placeholder="Vui lòng nhập họ" required>
</div>
<div>
<label>Tên</label>

15


<input name="ten" type="text" placeholder="Vui lòng nhập tên" required>
</div>
<div>
<label>Địa chỉ</label>
required>
</div>
<button type="submit">Gửi</button>
</fieldset>
</form>

Và cấu trúc thẻ <script>:
$(document).ready(function() {
//Khi bàn phím được nhấn và thả ra thì sẽ chạy phương thức này
$("#formDemo").validate({
rules: {
ho: "required",
ten: "required",
diachi: {
required: true,
minlength: 2
}
},
messages: {
ho: "Vui lòng nhập họ",
ten: "Vui lòng nhập tên",
diachi: {

required: "Vui lòng nhập địa chỉ",
minlength: "Địa chỉ ngắn vậy, chém gió ah?"
}
}
});
});

Khi chạy nó, các bạn sẽ thấy thư viện của chúng ta sẽ thực hiện “Xác thực”
(Validate) khi chúng ta nhấn vào nút “Submit” thì ở đây nó chính là nút
“Gửi”. Hoặc các bạn có thể gõ vài dòng chữ vào và nhận ra sự khác biệt khi
xóa đi. Đó chính là những đoạn thông báo nhỏ như sau:

Ví dụ demo khác hoàn chỉnh:
16


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>jQuery Validate - ThienAnBlog.com</title>
<style type="text/css">
label {
display: inline-block;
width: 150px;
}
input[type="text"], input[type="password"] {
display: inline-block;
width: 200px;

}
label.error {
display: inline-block;
color:red;
width: 200px;
}
</style>
<!-- Load Thư viện jQuery vào trước khi load jQuery Validate-->
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

<input name="sodienthoai" type="text" placeholder="Vui lòng nhập số điện thoại" required>
</div>
17


<div>
<label>Email</label>
<input name="email" type="text" placeholder="Vui lòng nhập Email" required>
</div>
<div>
<label>Mật khẩu</label>

</div>
<div>
<label>Nhập lại mật khẩu</label>

</div>
<div>
<label>Điều khoản</label>
<input name="dieukhoan" type="checkbox">
</div>
<div>
<label>Thông tin thêm</label>
<input name="thongtinthem" type="text" placeholder="Tùy chọn...">
</div>
<button type="submit">Gửi</button>
</fieldset>
</form>

<script type="text/javascript">
$(document).ready(function() {
//Khi bàn phím được nhấn và thả ra thì sẽ chạy phương thức này
$("#formDemo").validate({
rules: {
ho: "required",
ten: "required",
diachi: {
required: true,
minlength: 2
},
sodienthoai: {
required: true,
minlength: 5
},
password: {
required: true,
minlength: 5
},
confirm_password: {
18


required: true,
minlength: 5,
equalTo: "#password"
},
email: {
required: true,
email: true

},
dieukhoan: "required"
},
messages: {
ho: "Vui lòng nhập họ",
ten: "Vui lòng nhập tên",
diachi: {
required: "Vui lòng nhập địa chỉ",
minlength: "Địa chỉ quá ngắn ?"
},
sodienthoai: {
required: "Vui lòng nhập số điện thoại",
minlength: "Số máy quý khách vừa nhập là số không có thực"
},
password: {
required: 'Vui lòng nhập mật khẩu',
minlength: 'Vui lòng nhập ít nhất 5 kí tự'
},
confirm_password: {
required: 'Vui lòng nhập mật khẩu',
minlength: 'Vui lòng nhập ít nhất 5 kí tự',
equalTo: 'Mật khẩu không trùng'
},
email: {
required: "Please provide a password",
minlength: "Your password must be at least 5 characters long",
equalTo: "Please enter the same password as above"
},
email: "Vui lòng nhập Email",
agree: "Vui lòng đồng ý các điều khoản"

}
});
});
</script>
</body>
</html>

19



×