Chương 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Khái niệm kiểm thử phần mềm (Software Testing) Kiểm thử phần mềm là quá trình thực thi một chương trình hay là một đơn vị (Module) của chương trình nhằm đánh giá chất lượng của sản phẩm phần mềm. Kiểm thử là một khâu mấu chốt và là bước phát triển cuối cùng để đảm bảo chất lượng phần mềm. Có thể nói đơn giản là kiểm thử là kiểm tra xem phần mềm có chạy đúng thiết kế (design ) và đặc tả của nó hay không. Mục đích của kiểm thử phần mềm là: tìm lỗi sai (bug), giải quyết bug và đưa ra những đánh giá, chứng nhận về chất lượng phần mềm 1.2 Một số thuật ngữ thường dùng trong kiểm thử phần mềm: Bug: Là một khiếm khuyết trong một thành phần hoặc hệ thống mà nó có thể làm cho thành phần hoặc hệ thống này không thực hiện đúng chức năng yêu cầu của nó, Có thể là lỗi giao diện, lỗi chức năng, lỗi nghiệm vụ.
Ví dụ như thông báo sai hoặc định nghĩa dữ liệu không đúng, hoặc là một nghiệm vụ bị sai so với yêu cầu… Mối liên hệ giữa bug, Defect, fault, Error, failure, incident Error: Hiểu đơn giản là sai sót trong quá trình viết code, một lỗi gì đó khiến cho chương trình không biên dịch được. Error có thể do lỗi hệ thống, chương trình or thành phần nào đó làm chương trình hoạt động không đúng. Các mức độ của bug: Cosmetic, Medium, Serious, Fatal Testcase: Được dịch ra trong tiếng việt là ca kiểm thử. Là một dạng thức mô tả một dữ liệu dầu vào, một số hành động (hành vy) hoặc sự kiện, và một kết quả mong đợi để xác định chức năng của một ứng dụng phần mềm hoạt động đúng hay không.
Một testcase có thể có các phần đặc thù khác như mã testcase, tên testcase, mục tiêu test, điều kiện test (conditon), các yêu cầu input data, các bước thực hiện, và các kết quả mong đợi. Có thể nôm la rằng testcase là một tình huống kiểm tra, được thiết kế để kiểm tra một đối tượng có thỏa mãn yêu cầu đặt ra hay không Ví dụ một testcase được tạo bằng tay: Kiểm Mong Ghi Kết thử Ngày TT Điều kiện tiền đề Bước thực hiện muốn chú quả viên test Email: 1.Login Tunthcm@gmail.com https://www.com/ success tồn tại 2. Tại [Username] input value facebook "tunthcm@gmail. Tại [password] input value: Minhanh2929 4.
Click button [Login] Bảng 1.1 Mẫu ca kiểm thử trong thực tế. Ví dụ testcase automation với công cụ là selenium ide: Testcase1 open / type id=email tunthcm@gmail.com type id=pass minhanh2929 clickAndWait id=u_0_w Bảng 1.2 Ca kiểm thử tự động selenium ide Hình 1.1 Ca kiểm thử tự động selenium ide dạng mã nguồn Test Script: Đây là một khái niệm mà nó liên quan đến công cụ kiểm thử tự động. Nó là một nhóm mã lệnh dạng đặc tả kịch bản dùng để tự động hóa một trình tự kiểm tra, giúp cho việc kiểm tra nhanh hơn hoặc cho những trường hợp mà kiểm tra bằng tay sẽ rất khó khăn hoặc không khả thi. Các Test Script có thể tạo thủ công hoặc tạo tự động dùng công cụ kiểm tra tự động.
OK/NG/NA/: Là những kết quả của testcase Build và Release Version: Build và Release Version đều được dùng để chỉ một phiên bản của phần mềm. Tuy nhiên, ý nghĩa và trường hợp sử dụng thì khác nhau. Build: Thường được dùng để chỉ 1 version phần mềm trong quá trình phát triển tại dự án. Các bản build liên tiếp nhau thường có một khác biệt nhỏ.
Nó có thể fix thêm một bug, thay đổi một requite nhỏ. Release Version: Được dùng để chỉ một bản build. Tuy nhiên, bản build này sẽ được gởi đến cho khách hàng kiểm thử chấp nhận. Những thay đổi giữa các Release Version liên tiếp nhau thường là khá lớn.
Phải có nhiều build được viết và kiểm thử tại nhóm dự án thì mới có một Release Version Fix bug: Giải quyết bug.3 Quy trình kiểm thử phần mềm Đây là quy trình kiểm thử phần mềm được áp dụng nhiều ở rất nhiều công ty hiện nay trong đó có fpt software.2 Quy trình kiểm thử phần mềm Đầu vào, đầu ra của quy trình Thứ tự Đầu vào Hoạt động Đầu ra 1 Requiment của khách hàng Lập kế hoạch kiểm Kế hoạch kiểm thử được chấp Hợp đồng, đơn đặt hàng. thử thuận 2 Testplan đã được chấp Thiết kế tình Test Design, Test ViewPoint thuật. huống test ( Test được chấp thuận Tài liệu yêu cầu của sản design) phẩm được base. 3 Test Plan, Test design, hoặc Chuẩn bị dữ liệu Test Cases: Unit Test Case, là Test Viewpoint Integration Test Case, System Test Case - Test Script ( có thể không) - Test Data (có thể không) - Test Environment 4 Test cases, Test data đã Thực hiện kiểm Defect List, Test Report, Test chuẩn bị và được chấp thử, ghi nhận kết evident thuận quả, đánh giá kết quả 5 According to project plan Tổng hợp và báo Tổng hợp và báo cáo sẵn sàng.3 Mô tả quy trình Sau đây chúng ta sẽ đi mô tả các bước quan trọng trong quy trình này: 1.1 Lập kế hoạch kiểm thử ( Test plan) a.
Mục đích: Xác định nguồn nhân lực tham gia, lập lịch biểu, phạm vi kiểm thử, chiến lược kiểm thử, quy trình và công cụ sử dụng b. Bước thực hiện Xác định các yêu cầu ( requirement) cho việc kiêm thử gồm: - Nghiên cứu requirements của khách hàng, tiêu chí chấp nhận, tài liệu đặc tả, tài liệu thiết kế ( design) và những dàng buộc của khác hàng đối với sản phẩm. - Xác định xem là những cái gì sẽ được kiểm thử, hay chính xác là phạm vi kiểm thử, ví dụ như kiểm thử ở giai đoạn nào, các kiểu kiểm thử, các module phải kiểm thử. - Xác định phạm vi kiểm thử ( Hạn chế của công việc, effort, lịch trình công việc, thời gian kiểm thử hồi quy.
Xem xét và thống nhất các yêu cầu cho việc kiểm thử Đánh giá rủi ro và mức độ ưu tiên - Đánh giá rủi ro đối với vấn đề liên quan - Xác định và thiết lập mức độ ưu tiên cho các các chức năng cơ bản dựa trên mức độ nghiêm trọng của vấn đề, mong muốn của người dùng, mức độ quan trọng/ tần xuất sử dụng đối với từng chức năng. Xây dựng chiến lược thử: - Phương pháp kiểm thử, giai đoạn kiểm thử (UT, Pre-IT,IT, ST, AT) - Tiêu chí chấp thuận, và đánh giá việc kiểm thử (Tiêu chí này dựa trên TestDesign/Test Viewpoit/Test case/ Test report) - Xem xét các trường hợp đặc biệt, nhân lực và điều kiện cơ sở vật chất để thực hiện test. Xác định nguồn nhân lực và môi trường bao gồm: - Con người (số lượng và năng lực, kinh nghiệm) - Môi trường kiểm thử(Bao gồm phần cứng và phần mềm) - Công cụ sử dụng( Tools) - Tất cả các loại dữ liệu kiểm thử( test data) Xác định lịch trình kiểm thử - Dự đoán được effort test - Tạo lịch trình kiểm thử và những mốc (milestones) quan trọng. - Tạo kế hoạch kiểm thử - Xem xét và thống nhất lập kế hoạch kiểm thử.2 Thiết kế test ( Test design): a.
Mục đích Thiết kế cho việc kiểm thử. Bước thực hiện: Nghiên cứu tài liệu đặc tả, test plan Xác định Pass/Fail cho TestDesign/TestViewPoint (số items, tỉ lệ normal/abnormal/boundary case.) Xác định môi trường cho mỗi chức năng Liệt kê Test viewpoint/ Test suites cho mỗi chức năng dựa trên tài liệu, business/ domain knowledge, Q&A. Review TestDegign/Test viewpoint, đánh giá độ bao phủ (coverage) của test design. Approve TestDesign/ test Viewpoint 1.3 Chuẩn bị dữ liệu(Implement test): a.
Mục đích: Chuẩn bị cho việc test b. Bước thực hiện Tạo ca kiểm thử: Phân tích business process Phân tích sơ đồ use case, design, requirements, test plan Xác định test case: điều kiện test, kịch bản test, kết quả mong muốn. Xác định dữ liêu kiểm thử. Xác định cấu trúc thủ tục kiểm thử Phân tích test case Xác định thủ tục test Cấu trúc thủ tục test: xác định mỗi quan hệ và trình tự thực hiện của thủ tục test, điều kiện bắt đầu và kết thúc, mối quan hệ của thủ tục test và TC.
Xác định thủ tục test: Hướng dẫn cách thực hiện, giá trị dữ liệu nhập vào, kết quả mong đợi Tạo test script cho việc thực hiện TC/Test procedure bằng cách: - Tạo - Gen ra - Thực hiện test script Chuẩn bị data test gồm new data và data cũ Chuẩn bị môi trường test bao gồm cơ sở vật chất, thiết bị, công cụ và các điều kiện yêu cầu khác. Review test script và kiểm tra lại các tool Review môi trường test, các điều kiện tiền đề và data test.4 Thực hiện kiểm thử, ghi nhận kết quả và đánh giá kết quả test a.Mục đích:Thực thi kiểm thử và đánh giá kết quả kiểm thử b. Bước thực hiện Tiếp nhận sản phẩm test tài liệu, software package. Setup môi trường và cài đặt chương trình test Thực hiện test dựa trên TestDesign hoặc test script, ghi lại các dữ liệu thực tế liên quan đến môi trường, data test, hoạt động test và kết quả.
Thực hiện phân tích nguyên nhân khi kết quả test khác với expect. Phối hợp với các team khác để điều tra bug như: lấy log, đánh dấu phần thay đổi để thay đổi design hoặc môi trường test. Theo dõi việc khắc phục lỗi 1.5 Tổng hợp và báo cáo: a. Mục đích: Tóm tặt lại test result và đánh giá hoạt động test b.
Bước thực hiện Tổng hợp các trường hợp (ca kiểm thử) lỗi, xác định mong muốn trong từng trường hợp. Tạo test report Review test report Maintain document. Xác định sơ bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không.4 Các mức kiểm thử phần mềm Kiểm thử phần mềm không hoạt động một cách gò bó mà được thực hiện một cách linh hoạt. Điều đó phụ thuộc vào phần mềm đó phất triển theo mô hình nào và giai đoạn phát triển trong dự án phần mềm.3: 4 mức độ kiểm thử phần mềm cơ bản 1.1 Kiểm tra mức đơn vị (Unit Test) Unit test là công đoạn thực thi test sớm nhất trong chu trình kiểm thử phần mềm.
Đối tượng của unit test là những đơn vị có kích thước nhỏ. Hoạt động trong một chu trình đơn giản. Đôi khi nó cũng chỉ là một hàm, hoặc một chức năng. Đặc điểm của unit test: Dễ tổ chức, kiểm tra, ghi nhận và phân tích kết quả.
Nếu phát hiện lỗi thì dễ dàng phát hiện nguyên nhân, và dễ sửa chữa. Có một nguyên lý là thời gian tốn trong việc unit test sẽ được đền bù bằng việc tích kiệm rất nhiều thời gian và chi phí cho việc kiểm tra và sửa lỗi ở các mức kiểm tra sau đó.