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

BÁO CÁO;XÂY DỰNG HỆ THỐNG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG

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


KHOA
BÁO CÁO TNG KT
 TÀI KHOA HC VÀ CÔNG NGH CNG
XÂY DNG H THNG KIM TH PHN MM
T NG
Ch nhi n





I HM K THU

BÁO CÁO TNG KT
 TÀI KHOA HC VÀ CÔNG NGH CNG
XÂY DNG H THNG KIM TH PHN MM
T NG
Xác nhn c ch  tài Ch nhi tài
(ký, họ tên) (ký, họ tên)
Đào Anh Hiển




STT



1
n




2
Lê Th 
Ging viên
K 
3
Hoàng Quc Vit
Ging viên
C nhân



STT






THÔNG TIN KT QU NGHIÊN CU 1
I. Tng quan tình hình nghiên cu thuc c tài 
c 3
1. Tình hình nghiên cc 3
2. Tình hình nghiên cc 3
II. Tính cp thit c tài 3
III. Mc tiêu c tài 3
IV. Cách tip cu 4
1. Cách tip cn 4
u 4

ng và phm vi nghiên cu 4
ng nghiên cu 4
2. Phm vi nghiên cu 4
VI. Ni dung nghiên cu 4
PHN II: KT QU 5
M TH PHN MM, KIM
TH T NG PHN MM 5
1.1 Tng quan v kim th phn mm 5
1.1.1 Các khái nin v kim th phn mm 5
1.1.1.1 Định nghĩa kiểm thử phần mềm 5
1.1.1.2. Lý do kiểm thử phần mềm 5
1.1.1.3. Vai trò của kiểm thử phần mềm 5
1.1.1.4. Mục tiêu của kiểm thử phần mềm 5
1.1.2. Tin trình thc hin kim th 6
m th phn mm 6
1.1.3.1. Kiểm thử hộp trắng 6
1.1.3.2. Kiểm thử hộp đen 6
1.1.4. Các c kim th phn mm 7
1.1.4.1. Kiểm thử đơn vị 7
1.1.4.2. Kiểm thử tích hợp 7
1.1.4.3. Kiểm thử hệ thống 8
1.1.4.4. Kiểm thử chấp nhận sản phẩm 8
1.2. Tng quan v kim th t ng phn mm 8
1.2.1. Khái nim kim th t ng 8
1.2.2. Mc tiêu ca kim th t ng 8
1.2.3. Quy trình kim th t ng 8
1.2.4 Kim th t ng chn mm 9
1.2.4.1. Khái niệm kiểm thử chức năng 9
1.2.4.2. Làm thế nào để kiểm thử tự động chức năng 9
1.2.5 Kim th t ng giao din phn mm 9

1.2.5.1. Khái niệm kiểm thử giao diện 9
1.2.5.2. Làm thế nào để kiểm thử tự động giao diện 9
1.2.5.3. Các thành phần GUI của ứng dụng cần kiểm thử: 9
M TH T NG VI
REFLECTION 10
2.1. K thut Reflection 10
2.2. Lp System.Type 10
2.3. S dng Reflection 10
 THUT SINH KCH BN T NG S
DNG CODEDOM TRONG .NET 11
3.1. K thut CodeDom ca .NET 11
3.2. Mô hình các khái nim dùng trong CodeDom 11
3.3. Các lp trong namespace System.CodeDOM 11
3.3. S dng CodeDOM 12
 THUT API CHO KIM TH GIAO DIN13
4.1. API là gì? 13
4.2. Các thành phn ca Windows API 13
4.3. Các hàm API ly thông tin v các thành phn GUI 13
NG NG DNG KIM TH T NG13
5.1 Gii pháp 13
5.2 Kin trúc ca công c 14
5.3 Th nghi 14
PH 15
1. Kt lun 15
2. Khuyn ngh 15
1
TRNG I HC S PHM K THUT HNG YÊN


T

1. Thông tin chung:
-  tài: Xây dng h thng kim th phn mm t ng
- Ch nhim: Ks. n
-  ch trì: Khoa CNTT - 
- Thi gian thc hin: 10
2. Mc tiêu:
 Nghiên cu k thut kim th phn mm t ng
 Nghiên cu k thut phân tích t ng thông tin ca phn mm cn
kim th
 Nghiên cu k thut sinh kch bn kim th t ng
 Nghiên cu k thut sinh ca kim th, thc thi ca kim th
kt qu kim th t ng
 Xây dng h thng kim th phn mm t ng
3. Tính mi và sáng to:
- Nghiên cu k thut sinh ca kim th t ng t phn mm cn kim
th
- Nghiên cu k thut sinh kch bn kim th da trên d liu
4. Kt qu nghiên cu:
 c các kin thc kim th phn mm, kim th t ng
phn mm.
 c k thut thu thp t ng thông tin ca phn mm
cn kim th
 c k thut sinh ca kim th t ng t thông tin thu
thc
 c k thut sinh kch bn kim th t ng t d liu
 Xây dng c h thng kim th phn mm t ng h tr kim
th t ng phn mm v mt chn.
 Vit b v nhng kin thu.
 Công b c mt bài báo trong k yu hi tho quc gia ln th 1
ng tin b ca K thun  n t và Công ngh thông

tin trong cuc s
2
5. Sn phm:
- thng kim th phn mm t ng
6. Hiu quc chuyn giao kt qu nghiên cu và kh
ng:
- S dng làm công c thc hành và hc to bo chng
phn mm.
2012
 

3
PHN 1: 
I. 

1. 
 gi     n kim th, kim th t ng phn
mc chú trng nghiên cc bit trong vic xây dng các công c
kim th. Mt trong s các cách tip cn ca các nhà nghiên cu trên th gii
là xây dng các công c t ng giúp cho kim th c t ng hóa nhiu
nht có th nhm gim chi phí và công sc cho kim th phn mc:
sinh Test Case (TC) t  gim chi phí và thi gian cho kim th viên,
nâng cao chng ca TC; sinh ca kim th t ng; thc thi ca kim th
t ng và t t qu ca ca kim th.



 
TC TC này là
TC



            
             



 
               

            
         

III
- Nghiên cu k thut kim th phn mm t ng
- Nghiên cu k thut phân tích t ng thông tin ca phn mm cn
kim th
4
- Nghiên cu k thut sinh TestCase, thc hi   
TestCase t ng
- Xây dng h thng kim th phn mm t ng
IV. 

 
TC
V

phân tích metad           
TC TC 




- c tài liu
- c nghim
- u
- u
V. 




        



VI
+ Nghiên cu v kim th phn mm
+ Nghiên cu v kim th phn mm t ng
+ Nghiên cu cách thu thp thông tin v phn mm cn kim th
+ Nghiên cu cách sinh TestCase t ng
+ Nghiên cu cách tht qu test t ng

5

 

1.1 


Kim th phn mm là quá trình kho sát mt h thng hay thành

phi nhu kinh, quan sát và ghi li các kt qu
giá mt khía ca h thng hay thành phBảng chú
giải thuật ngữ chuẩn IEEE của Thuật ngữ kỹ nghệ phần mềm- IEEE
Standard Glossary of Software Engineering Terminology) [7].
1.1



              






1.1
 




c


1.1


               
6
M


         


1.1
Tin trình thc hin kim th  trong hình 1.1 [1].

Hình 1.1. Tin trình thc hin kim th.
1.1
1.1.3.1. 
Kim th hp trng (white box testing) là loi kim th ng logic
nhm mo sát cu trúc bên trong c
ng ca kim th hp trng là mã ngu th
. Kim th hp trng tp trung vào vic kim tra các chi
tit th tc (logic x lý, thung logic (luu khin)
và các trng thái c liu cc b) [1]. Hin nay, có mt s
k thuc s dng trong kim th hp tr th dòng (do
u tiên), ma trn kim th (s ng s trên
tng cu khin theo dòng d liu, các cu trúc chu trình  giá tr c

1.1.
g pháp



7
tron 


M

  Equivalence partitioning.
  Boundary value analysis.
  All-pairs testing.
  Fuzz testing.
  Model-based testing.
  Traceability matrix.
  Exploratory testing.
  Specification-base testing [1].
1.1
Theo mô hình     



Hình 1 các c kim th.
1.1


           




1.1
- 
8








1.1
   





1.1

- 



1.2.  

Kim th t ng là quá trình thc hin mt cách t c
trong mt TC. Nó s dng mt công c kim th t  rút ngn
thi gian kim th[1].

 Gim bt công sc và thi gian thc hin
  tin cy
 Gim s nhàm chán
 Gim chi phí cho tng quá trình kim th

Quy trình kim th t ng phn mc
hin kim th phn mng.
9


Hình 1.5: Quy trình i quan h vi KTPM.

1.2.4.
Kim th chm tra xem các thành phn cha
h thng hon hay không.
1.2.4
 kim th t ng ta phi tuân theo qc trình bày trong
hình 1.6

Hình 1.6c ca kim th phn mm t ng v mt ch[3].

1.2.5
Kim th giao din chính là kim tra xem giao din s dng có nht
quán, rõ ràng, có d s di ci s dng hay
không.
1.2.5.2
Mt thành phn GUI có th c nhn dng bng tên, v trí ca nó,
lp thành phn ca nó, t ca s cha, vChúng ta da vào các
 thu thc thông tin cn kim th và sinh ra TC
1.2.5.3
- Button: Thc hin s kin  thc hin mt chc mt tp chc
ng dng.
10
- Combobox: i dùng chn giá tr t danh sách x xung và
thit lp giá tr cho nó.
- DialogBox: u khin DialogBox gm OpenFileDialog, SaveFileDialog,
FolderBowerDialog, FontDialog, ColorDialog, PrintDialog,
- Label: nhãn có tác dng ch dn, giu khi
- Menu: Là mt trong nhu khin giao din quan trng và phc tp
nht và khác vu khin khác trong vic kim th.

- TextBox: ng  nhp liu.
 
REFLECTION
2.1. Reflection
K thuc ng dng trong nhiu ngôn ng lng

K thut Reflection [12c thông tin
t các siêu d liu (metadata) c to ra mng (có kiu
là Typei.
2
- c GetType() và toán t typeof
- Ly các thông tin t Type
+ GetConstructors() + GetEvents()
+ GetFields() + GetInterfaces()
+ GetMethods() + GetMembers()
+ GetNestedTypes() + GetProperties()
2.3
c cung cp mi dng các tp exe hoc
 tc cung c 
Assembly assembly=Assembly.Load(location);
Thu thp các thông tin ca assemb c cung cp bao gm lp,
c, thuc tính và s kin ca chúng.
foreach (Type type in assembly.GetTypes()){
Object obj =Activator.CreateInstance(type);
PropertyInfo[] memberInfo= type.GetProperties();
MethodInfo[] myMethodInfo = type.GetMethods();
}
11
 


3.1. K 
CodeDOM (Code Document Object Model) [13] là mt API ca .NET
cho phép chúng ta vit ra nh ng sinh ra mã lnh và biên
dch mã lnh mt cách nhanh chóng và d dàng.
3
Hình 3.3: Mô hình các khái nin trong CodeDom.
3.3OM
Bảng 3.1: Thành phần chính trong Namespace System.CodeDom.


CodeNamespace

CodeNamespaceCollection

CodeNamespaceImport

namespace
CodeNamespaceImportCollection

namespace
- Các kiu c khai báo kiu cu trúc:
Bảng 3.2: Các kiểu của CodeDom để khai báo kiểu cấu trúc



CodeTypeDeclaration


       
IsInterface, IsStruct, and IsEnum.

CodeTypeDeclarationCollection

CodeTypeDelegate


12
- Các kiu c xây dng các thành phn:
Bảng 3.3: Các kiểu của CodeDom để xây dựng các thành phần.



CodeConstructor

CodeEntryPoint
        

.
CodeMemberEvent

CodeMemberField

CodeMemberMethod

CodeMemberProperty

CodeParameterDeclarationExp
ression
         
viên.
CodeTypeConstructor



CodeTypeMember


CodeTypeMemberCollection


MemberAttributes


3OM
+ 
CodeNamespace cNamespace = new CodeNamespace("TestScript");
cNamespace.Imports.Add(new CodeNamespaceImport("System"));
+ 
CodeTypeDeclaration cClass=new CodeTypeDeclaration("Test");
cNamespace.Types.Add(cClass);
+ 
CodeMemberField field1 = new CodeMemberField("Int32", "_length");
field1.Attributes = MemberAttributes.Private;
cClass.Members.Add(field1);
+ 
CodeMemberProperty property1 = new CodeMemberProperty();
property1.Name = "Length";
property1.Attributes = MemberAttributes.Public;
property1.Type = new CodeTypeReference("Int32");
+ 

13

CodeConstructor cConstructor = new CodeConstructor();
cConstructor.Attributes = MemberAttributes.Public;

CodeEntryPointMethod mainMethod = new CodeEntryPointMethod();

CodeMemberMethod cMethod = new CodeMemberMethod();
cMethod.Name = "Run";
cMethod.Attributes = MemberAttributes.Public;

4.1. API là gì?
API là vit tt ca Application Programming Interface (giao din lp
trình ng dng).
4
 Các hàm (function)
 Các cu trúc (structure)
 Các ht tên (named constant)
 Các hàm callback (callback function)
4
 Hàm FindWindow() Hàm SetWindowText ()
 Hàm GetFocus() Hàm GetCursorPos()
 Hàm WindowFromPoint() Hàm mouse_event()
 Hàm GetWindowRect() Hàm SetForegroundWindow()
 Hàm GetWindow() Hàm GetDesktopWindow()
 Hàm GetWindowLong() Hàm GetParent()
 Hàm GetWindowText () Hàm GetWindowTextLength ()
 Hàm GetMenu () Hàm GetMenuItemCount ()
 Hàm GetMenuItemRect () Hàm GetMenuItemInfo ()
 Hàm GetMessageExtraInfo () Hàm SetRect ()

5

14
c 1: Kho sát thông tin v lc, thuc tính trong phn mm
cn kim th
c 2: Sinh các ca kim th da trên các thông tin thu thc  c 1
c 3: Sinh kch bn kim th cho các ca kim th  thc hin vic kim
th
c 4: Thc thi kch bn kim th và ghi nhn kt qu
c 5: Trình bày kt qu
c 6: S dng li các kch bn kim th cho kim th hi quy và kim th
tích hp
5 

Hình 5.1: Kin trúc ca công c kim th phn mm t ng


trình
n
kim tra (exe/dll)
Sinh các ca
kim th
 các ca
kim th
Sa d liu các
ca kim th
Sinh kch bn
kim th
Thc thi ca kim
th
Xem kt qu
15

 

Bng k thuc
công c kim th t ng phn mm, nó có th  kim th m
cho nhiu ng dng vit trên nn .NET. Công c m thi gian thit
k các ca kim th cho kim th viên bng cách sinh các ca kim th t
ng thch bn kim th t ng. Kch bn kim
th i dng d án C# rt thun li cho kim th viên có th
chnh sa. Công c không ch áp dng cho kim th m mà nó còn
có th s dng cho kim th hi quy và kim th tích hp bng cách s dng
li các kch bn kim th.
2. 
g 

 


 




Bảng 5.1: Dữ liệu các ca kiểm thử

×