Tải bản đầy đủ (.pptx) (44 trang)

Các kỹ thuật kiểm thử

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 (1.78 MB, 44 trang )

<span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b><small>• Phạm Đức Duy• Trần Văn Sơn• Vũ Tiến Đạt</small></b>

<b><small>• Bùi Trường Giang</small></b>

THÀNH VIÊN

<b><small>• Vũ Minh Đức• Đặng Diệu</small></b>

<b><small>• Trần Thị Trà Mi• Trần Minh Tuấn• Nguyễn Hồng Vũ</small></b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

NỘI DUNG

<b><small>Kiểm thử hộp trắng</small></b>

<b><small>Kiếm thử hộp </small></b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

Kiểm thử hộp trắng

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Kiểm thử hộp trắng

<b>Khái niệm</b>

<small>Là phương pháp kiểm thử phần mềm chủ yếu tập trung vào các cấu trúc bên trong của phần mềm, chủ yếu là </small>

<b>mã nguồn và cấu trúc</b>

<b><small> của nó.</small></b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Các yếu tố liên

<b>Người tiến hành: Lập trình viên</b>

<b>Đối tượng chính: Cấu trúc bên trong </b>

chương trình

<b>Mục tiêu: Tìm ra các lỗi liên quan đến</b>

Cấu trúc chương trìnhLogic chương trình

Những hành động và trạng thái trong chương trình

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Ưu Điểm:

 Các lập trình viên có thể là người thực hiện

 Có thể bắt đầu sớm kể cả khi chưa có giao diện người dùng Kiểm tra được kỹ càng hơn, độ phủ cao hơn

 Phát hiện lỗi logic trong mã nguồn hiệu quả

 Tối ưu hóa hiệu suất ứng dụng thông qua việc loại bỏ các phần mã không cần thiết

 Kiểm soát được chất lượng mã nguồn đảm bảo khả năng bảo trì trong tương lai

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<small>Kiểm thử luồng cơ bản</small>

<small>Kiểm thử dựa trên luồng điều khiển</small>

<small>Kiểm thử đột biến</small>

<small>Kiểm thử dựa trên luồng dữ </small>

<small>liệu </small>

Các kỹ thuật kiểm thử hộp trắng

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Các cấp bao phủ của kiểm thử

<b><small>Khái niệm: Là tỉ lệ các </small></b>

<small>thành phần thực sự được kiểm thử so với </small>

<small>tổng thể các thành phần.</small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Các cấp bao phủ của kiểm thử

<b><small>Các cấp bao phủ</small></b>

<b><small>Phủ cấp 0: kiểm thử những gì có thể kiểm thử được, </small></b>

<small>phần còn lại để người dùng phát hiện và báo lại sau. </small>

<b><small>Phủ cấp 1: Bao phủ câu lệnh: các câu lệnh được thực </small></b>

<small>hiện ít nhất 1 lần</small>

<b><small>Phủ cấp 2: Bao phủ nhánh: tại các điểm quyết định thì </small></b>

<small>các nhánh đều được thực hiện ở cả hai phía T,F</small>

<b><small>Phủ cấp 3: Bao phủ điều kiện: Các điều kiện con của các </small></b>

<small>điểm quyết định được thực hiện ít nhất 1 lần</small>

<b><small>Phủ cấp 4: Kết hợp phủ nhánh và điều kiện </small></b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Kiểm thử luồng điều khiển

<b>Khái niệm đường thi hành: </b><small>Để làm rõ khải niệm kiểm thử luồng điều kiện ta cần biết khái niệm </small>

<small>đường thi hành.</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

 Là một kịch bản thi hành đơn vị phần mềm tương ứng, bao gồm cụ thể các lệnh được thi hành trong một lần chạy cụ thể từ điểm nhập tới điểm kết thúc của phần mềm

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>Mục tiêu của kiểm thử luồng điều khiển:</b>

Mục tiêu của phương pháp kiểm thử luồng điều khiển là đảm bảo mọi đường thi hành của đơn vị phần mềm cần kiểm thử đều chạy đúng

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Ví dụ

<small>for (i=1; i<=1000; i++)</small>

<small>for (j=1; j<=1000; j++)</small>

<small> for (k=1; k<=1000; k++) doSomethingWith(i,j,k);</small>

<small>Đoạn code trên chỉ có 1 đường thi hành, nhưng rất dài : dài 1000*1000*1000 = 1 tỉ lệnh gọi hàm doSomething(i,j,k) khác nhau.</small>

<small>Mà cho dù có kiểm thử hết được toàn bộ các đường thi hành thì vẫn khơng thể phát hiện những đường thi hành cần có nhưng khơng (chưa) được hiện thực</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>Kiểm thử đường thi hành cơ bản</b>

• Giúp những người thiết kế ca kiểm thử nhận được một độ phức tạp của 1 logic thủ tục

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Các bước kiểm thử đường thi hành

<small>Vẽ đồ thị lưu trình hoặc đồ </small>

<small>thị dịng</small>

<small>Bước 1:</small>

<small>Xác định độ phức tạp Cyclomat</small>

<small>Xác định 1 tập các đường </small>

<small>dẫn cơ sở độc lập</small>

<small>Thiết kế các trường hợp kiểm thử với </small>

<small>các đường dẫn độc lập</small>

<small>Thực hiện kiểm thử trên từng test case</small>

<small>Bước 2:</small> <sup>Bước 3:</sup> <sup>Bước 4:</sup> <sup>Bước 5:</sup>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>Một số cấu trúc cơ bản </b>

<b>của đồ thị dòng</b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Chuyển đổi lưu trình đồ </b>

<b>thị dịng</b>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Khái niệm độ phức tạp chu trình

<small>• Là số đo sự phức tạp logic của chương trình.• Là số các đường đi độc lập cơ bản trong tập </small>

<small>các con đường độc lập của một chương trình.</small>

<small>• Là số đường độc lập nhỏ nhất phủ hết các cạnh của đồ thị luồng.</small>

<small>• Số đo này là giới hạn trên của số ca kiểm thử cần phải tiến hành để đảm bảo rằng, tất cả các câu lệnh trong chương trình đều được thực hiện ít nhất một lần. </small>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>Xác định đường thi hành tuyến tính độc lập</b>

<small>• Đ ư ờ n g t u y ế n t í n h đ ầ u t i ê n b ằ n g c á c h đ i d ọ c t h e o 1 n h á n h b ấ t k ỳ </small>

<small>• Dự a t rê n đ ư ờ n g c ơ s ở v ừ a c h ọ n , t h a y đ ổ i c u n g x u ấ t c ủ a n ú t q u y ế t đ ị n h đ ầ u t i ê n v à g i ữ t ố i đ a p h ầ n c ị n l ạ i• B ắ t đ ầ u v ớ i đ ư ờ n g c ơ s ở c h ọ n l ầ n 1 , t h a y đ ổ i c u n g </small>

<small>x u ấ t c ủ a n ú t q u y ế t đ ị n h s ố 2 v à g i ữ t ố i đ a p h ầ n c ị n l ạ i .</small>

<small>• Ti ế p t ụ c t h a y đ ổ i c u n g x u ấ t c h o t ừ n g n ú t q u y ế t đ ị n h t rê n đ ư ờ n g c ơ s ở đ ể x á c đ ị n h c á c đ ư ờ n g t i ế p t h e o c h o đ ế n k h i k h ô n g c ò n n ú t q u y ế t đ ị n h n à o n ữ a .</small>

<small>• L ặ p c h ọ n t u ầ n t ự t ừ n g đ ư ờ n g t ì m đ ư ợ c l à m đ ư ờ n g c h í n h đ ể x á c đ ị n h c á c đ ư ờ n g m ớ i c h o t ớ i k h i đ ủ s ố C</small>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>2.</b>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Đặc

trưng và mục

tiêu

<b><small>Đặc trưng:</small></b>

<small>• Thuyết minh phần mềm đầy đủ chức năng, vận hành đúng</small>

<small>• Thực hiện các phép thử qua giao diện </small>

<b><small>Mục tiêu: Nhằm tìm ra các loại sai</small></b>

<small>Chức năng thiếu hoặc hoạt động không đúng đắnSai về giao diện</small>

<small>Sai trong cấu trúc dữ liệu hoặc trong truy cập dữ liệu ngoài</small>

<small>Sai thực thi chức năng</small>

<small>Sai khởi đầu hoặc kết thúc module </small>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Phân hoạch tương đương

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

Phân hoạch tương đương

<small>Chia miền vào chương trình thành các lớp dữ liệu. Xác định đầu vào hợp lệ và không hợp lệ để lập các ca kiểm thử theo các lớp đó</small>

<small>Mỗi lớp dùng để kiểm thử một chức năng, gọi là lớp tương đươngThay vì kiểm tra tất cả các giá trị </small>

<small>đầu vào, có thể lựa chọn từ đầu vào cho riêng từng lớp</small>

<small>Ý tưởng</small>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>Phương pháp phân hoạch tương đương</b>

<small>Nguyên tắc: Nếu điều kiện đầu vào định rõ giới hạn của một mảng, hoặc một giá trị xác định thì chia vùng tương đương thành</small>

<small>Một lớp tương đương hợp lệ</small>

<small>Hai lớp tương đương không hợp lệ </small>

<small>Một lớp đặc biệt trong trường hợp tồn tại</small>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

Ví dụ

Khi cấp số thẻ thành viên clb, 3 số đầu của số thẻ phải nằm trong khoảng [111, 222], nếu sai sẽ có thơng báo yêu cầu nhập lại, 2 số cuối phải thuộc khoảng [11,99]

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

Ví dụ

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

Phương pháp phân tích giá trị biên

<small>Nguyên tắc: Tập trung phân tích các giá trị biên của miền dữ liệu để xây dựng dữ liệu kiểm thử</small>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

Phương pháp phân tích giá trị biên đối với đầu vào một biến

<small>Đối với đầu vào một biến các giá trị biên có thể liệt kê được là</small>

<small>• Giá trị nhỏ nhất của miền dữ liệu• Giá trị lớn nhất của miền dữ liệu</small>

<small>• Giá trị gần kề lớn hơn và nhỏ hơn giá trị lớn nhất</small>

<small>• Giá trị gần kề lớn hơn và nhỏ hơn giá trị nhỏ nhất</small>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Phương pháp phân tích giá trị biên cho đầu vào nhiều biến

<small>Đối với 2 đầu vào x1, x2, … xn có điều kiện x1  [a,b], </small>

<small>X2  [c,d] , … xn  [e,f]</small>

<small>Ta có thể xây dựng tập kiểm thử là tích Descartes tập giá trị biên của từng biến</small>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Ca kiểm thử các trường hợp đúng: (111,11), (111,99),(222,11),(222,99)

Ca kiểm thử các trường hợp sai: (111,10), (111,100), (222,10), (222,100), (223,99), (223,11),(110,11),(110,99)

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

Nhận xét

<small>Mỗi giá trị giới hạn đều nằm trong một phân vùng nào đó. Nếu chỉ sử dụng giá trị giới hạn thì ta cũng có thể kiểm tra ln phân vùng đó</small>

<small>Khi giá trị giới hạn bị sai thì cả phân vùng sẽ bị saiNếu chỉ dùng giá trị giới hạn thì khơng đem lại sự </small>

<small>tin tưởng cho người dùng vì các giá trị biên không xét được hêt các trường hợp đặc biệt (để ơ trống, nhập kí tự đặc biệt…)</small>

<b><small>Nên kết hợp cả hai phương pháp phân tích giá trị biên và phân vùng tương đương</small></b>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<b>Phương pháp </b>

<b>bảng hỗ trợ quyết </b>

Khái niệm: Cung cấp cách

biểu diễn chính xác các điều kiện logic và các hành động tương ứng

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<small>Dựa vào đặc tả yêu cầu phần mềm, lập bảng quyết định.</small>

<small>Từ bảng quyết định chuyển thành các ca kiểm thử trong đó mỗi cột miêu tả 1 luật được chuyển thành 1 tới n cột miêu tả các ca kiểm thử tương ứng với luật đó:</small>

<small>+ Nếu điều kiện nhập thử là giá trị luận lý thì mỗi cột luật được chuyển thành 1 ca kiểm thử</small>

<small>+ Nếu điều kiện nhập là 1 lớp tương đương(nhiều giá trị liên tục thì mỗi cột luật được chuyển thành nhiều ca kiểm thử dựa trên phương pháp phân hoạch tương đương hoặc giá trị biên)</small>

<small>Quy trình dùng bảng quyết định</small>

</div><span class="text_page_counter">Trang 41</span><div class="page_container" data-page="41">

Ví dụ

Lập bảng hỗ trợ quyết định để thiết kế các ca kiểm thử

</div><span class="text_page_counter">Trang 42</span><div class="page_container" data-page="42">

Tổng Kết

</div><span class="text_page_counter">Trang 43</span><div class="page_container" data-page="43">

Sơ đồ tư duy

<small>Các kỹ thuật kiểm </small>

<small>thửKiểm thử </small>

<small>hộp trắngTổng </small>

<small>quanKhái </small>

<small>Ưu điểm</small>

<small>Nhược điểm</small>

<small>Các kĩ thuậtCác cấp </small>

<small>bao phủ của </small>

<small>kiểm thử</small>

<small>Kiểm thử luồng </small>

<small>điều khiển</small>

<small>Kiểm thử hộp đenTổng </small>

<small>quanKhái </small>

<small>Đặc trưng</small>

<small>Mục đích</small>

<small>Phương phápPhân </small>

<small>hoạch tương đương</small>

<small>Phân tích giá trị </small>

<small>Bảng hỗ trợ quyết </small>

<small>định</small>

</div><span class="text_page_counter">Trang 44</span><div class="page_container" data-page="44">

THANK YOU

<small>NHÓM 5</small>

</div>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×