CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HOẠT ĐỘNG KIỂM THỬ PHẦN MỀM QUẢN LÝ QUAN HỆ KHÁCH HÀNG NINACRM CỦA CÔNG TY TNHH NINASOFT 1.1 Những khái niệm cơ bản về kiểm thử phần mềm 1.1 Phần mềm a) Khái niệm về phần mềm Phần mềm máy tính (Computer Software) hay còn gọi là phần mềm (Softwtare): là một tập hợp những câu lệnh hoặc chỉ thị được viết bằng một hay nhiều ngôn ngữ lập trình theo một trật tự xác định nào đó, và các dữ liệu hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ, chức năng hoặc là giải quyết một vấn đề cụ thể nào đó. Phần mềm thực hiện các chức năng của nó bằng cách gửi các chỉ thị trực tiếp đến phần cứng hay phần cứng máy tính hoặc bằng cách cung cấp các dữ liệu để phục vụ các chương trình hay phần mềm khác. Phần mềm là một khái niệm trừu tượng, nó khác phần cứng ở chỗ là “phần mềm không thể sờ hay đụng vào”, và nó cần phải có phần cứng máy tính mới có thể thực thi được. b) Quy trình xây dựng phần mềm Quy trình xây dựng phần mềm là một trong những yếu tố cực kỳ quan trọng đem lại thành công cho các nhà sản xuất phần mềm nói chung và cho công ty TNHH Ninasoft nói riêng, nó giúp cho mọi thành viên trong dự án từ người mới, người ngoài công ty hay trong công ty đề có thể xử lý, đồng bộ và nắm bắt được công việc của mình trong dự án.
Có thể nói quy trình xây dựng phần mềm có tính chất quyết định để tạo ra sản phẩm phần mềm có chất lượng tốt, với chi phí thấp và năng suất cao. Quy trình có thể hiểu là phương pháp thực hiện hoặc sản xuất ra sản phẩm. Tương tự như vậy thì quy trình xây dựng phần mềm chính là phương pháp phát triển hay sản xuất ra phần mềm. Thực tế, công ty TNHH Ninasoft đã áp dụng quy trình xây dựng phần mềm bao gồm các giai đoạn sau: 4 Hình 1.1: Quy trình xây dựng phần mềm (Nguồn: Tài liệu kiểm thử phần mềm công ty TNHH Ninasoft) - Phân tích yêu cầu và tài liệu đặc tả (Requirements): thực hiện khảo sát và phân tích yêu cầu của khách hàng sau đó tiến hành tổng hợp lại trong tài liệu giải pháp.
Tài liệu giải pháp miêu tả đầy đủ các yêu cầu về chức năng, phi chức năng và giao diện cần đáp ứng. Đầu ra của giai đoạn này là tài liệu đặc tả yêu cầu và bản thiết kế mẫu. - Thiết kế (Design): giai đoạn này sẽ dựa vào tài liệu đặc tả yêu cầu và bản thiết kế mẫu để đưa ra được một bản thiết kế tổng thể, thiết kế chi tiết từng chức năng và thiết kế phần CSDL của phần mềm. - Lập trình (Coding): lập trình viên thực hiện lập trình dựa trên tài liệu giải pháp và bản thiết kế đã được phê duyệt.
- Kiểm thử (Testing): nhân viên kiểm thử sẽ tạo ra các kịch bản kiểm thử (testcase) dựa trên tài liệu đặc tả yêu cầu sau đó sẽ tiến hành kiểm thử dựa trên kịch bản đã viết và cập nhật kết quả thu được vào kịch bản kiểm thử. Trong quá trình kiểm thử khi phát hiện ra lỗi sẽ log bug lên hệ thống quản lý lỗi. Tester và lập trình viên (Developer) sẽ phối hợp xử lý lỗi và cập nhật lên hệ thống quán lý lỗi. Giai đoạn này nhằm đảm bảo cho phần mềm sản xuất ra đáp ứng được những yêu cầu được chỉ ra trong tài liệu đặc tả yêu cầu.
5 - Triển khai (Release): nhiệm vụ của giai đoạn này là tiến hành triển khai sản phẩm cho khách hàng.2 Kiểm thử phần mềm a) Khái niệm kiểm thử phần mềm Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm ra lỗi. Kiểm thử phần mềm đảm bảo sản phẩm phần mềm được làm ra đáp ứng được đầy đue, chính xác và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra. Kiểm thử phần mềm cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm, điều này cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. Kiểm thử phần mềm tạo điều kiện để tận dụng tối đa tư duy đánh giá và sáng tạo, tạo điều kiện để có thể phát hiện ra được những điều mà người khác chưa nhìn thấy.
Kiểm thử phần mềm nhằm đánh giá chất lượng hay tính chấp nhận được của một sản phẩm phần mềm. Kiểm thử sinh ra nhằm mục đích phát hiện ra lỗi hoặc là bất cứ vấn đề trục trặc nào của phần mềm. b) Ca kiểm thử (Testcase) Ca kiểm thử mô tả dữ liệu đầu vào, hành động và một kết quả mong đợi nào đó để xác định một chức năng của ứng dụng phần mềm có hoạt động đúng hay không. Một testcase gồm có mã testcase, tên testcase, mục tiêu test, các bước thực hiện, kết quả mong đợi và kết quả thực tế.
Các ca kiểm thử đóng vai trò quan trọng trong việc kiểm thử dựa vào phân tích động. Quy trình kiểm thử dựa trên phân tích động bao gồm các bước: lập kế hoạch kiểm thử, phát triển ca kiểm thử, tiến hành kiểm thử dựa trên các ca kiểm thử và đánh giá kết quả kiểm thử. Thông tin về một ca kiểm thử tiêu biểu sẽ thể hiện được chúng được thực hiện bởi ai, được thực hiện khi nào và kết quả cuẩ mỗi lần thực hiện ra sao, thành công hay thất bại, nó được thực hiện trên trình duyệt nào và thực hiện ở phiên bản nào của phần mềm. Đối với các ca kiểm thử về giao diện của người dùng, ngoài thông tin đầu vào thì cũng cần phải bổ sung thêm trình tự các bước thực hiện.
Mục tiêu thiết kế ca kiểm thử nhằm: - Tìm ra lỗi và sai sót của phần mềm một cách nhiều nhất. - Tạo ra được các ca kiểm thử có chi phí rẻ nhất, tốn ít thời gian và công sức nhất. c) Kế hoạch kiểm thử (Test plan) Một kế hoạch kiểm thử dự án phần mềm là một tài liệu mô tả các mục tiêu, phạm vi, phương pháp tiếp cận, quy trình kiểm thử, các công cụ, môi trường dùng để kiểm thử, tài nguyên và nhân lực cần có. Test plan là cơ sở để tiến hành kiểm thử một phần 6 mềm.
Quá trình chuẩn bị test plan là một cách hữu ích để con người ta suy nghĩ tới những nỗ lực cần thiết để tạo ra chất lượng của một sản phẩm phần mềm. Cấu trúc của một test plan bao gồm: tên dự án, danh sách các module cần test, ngày bắt đầu, ngày kết thúc test, danh sách các testcase, nhân sự tham gia, tài nguyên sử dụng và kế hoạch kiểm thử. Test plan đóng vai trò là một kế hoạch chi tiết để tiến hành các hoạt động kiểm thử phần mềm được quản lý và kiểm soát rõ ràng bởi Test Leader. Test plan giúp cho những người không thuộc nhóm kiểm thử, ví dụ như các nhà phát triển, khách hàng hay các nhà quản lý kinh doanh có thể dễ dàng theo dõi và hiểu được chi tiết về quá trình kiểm thử.
d) Vai trò của kiểm thử phần mềm trong hoạt động xây dựng phần mềm Xây dựng phần mềm và kiểm thử phần mềm có mối quan hệ khăng khít với nhau. Ngay từ những giai đoạn đầu tiên của kiểm thử phần mềm như phân tích yêu cầu, phân tích thiết kế,. đã phải được tiến hành kiểm thử một cách độc lập bởi một đội ngũ kiểm thử có kinh nghiệm để nếu có phát hiện sai sót thì tiến hành sửa chữa kịp thời, càng về các giai đoạn sau mới phát hiện ra lỗi thì chi phí sữa lỗi lúc đó sẽ càng nhiều và càng mất thời gian. Vì vậy, không thể chủ quan lơ là việc kiểm thử mà phải tiến hành ngay từ những giai đoạn đầu tiên để có thể chỉnh sửa lỗi càng sớm càng tốt, tránh cho việc đến gần giai đoạn cuối mới phát hiện ra lỗi và phải quay lại sửa từ đầu.
Điều này là một minh chứng cho thấy vai trò của kiểm thử phần mềm là cực kỳ quan trọng trong hoạt động xây dựng phần mềm.2 Một số lý thuyết về xây dựng ca kiểm thử 1.1 Các phương pháp kiểm thử Kiểm thử phần mềm là công việc nhằm đảm bảo hoạt động của phần mềm ứng dụng vừa được phát triển. Việc kiểm thử phần mềm được thực hiện tùy theo khả năng, kinh nghiệm mà người thực hiện kiểm thử phần mềm để áp dụng phương pháp kiểm thứ phù hợp. Có 3 phương pháp kiểm thử cơ bản đó là: Phương pháp kiểm thử hộp trắng (White box testing), phương pháp kiểm thử hộp đen (Black box testing) và phương pháp kiểm thử hộp xám (Grey box testing). a) Phương pháp kiểm thử hộp trắng (White box testing) 7 Hình 1.2: Phương pháp kiểm thử hộp trắng (Nguồn: Tài liệu kiểm thử phần mềm công ty TNHH Ninasoft) Kiểm thử hộp trắng còn có tên gọi khác đó là kiểm thử cấu trúc, nó được biết đến như là là một kỹ thuật kiểm thử nhằm kiểm tra cấu trúc bên trong của phần mềm, giúp kiểm tra được cấu trúc nội bộ hoặc là hoạt động bên trong của một chương trình phần mềm như là các câu lệnh, các cấu trúc dữ liệu, các khối,.
và mối quan hệ giữa chúng. Trong kiểm thử hộp trắng phần mềm được kiểm thử được coi như là một chiếc hộp trắng (thực chất là hợp trong suốt), các thành phần, đơn vị bên trong chương trình sẽ được nhìn thấy cùng với các mối tương tác giữa chúng. Kiểm thử hộp trắng được hướng tới việc xem xét kỹ về chi tiết thủ tục. Với kiểm thử hộp trắng thì cấu trúc mã hoặc là thuật toán của chương trình sẽ được đưa vào để xem xét.
Việc kiểm tra được thực hiện thông qua việc quan sát kết quả thực thi các đơn vị đó và mối quan hệ với các đơn vị định trước. Vì thế mà các trường hợp kiểm thử sẽ được thiết kế dựa vào cấu trúc mã hoặc cách thức làm việc của chương trình. Người kiểm thử sẽ truy cập vào mã nguồn của chương trình và có thể dễ dàng kiểm tra được nó, lấy nó làm cơ sở để hỗ trợ cho việc kiểm thử. Các kỹ thuật được sử dụng trong kiểm thử hộp trắng bao gồm: - Kiểm thử API (API Testing): Kiểm thử ứng dụng bằng cách sử dụng các hàm API public và private.