PHẦN 1. MỞ ĐẦU 1. Tên đề tài Kiểm thử tự động chức năng hệ thống quản lý kho hàng với công cụ Junit 2. Lý do chọn đề tài Trong những năm gần đây ngành công nghệ thông tin nói chung và kĩ thuật phần mềm nói riêng đã có những bước phát triển mạnh mẽ. Các phần mềm ngày càng được ứng dụng rộng rãi trong mọi lĩnh vực của cuộc sống mà trong đó các phần mềm quản lý đã đặc biệt chứng tỏ được tính ưu việt và tiệních của mình Nhưng cũng từ đó nảy sinh ra nhiểu vấn đề về lỗi hỏng hóc phần mềm không đáng có gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế Những lỗi này có thể do tự bản thân phần mềm bị hỏng học không được kiểm duyệt kĩ lưỡng trước khi đưa ra cho người dùng hay cũng có thể do người dùng cố tình phá hoại nhằm đánh cắp thông tin cá nhân như mã số tài khoản ngân hàng, số điện thoại, danh bạ tin nhắn,…Những vấn đề nan giải và cấp thiết này càng có xu hướng mở rộng trong các năm gần đây, điển hình như sự cố máy tính Y2K năm 2000 làm tê liệt nhiều hệ thống máy tính lớn hay như càng có nhiều loại virus phá hoại mới xuất hiện, tấn công vào các lỗ hổng bảo mật phần mềm là tê liệt nhiều hệ thống phần mềm và phần cứng. Từ đây ta dễ dàng nhận ra là mặc dù phần mềm phát triển ngày càng phức tạp nhưng vấn đề chất lượng vẫn là một dẩu hỏi lớn cần xem xét cẩn thận. Do đó yêu cầu đặt ra là cần có công tác kiểm thử phần mềm thật kĩ lưỡng nhằm ngăn chặn các lỗi hay hỏng hóc có tiềm tàng bên trong phần mềm mà ta chưa kịp nhận ra. Tuy nhiên vì phần mềm ngày càng lớn, hàng nghìn module, có thể do cả một công ty hàng nghìn người phát triển vì vậy để kiểm thử được một phần mềm lớn như vậy sẽ tốn rất nhiều công sức và thời gian nếu làm thủ công, chưa kể đến chất lượng kiểm thử sẽ không cao và thật chính xác phù hợp với yêu cầu. Theo nhiều tính toán thì công việc kiểm thử đóng vai trò hết sức quan trọng trong quy trình phát triển phần mềm nó đóng góp tới 30%-70% tổng toàn bộ chi phí cho việc sản xuất phần mềm. Vì vậy cần có các hệ thống kiểm thử phần mềm một cách tự động cho phép ta thực hiện được các công việc một cách nhanh chóng và độ an toàn chính xác cao nhất có thể. Và đó là lí do nhóm em lựa chọn đề tài “ Kiểm thử tự động chức năng hệ thống quản lý kho hàng với công cụ Junit ” để nghiên cứu, tìm hiều và đề ra các giải pháp mới để cải tiến các quy trình kiểm thử như hiện nay sao cho năng suất cao nhất. 3. Mục đích Đề tài “ Kiểm thử tự động chức năng hệ thống quản lý kho hàng với công cụ Junit ” tìm hiểu về kiểm thử phần mềm,kiểm thử tự động,tìm hiểu về công cụ Junit và kiểm thử chức năng của hệ thống quản lý kho hàng bằng công cụ kiểm thử tự động Junit. 4. Bố cục Nội dung chính đề tài chia làm 3 chương Chương 1: Tổng quan về kiểm thử phần mềm : phần này chúng ta sẽ đi tìm hiểu về một số khái niện phần mềm và kiểm thử phần mềm. Chương 2: Tìm hiểu về công cụ kiểm thử tự động Junit : phần này chúng ta sẽ tìm hiểu về lịch sử công cụ kiểm thử tự động Junit, cách cài đặt và một số bước thực hiện cơ bản. Chương 3: Ứng dụng công cụ Junit để kiểm thử tự động chức năng của hệ thống quản lí kho hàng . 5. Phương pháp tiếp cận Đọc lý thuyết: thu thập tài liệu, thống kê lý thuyết. Phân tích mẫu Thực nghiệm thực tế PHẦN 2 NỘI DUNG CHƯƠNG 1. TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Phần mềm 1.1.1 Định nghĩa phần mềm Theo định nghĩa của IEEE: Bao gồm các chương trình máy tính, các thủ tục, các tài liệu có thể liên quan và các dữ liệu liên quan đến hoạt động của hệ thống máy tính Theo định nghĩa của ISO: 4 thành phần cơ bản của phần mềm: •Chương trình máy tính (code) •Các thủ tục •Tài liệu •Dữ liệu cần thiết để vận hành phần mềm 1.1.2 Đặc trưng của phần mềm -Phần mềm được kỹ nghệ, không được chế tạo theo nghĩa cổ điển -Có tính phức tạp cao và luôn thay đổi -Phần mềm không nhìn thấy được 1.2 Định nghĩa kiểm thử phần mềm Theo Glenford Myers: •Kiểm thử là quá trình vận hành chương trình để tìm ra lỗi Theo IEEE: Kiểm thử là •Là quá trình vận hành hệ thống hoặc thành phần dưới những điều kiện xác định, quan sát hoặc ghi nhận kết quả và đưa ra đánh giá về hệ thống hoặc thành phần đó. •Là quá trình phân tích phần mềm để tìm ra sự khác biệt giữa điều kiện thực tế và điều kiện yêu cầu và dựa vào điểm khác biệt đó để đánh giá tính năng phần mềm
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN: KIỂM THỬ PHẦN MỀM ĐỀ TÀI: KIỂM THỬ TỰ ĐỘNG CHỨC NĂNG QUẢN LÝ KHO HÀNG VỚI CÔNG CỤ KIỂM THỬ JUNIT Giảng viên hướng dẫn : Th.s Nguyễn Đức Lưu Lớp : KTPM K9 HKP Sinh viên thực : Nguyễn Minh Đức Phạm Minh Hồng Trần Văn Dương Hà Nội, 2018 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN: KIỂM THỬ PHẦN MỀM ĐỀ TÀI: KIỂM THỬ TỰ ĐỘNG CHỨC NĂNG QUẢN LÝ KHO HÀNG VỚI CÔNG CỤ KIỂM THỬ JUNIT Giảng viên hướng dẫn : Th.s Nguyễn Đức Lưu Lớp : KTPM K9 HKP Sinh viên thực : Nguyễn Minh Đức Phạm Minh Hồng Trần Văn Dương Hà Nội, 2018 Luund7@gmail.com LỜI CẢM ƠN Trong suốt trình học tập làm tập lớn, nhóm 14 đà nhận hướng dẫn, giúp đờ nhiệt tình q thầy khoa Cơng nghệ thông tin trường Đại học Công nghiệp Hà Nội bạn mơn để hồn thành đề tài nghiên cứu nhóm Với lòng kính trọng biết ơn sâu sắc, nhóm 14 xin bày tỏ lời cảm ơn chân thành tới thầy Nguyễn Đức Lưu - người thầy đà hết lòng giúp đờ, dạy bảo, động viên tạo điêu kiện thuận lợi cho nhóm suốt q trình học tập hồn thành tập lớn cùa nhóm, tất thầy cô khoa, trường bạn bè mơn đầ giúp đờ nhóm q trình học tập Những đóng góp cùa người kinh nghiệm quý báu giúp cho thành viên nhóm có dự tính sau làm đồ án tốt nghiệp sau tốt nghiệp Chúng em xin chân thành cảm ơn ! MỤC LỤC LỜI CẢM ƠN MỤC LỤC .3 PHẦN MỞ ĐẦU PHẦN NỘI DUNG CHƯƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Phần mềm 1.1.1 Định nghĩa phần mềm 1.1.2 Đặc trưng phần mềm 1.2 Định nghĩa kiểm thử phần mềm 1.3 Mục tiêu kiểm thử 1.4 Phân loại kiểm thử 1.4.1 Dựa vào mục đích kiểm thử .8 1.4.2 Dựa vào chiến lược kiểm thử 1.4.3 Dựa vào phương pháp tiến hành kiểm thử .8 1.4.4 Dựa vào kỹ thuật kiểm thử .9 1.5 Đối tượng thực kiểm thử 1.6 Quy trình kiểm thử 1.7 Các cấp độ kiểm thử 10 1.8 Các loại hình kiểm thử 11 1.9 Các cấp độ kiểm thử .11 1.9.1 Kiểm thử đơn vị- Unit testing 11 1.9.2 Kiểm thử tích hợp 13 1.9.3 Kiểm thử hệ thống 14 1.9.4 Kiểm thử chấp nhận .14 1.10 Kiểm thử tự động .14 1.10.1 Tổng quan kiểm thử tự động 14 1.10.2 Quy trình kiểm thử tự động 15 1.10.3 Ưu , nhược điểm kiểm thử tự động 16 1.10.4 Một số công cụ kiểm thử tự động 16 CHƯƠNG GIỚI THIỆU VỀ CÔNG CỤ KIỂM THỬ JUNIT 17 2.1 Lịch sử phát triển Junit 17 2.2 Junit gì? 17 2.3 Lợi ích Junit 18 2.4 Cài đặt 19 2.5 Các phương thức Junit 19 2.6 Cách sử dụng 19 2.7 Hướng dẫn sử dụng junit eclip 25 PHẦN MỞ ĐẦU Tên đề tài Kiểm thử tự động chức hệ thống quản lý kho hàng với công cụ Junit Lý chọn đề tài Trong năm gần ngành công nghệ thơng tin nói chung kĩ thuật phần mềm nói riêng có bước phát triển mạnh mẽ Các phần mềm ngày ứng dụng rộng rãi lĩnh vực sống mà phần mềm quản lý đặc biệt chứng tỏ tính ưu việt tiệních Nhưng từ nảy sinh nhiểu vấn đề lỗi hỏng hóc phần mềm khơng đáng có gây ảnh hưởng nghiêm trọng đến xã hội, kinh tế Những lỗi tự thân phần mềm bị hỏng học không kiểm duyệt kĩ lưỡng trước đưa cho người dùng hay người dùng cố tình phá hoại nhằm đánh cắp thông tin cá nhân mã số tài khoản ngân hàng, số điện thoại, danh bạ tin nhắn,… Những vấn đề nan giải cấp thiết có xu hướng mở rộng năm gần đây, điển cố máy tính Y2K năm 2000 làm tê liệt nhiều hệ thống máy tính lớn hay có nhiều loại virus phá hoại xuất hiện, công vào lỗ hổng bảo mật phần mềm tê liệt nhiều hệ thống phần mềm phần cứng Từ ta dễ dàng nhận phần mềm phát triển ngày phức tạp vấn đề chất lượng dẩu hỏi lớn cần xem xét cẩn thận Do yêu cầu đặt cần có cơng tác kiểm thử phần mềm thật kĩ lưỡng nhằm ngăn chặn lỗi hay hỏng hóc có tiềm tàng bên phần mềm mà ta chưa kịp nhận Tuy nhiên phần mềm ngày lớn, hàng nghìn module, cơng ty hàng nghìn người phát triển để kiểm thử phần mềm lớn tốn nhiều công sức thời gian làm thủ công, chưa kể đến chất lượng kiểm thử không cao thật xác phù hợp với yêu cầu Theo nhiều tính tốn cơng việc kiểm thử đóng vai trò quan trọng quy trình phát triển phần mềm đóng góp tới 30%-70% tổng tồn chi phí cho việc sản xuất phần mềm Vì cần có hệ thống kiểm thử phần mềm cách tự động cho phép ta thực cơng việc cách nhanh chóng độ an tồn xác cao Và lí nhóm em lựa chọn đề tài “ Kiểm thử tự động chức hệ thống quản lý kho hàng với công cụ Junit ” để nghiên cứu, tìm hiều đề giải pháp để cải tiến quy trình kiểm thử cho suất cao Mục đích Đề tài “ Kiểm thử tự động chức hệ thống quản lý kho hàng với cơng cụ Junit ” tìm hiểu kiểm thử phần mềm,kiểm thử tự động,tìm hiểu công cụ Junit kiểm thử chức hệ thống quản lý kho hàng công cụ kiểm thử tự động Junit Bố cục Nội dung đề tài chia làm chương Chương 1: Tổng quan kiểm thử phần mềm : phần tìm hiểu số khái niện phần mềm kiểm thử phần mềm Chương 2: Tìm hiểu công cụ kiểm thử tự động Junit : phần tìm hiểu lịch sử cơng cụ kiểm thử tự động Junit, cách cài đặt số bước thực Chương 3: Ứng dụng công cụ Junit để kiểm thử tự động chức hệ thống quản lí kho hàng Phương pháp tiếp cận Đọc lý thuyết: thu thập tài liệu, thống kê lý thuyết Phân tích mẫu Thực nghiệm thực tế PHẦN NỘI DUNG CHƯƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Phần mềm 1.1.1 Định nghĩa phần mềm Theo định nghĩa IEEE: Bao gồm chương trình máy tính, thủ tục, tài liệu liên quan liệu liên quan đến hoạt động hệ thống máy tính Theo định nghĩa ISO: thành phần phần mềm: • Chương trình máy tính (code) • Các thủ tục • Tài liệu • Dữ liệu cần thiết để vận hành phần mềm 1.1.2 Đặc trưng phần mềm -Phần mềm kỹ nghệ, khơng chế tạo theo nghĩa cổ điển -Có tính phức tạp cao thay đổi -Phần mềm không nhìn thấy 1.2 Định nghĩa kiểm thử phần mềm Theo Glenford Myers: • Kiểm thử q trình vận hành chương trình để tìm lỗi Theo IEEE: Kiểm thử • Là q trình vận hành hệ thống thành phần điều kiện xác định, quan sát ghi nhận kết đưa đánh giá hệ thống thành phần • Là q trình phân tích phần mềm để tìm khác biệt điều kiện thực tế điều kiện yêu cầu dựa vào điểm khác biệt để đánh giá tính phần mềm 1.3 Mục tiêu kiểm thử - Tìm nhiều lỗi tốt điều kiện thời gian định nguồn lực sẵn có - Chứng minh sản phẩm phần mềm phù hợp với đặc tả - Xác thực chất lượng kiểm thử phần mềm dùng chi phí nỗ lực tối thiểu - Thiết kế tài liệu kiểm thử cách có hệ thống thực cho có hiệu quả, tiết kiệm thời gian công sức 1.4 Phân Loại Kiểm Thử Phân loại kiểm thử dựa yếu tố: • Mục đích kiểm thử • Chiến lược kiểm thử • Phương pháp kiểm thử • Kỹ thuật kiểm thử 10 - Mã nguồn chức năng: Hình 3.31 Mã nguồn chức thêm nhà cung cấp - Đồ thị lưu trình: Hình 3.32 Đồ thị lưu trình chức thêm nhà quản lý 65 - Độ phức tạp chu trình: C= 18-14+2=6 - Thiết kế test case: o Xây dựng test case: Kỹ thuật kiểm thử hộp trắng: tìm đường Bảng 3.9 Bảng thống kê test case – kỹ thuật kiểm thử hộp trắng STT Đường Dữ liệu đầu vào Mã NhaCC Tên NhaCC NCC01 Hanghoa 1 1-2-3 1-2-4-5 1-2-4-6-7 NCC03 1-2-4-6-89 NCC03 1-2-4-6-810-11-13 1-2-4-6-810-12-13 Số điện thoại Đầu mong đợi Ghi Số điện thoại phải nhập định dạng số Để trống số điện thoại 096441313 Vui long nhap lại Mã NhaCC Để trống Mã NhaCC 096441313 Vui long nhap lại Tên NhaCC Để trống Tên NhaCC Hanghoa 096441313 Mã nhà cung Nhập trùng mã cấp trùng nhà cung cấp NCC05 Hanghoa 096441313 Nhập thành công Thông tin hợp lệ NCC06 Hanghoa 123456 Cập nhật thất bại Lỗi Hanghoa 66 Kỹ thuật kiểm thử hộp đen: bảng phân hoạch tương đương : Bảng 3.10 Kỹ thuật kiểm thử hộp đen : phân hoạch tương đương Đầu vào Các lớp tương đương hợp lệ Mã nhà cung cấp 50 kí tự K6 Để trống K7 Trùng với tên có K8 >11 số K10 kí tự Vui lòng nhập lại mã nhà cung cấp Mã nahf cung cấp trống Mã nhà cung cấp trùng Mã nhà cung cấp trùng Vui lòng nhập lại tên nhà cung cấp Tên nhà cung cấp dài >50 kí tự Vui lòng nhập lại tên nhà cung cấp Tên nhà cung cấp trống Cập nhật thất bại Tên nahf cung cấp Tên NhaCC = Hanghoa1 Số điện thoại=0966111111 Mã NhaCC = NCC022 Tên NhaCC = Hanghoa2 Số điện thoại=0966222222 Mã NhaCC = Tên NhaCC = Hanghoa3 Số điện thoại=0966333333 Mã NhaCC = NCC01 Tên NhaCC = Hanghoa4 Số điện thoại=0966444444 Mã NhaCC = NCC05 Tên NhaCC = Hanghoa555Hanghoa555Hangho a555Hanghoa555Hanghoa555x Số điện thoại=0966555555 Mã NhaCC = NCC06 Tên NhaCC = Số điện thoại=0966666666 Mã NhaCC = NCC07 70 Tên NhaCC = Hanghoa1 trùng Số điện thoại=0966777777 Mã NhaCC = NCC08 Nhập lại số điện thoại Số điện thoại > 11 số Nhập lại số điện thoại Số điện thoại < 10 số Nhập lại số điện thoại Số điện thoại thiếu số đầu Nhập lại số điện thoại Số điện thoại trống Nhập lại số điện thoại Số điện thoại chứa kí tự khác số Tên NhaCC = Hanghoa8 Số điện thoại=09668888888 Mã NhaCC = NCC09 Tên NhaCC = Hanghoa9 Số điện thoại=09669999 10 Mã NhaCC = NCC10 Tên NhaCC = Hanghoa10 Số điện thoại=96610101010 11 Mã NhaCC = NCC11 Tên NhaCC = Hanghoa11 Số điện thoại= 12 Mã NhaCC = NCC12 Tên NhaCC = Hanghoa12 Số điện thoại=0966x9999 3.3.2.Thực kiểm thử - Bước 1: Tạo file TestCaseAddPublisher.xlxs diền đầy đủ thông tin 71 Hình 3.33 File TestCaseAddPublisher.xlxs - Bước 2: Tạo test script Bước 2.1: File bạn muốn tạo test script New Other… Hình 3.34 Tạo Junit Test Case Bước 2.2 : Chọn JUnit JUnit test case Next 72 Hình 3.35 Của sổ New o Bước 2.3: Nhập thơng tin test case Finish Hình 3.36 Giao diện cửa sổ new JUnit Test Case 73 o Bước 2.4: Thêm thư viện Hình 3.37 Các thư viện cần thiết o Bước 2.5: Viết test script Khai báo danh sách lưu trữ thông tin cần thiết, xây dựng phương thức đọc lấy thông tin từ file TestCaseAddPublisher.xlsx Hì nh 3.38 Khai báo danh sách lưu trữ thông tin maNhaCC, tenNhaCC, sdt, expected 74 phương thức readExcel 75 Hình 3.39 Khai báo danh sách lưu trữ thơng tin maNhaCC, tenNhaCC, sdt, expected phương thức readExcel Hình 3.40 Lấy thơng báo 76 Hình 3.41 Phương thức ghi kêt vào file TestCaseAddPublisher.xlsx Hình 3.42 Phương thức Test chức Thêm nhà cung cấp - Kết test chức Thêm Nhà cung cấp : 77 Hình 3.43 Kết test Hình 3.44 Bảng kết test chức Thêm Nhà cung cấp 78 Hình 3.45 Kết chương trình nhập sau chạy test 3.3.3Nhận xét - Tỷ lệ thành công : 100% (đúng theo mong đợi) Sau thực kiểm thử, chạy chương trình nhận thấy nhập thành công lần (theo kết mong đợi có lần), xác nhận chương trình có lỗi Cần thơng báo chỉnh sửa lại chương trình Phần kết luận vấn đề giải hạn chế gặp ơhải hướng phát chiển (trong phần nói junit có tihêm phần so sánh với số cơng cụ khác ví dụ selenium manh sele ni um kiểm thử web junut đa ngơn ngữ “đa tảng”) 79