MỤC LỤC
Test Data Dÿ liáu dùng đÇ kiÇm thą (có thÇ ghi tờn dÿ liỏu hoÁc đÔồng d¿n lÔu file) Pre-condition ĐiÅu kián cần đÇ thāc hián ca kiÇm thą Test Steps Mô tÁ chi tiÃt tăng b¤ãc thāc hián Expected Results KÃt quÁ mong muán theo yêu cầu Actual Results KÃt quÁ thāc tà khi kiÇm thą. OCL (Object constraint language) là ngôn ngÿ xây dāng mô hình phần mÅm đÔÿc đònh nghĩa nhÔ mỏt chuẩn thờm vào UML cho phõn tớch và thiÃt kà h¤ãng đái t¤ÿng. Các biÇu thāc viÃt trong OCL phā thuác vào các kiÇu lãp, giao diỏn&) đÔÿc đònh nghĩa trong cỏc biầu đồ UML.
- ChuyÇn đổi đÁc tÁ ca są dāng sang biÇu đồ tr¿ng thái: Tr¤ãc khi ca są dāng đ¤ÿc chuyÇn đổi sang biÇu đồ máy tr¿ng thái thì nó cần phÁi đ¤ÿc chuyÇn đổi sang siêu mô hình trung gian UCMeta. C¢ sở cÿa ph¤¢ng pháp tiÃp cÁn này là cách tiÃp cÁn mô hình hóa ca są dāng d¤ãi d¿ng văn bÁn cÿa RUCM, RUCM dāa trên m¿u ca są dāng và tÁp hÿp cỏc luÁt giói h¿n đÔÿc đònh nghĩa chÁt chÁ đỏi vói đÁc tÁ ca są dāng d¿ng văn bÁn (Use Case Specication-UCS) đÇ giÁm sā thiÃu chính xác và không đầy đÿ ván có cÿa đÁc tÁ ca są dāng bằng ngôn ngÿ tā nhiên. Sau đó, vãi thuÁt toán tìm kiÃm theo chiÅu sâu (Depth First Search – DFS) và dāa trên tiêu chỉ phÿ All- Transitions hoÁc All-States, cỏc đÔồng đi trău trÔÿng tă mỏy tr¿ng thỏi đ¤ÿc lāa chán.
- Thā hai, są dāng phộp thāc thi tÔÿng trÔng, đÔồng đi trău tÔÿng đÔÿc t¿o và cỏc ràng buỏc cÿa cỏc phần tą trờn đÔồng đi trău tÔÿng này đÔÿc chuyÇn đổi thành dÿ liáu cÿa mô hình hóa toán hác đ¤ÿc sinh ra. - Thā ba, vấn đÅ toán hác t¿o ra đ¤ÿc giÁi quyÃt vãi tr¿ng thái hián t¿i và các bá giÁi có giao dián vãi AMPL, sau đó dÿ liáu kiÇm thą đ¤ÿc t¿o ra cho mòi ca kiầm thą trău tÔÿng. Bằng cỏch są dāng cỏc bá giÁi khác nhau, các ca kiÇm thą đ¤ÿc sinh ra cho tăng vấn đÅ nh¤: vấn đÅ tuyÃn tớnh và phi tuyÃn tớnh, cú thầ quyÃt đònh và khụng thầ quyÃt đònh, đú là đÔÿc xỏc đònh bởi cỏc ràng buỏc OCL trong mụ hỡnh kiầm thą.
Phần này sÁ trỡnh bày kiÃn thāc hò trÿ sā phỏt triần cỏc mụ hỡnh cấp cao ở māc há tháng nh¤ là máy tr¿ng thái (state machine) tă mô hình ca są dāng (UCMods), sau đó đ¤ÿc tinh chỉnh đÇ các ca kiÇm thą đ¤ÿc t¿o bằng các công cā MBT hián có đÇ có thÇ thāc thi đ¤ÿc các ca kiÇm thą. Ví dā, sā chuyÇn đổi tă tr¿ng thái The system is in a conference call (tiÅn điÅu kián cÿa ca są dāng. Disconnect, nh¤ trong BÁng 3.5) tãi tr¿ng thái The system is idle (hÁu điÅu kián sau cÿa luồng c¢ bÁn Disconnect) vãi kích ho¿t (trigger) Disconnect và có hiáu lāc The system disconnects Endpoint, có điÅu kián đÁm bÁo: Endpoint to be disconnected is in the conference call. Ví dā, sā chuyÇn tiÃp tr¿ng thái The system is in a conference call (đ¿i dián cho tiÅn điÅu kián cÿa use case Disconnect, nh¤ trong BÁng 6) tãi chính nó (đ¿i dián cho hÁu điÅu kián cÿa luồng Disconnect thay thà cā thÇ đầu tiên) vãi kích ho¿t Disconnect và có há quÁ The system sends a failure message to User, có điÅu kián đÁm bÁo: NOT Endpoint to be disconnected is in the conference call.
Đái vói mòi quan hỏ bao gồm, quỏ trỡnh chuyần đổi đÔÿc t¿o ra đầ liờn kÃt tiÅn điÅu kián cÿa ca są dāng bao gồm (including use case) vãi hÁu điÅu kián cÿa nó, vãi kích ho¿t đ¤ÿc đÁt tên là tên cÿa ca są dāng bao gồm, kÃt quÁ đ¤ÿc đÁt tên là tên cÿa ca są dāng đ¤ÿc bao gồm và điÅu kián đÁm bÁo là kÃt hÿp tất cÁ các điÅu kián cÿa các câu điÅu kián tă các b¤ãc tr¤ãc b¤ãc INCLUDE USE CASE. Ví dā, mát quá trình chuyÇn tiÃp đ¤ÿc t¿o ra đÇ kÃt nái tiÅn điÅu kián cÿa ReturnVideo (>Employee is authenticated’) vãi hÁu điÅu kián luồng c¢ bÁn cÿa nó (câu >A video copy has been returned.’ và câu >The video copy is available for rent.’), vãi kích ho¿t >ReadBarCode’, há quÁ >ReturnVideo’. Nh¤ đ¤ÿc minh háa trong Hình 3.5, phần này bao gồm viác chuyÇn biÃn mô hình thành biÃn AMPL, các điÅu kián tiên quyÃt cÿa quá trình chuyÇn đổi cÿa máy tr¿ng thái sang chuyÇn đổi ràng buác AMPL, các điÅu kián sau cÿa quá trình chuyÇn đổi cÿa máy tr¿ng thái chuyÇn đổi sang ràng buác AMPL, thêm các ràng buác liên tāc vào mô hình AMPL và tr¿ng thái chuyÇn đổi bất biÃn đái vãi ràng buỏc AMPL.
NÃu bá giÁi không thÇ giÁi quyÃt ràng buỏc trong đÔồng d¿n trău tÔÿng, đÔồng d¿n đú đÔÿc cụng nhÁn là đÔồng d¿n bất khÁ thi <Infeasible Path= và thuÁt toỏn tỡm kiÃm phÁi thāc hiỏn quay l¿i và tiÃp tāc thāc hiỏn trong mỏt đÔồng d¿n đÔÿc gỏi khỏc. ChÔÂng này đó trỡnh bày kiÃn thāc hò trÿ sā phỏt triần cỏc mụ hỡnh cấp cao ở māc há tháng nh¤ là máy tr¿ng thái (state machine) tă mô hình ca są dāng (UCMods), sau đó đ¤ÿc tinh chỉnh đÇ các ca kiÇm thą đ¤ÿc t¿o bằng các công cā MBT hián có đÇ có thÇ thāc thi đ¤ÿc các ca kiÇm thą.
Sau khi có đầu vào, mát máy tr¿ng thái sÁ đ¤ÿc t¿o ra d¤ãi d¿ng biÇu đồ bao gồm các tr¿ng thái (state) và các chuyÇn tiÃp (transistion) giÿa các tr¿ng thái bao gồm sā kián kích ho¿t cÿa chuyÇn tiÃp. Tất cÁ cỏc biÃn đÔÿc phõn lo¿i là cỏ đònh (fixed) hoÁc cú thầ thay đổi (changeable) trong biầu thāc hiỏn t¿i: cỏc giỏ trò đầu vào, cỏc tham sỏ, cỏc hằng sỏ, và cỏc thuỏc tớnh vói @pre là cỏ đònh (chỳng khụng thầ thay đổi) – cỏc biÃn khụng đÔÿc đỏnh dấu @pre là cú thầ thay đổi trong hÁu điÅu kiỏn. - Bao phÿ đa điÅu kián (multiple condition coverage) nh¤ viác lāa chán ng¿u nhiờn giỏ trò đầu vào và cỏc biÃn thầ khỏc nhau cÿa đa chiÅu (multi- dimensional): MD(0) vói cỏc giỏ trò ranh giói phõn vựng và MD(1) vói cỏc giỏ trò ranh giói cho ph¿m vi tuyỏt đỏi và vói cỏc giỏ trò ng¿u nhiờn tă các phân vùng đầu vào.
Đỏi vói mòi chuòi chuyần tiÃp, tất cÁ điÅu kiỏn đÁm bÁo Ánh h¤ởng và tiÅn điÅu kián/hÁu điÅu kián cÿa các ho¿t đáng đÅu đ¤ÿc ghi l¿i – chúng đ¤ÿc chuyÇn đổi và są dāng cho viác lāa chán tham sá đầu vào t¤¢ng āng vãi tiêu chí bao phÿ ranh giãi đ¤ÿc lāa chán. Đánh giá này phÁn ánh sāc m¿nh cÿa thuÁt toán t¿o ca kiÇm thą trău t¤ÿng, thuÁt toán đ¤ÿc đÅ xuất đÇ chuyÇn đổi bài toán t¿o ca kiÇm thą thành bài toán toán hác và są dāng bá giÁi đÇ giÁi quyÃt các vấn đÅ toán hác đã t¿o. Đái vãi bài toán thā hai, khi Parteg đ¤ÿc są dāng đÇ t¿o ca kiÇm thą và bá giÁi đ¤ÿc chán là GeCoDE, tất cÁ các māc tiêu kiầm thą đÔÿc t¿o bằng All-States và All-Transitions, sÁ đÔÿc thòa món (nghĩa là kÃt quÁ là 100%).
LuÁn văn tiÃn hành thāc nghiỏm vói bài toỏn thāc tà và phỏt triần mó nguồn nhằm māc đớch hò trÿ ch¿y bá dÿ liáu kiÇm thą đ¤ÿc sinh ra tă công cā. Ngoài ra, luÁn văn cũng đ¤a ra ¤u điÇm, nh¤ÿc điÇm cÿa công cā ParTeG và đ¤a ra đánh giá chất lÔÿng bỏ dÿ liỏu kiầm thą sinh ra so vói nhiÅu cụng cā hò trÿ tÔÂng tā khỏc trên nhiÅu tiêu chí, báo cáo thāc nghiám đ¤ÿc trình bày trong Ch¤¢ng 4. LuÁn văn sÁ tiÃp tāc cung cấp mát quy trình kiÇm thą hoàn chỉnh tă viác t¿o mô hình kiÇm thą (są dāng trình cÃm thêm UML hoÁc trình chỉnh sąa TopCased) tãi viác sinh bá kiÇm thą bằng cách kÃt hÿp tiêu chí bao phÿ và viác thāc hiỏn kiầm thą tuần tā.
Tr¿ng thỏi hiỏn t¿i, ParTeG hò trÿ tā đỏng t¿o phõn vùng đầu vào ngay cÁ đái vãi nhiÅu tham sá đầu vào t¤¢ng tác, mát sá chiÃn l¤ÿc tìm kiÃm khác nhau, đá ¤u tiên māc tiêu kiÇm thą, điÅu chỉnh mô hình kiÇm thą và d¿n xuất cÿa các máy tr¿ng thái cùng vãi các mái quan há kà thăa giÿa các lãp. Ví dā, t¿o kiÇm thą có thÇ đÔÿc hò trÿ cho cỏc mụ hỡnh khỏc nhau nhÔ mỏt sā kÃt hÿp cÿa cỏc mụ hỡnh đó đ¤ÿc tích hÿp (biÇu đồlãp, máy tr¿ng thái) vãi các biÇu đồt¤¢ng tác. LuÁn văn mãi chỉ xem xét mát sá phần cÿa các phép toán và biÇu thāc OCL, có thÇ thêm các phép toán và biÇu thāc OCL khác vào ph¤¢ng pháp đ¤ÿc đÅ xuất.