BTL môn kiểm thử phần mềm. case tool cho sự phát triển và bảo đảm chất lượng phần mềm BTL môn kiểm thử phần mềm. case tool cho sự phát triển và bảo đảm chất lượng phần mềmBTL môn kiểm thử phần mềm. case tool cho sự phát triển và bảo đảm chất lượng phần mềm BTL môn kiểm thử phần mềm. case tool cho sự phát triển và bảo đảm chất lượng phần mềmBTL môn kiểm thử phần mềm. case tool cho sự phát triển và bảo đảm chất lượng phần mềmBTL môn kiểm thử phần mềm. case tool cho sự phát triển và bảo đảm chất lượng phần mềm
Trang 1B GIÁO DỤC VÀ ĐÀO TẠO Ộ 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
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
Trang 2Mở Đầ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?
Trang 3Mục Lục
Mở Đầu 2
I Khái niệm CASE tool 4
1 Định nghĩa: 4
2 Sự hỗ trợ của các công cụ CASE cho người phát triển hệ thống 5
II Đó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: 6
III Đóng góp của CASE tool cho chất lượng bảo trì phần mềm 8
1 Bảo trì sửa chữa (Corrective maintenance): 8
2 Bảo trì thích nghi (Adaptive maintenance): PTIT 9
3 Bảo trì cải thiện chức năng (Functional improvement maintenance): 9
IV Đóng góp của CASE tool cho quản lý dự án 9
4 Demo case tool 10
1 Giới thiệu về selenium 10
2. Giới thiệu về CSE HTML Validator 11
3. Giới thiệu về jQuery Validation 16
Trang 4I Khái niệm CASE tool
1 Đị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,
"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
Trang 5xá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:
thiết kế dựa trên các bản ghi trong kho chứa
biểu đồ… theo dõi yêu cầu
cầu theo các bản ghi cập nhật trong kho chứa
người phân tích hệ thống và quản lý từ điển dữ liệu
tác mã cho ngôn ngữ lập trình cụ thể hoặc công cụ phát triển
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)
và mã phần mềm, kiểm soát sự thay đổi trong thiết kế và mã phần mềm
lý kiểm thử và sửa bản ghi
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
Trang 6phầ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
Quản lý dự án và chỉ số phần mềm 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
II Đó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
Để đá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
1 Lỗi trong xác định yêu
cầu
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
2 Việc thất bại trong
giao tiếp giữa khách hàng
và người phát triển
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ó
3 Sự chênh lệch có chủ ý
trong yêu cầu phần mềm
Đóng góp lớn Dựa trên những thông tin
Trang 7đã 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)
4 Những lỗi trong thiết
kế theo logic
Đóng góp lớn
• Việc thiết kế lại (re- engineering) cho phép sản sinh tự động bản thiết
kế 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)
dụng những trình biên dịch (compiler,
interpreters) và những trình gỡ lỗi tương tác (debugger) vào
Đóng góp rất lớn Áp dụng các công cụ CASE bên dưới vào nhằm tạo ra một cách tự động những đoạn 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
6 Không làm đúng với
những chỉ dẫn về code và
viết tài liệu
Đóng góp có giới hạn Sử dụng những trình biên tập văn bản và kiểm định code để hỗ trợ chuẩn hóa cấu trúc, phong cách của văn bản, code và làm việc
Đóng góp rất lớn
Áp dụng những công cụ CASE bên dưới vào nhằm tạo ra những đoạn code đảm bảo làm đúng với những chỉ dẫn về
Trang 8xác định những sai lệch không đúng dễ dàng hơn
code và viết tài liệu
7 Những thiếu xót xảy ra
trong quá trình test
Đóng góp lớn Những công cụ kiểm tra tự động thực hiện hồi quy và kiểm tra việc nạp một cách tự động Việc quản
lý test và sửa lỗi bằng máy tính làm giảm lỗi
Đóng góp lớn Áp dụng những công cụ CASE bên dưới, đặc biệt là những công cụ CASE được tích hợp vào để ngăn chặn lỗi trong coding và 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
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
Đó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
dụng duy nhất trình biên tập văn bản vào
Đó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
III Đó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
1 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
Trang 9 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
2 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
3 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
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
IV Đó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
Trang 10phươ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
1. Giới thiệu về selenium
Sử dụng selenium để viết test case
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ợ
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 {
Trang 11selenium = new DefaultSelenium("localhost", 4444, "*chrome",
"http://mail.google.com/");
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."));
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
2 Giới thiệu về CSE HTML Validator
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
Trang 12chuộ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>
<? php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "" ;
$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" ])) {
Trang 13$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" ]);
}
}
function test_input ( $data ) {
$data = trim ( $data );
$data = stripslashes ( $data );
$data = htmlspecialchars ( $data );
return $data ;
}
?>
<h2>Absolute classes registration</h2>
<p><span class = "error" >* required field.</span></p>
<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>