CHƯƠNG 1: MÔ TẢ BÀI TOÁN 1. Tổng quan về công ty TNHH FPT Tên chính thức: Công ty TNHH Phần mềm FPT Hiện diện trên 10 quốc gia: Việt Nam, Nhật Bản, Mỹ, Pháp, Đức, Singapore, Malaysia, … Dịch vụ: phát triển phần mềm và bảo trì, triển khai ERP, đảm bảo chất lượng, chuyển đổi ứng dụng, hệ thống nhúng, … Chứng chỉ chất lượng hàng đầu: ISO 27001:2005 Giải thưởng: ➢ “Top 100 nhà cung cấp dịch vụ phần mềm toàn cầu” ➢ Top 2 nơi làm việc tốt nhất Việt Nam – hạng mục các công ty IT - Phần mềm (theo kết quả khảo sát của Anphabe và Neilsen Việt Nam). Nghiên cứu và phát triển: Các xu hướng công nghệ mới của thế giới như Mobility, Điện toán đám mây, Big Data & Security. Khách hàng và Đối tác: Hàng trăm khách hàng và đối tác là những tập đoàn hàng đầu thế giới: IBM, Oracle, Cisco, Microsoft, Hitachi, Canon, Panasonic, Toshiba, Sony, … Lĩnh vực: Tài chính ngân hàng, Viễn thông, Y tế, Chế tạo, Công nghiệp xe hơi, Dịch vụ công, … 1.
Xác định yêu cầu bài toán CJ CGV trực thuộc CJ Group, một trong những tập đoàn kinh tế đa ngành lớn nhất của Hàn Quốc có mặt ở 21 quốc gia trên thế giới. CJ CGV là một trong top 5 cụm rạp chiếu phim lớn nhất toàn cầu và là nhà phát hành, cụm rạp chiếu phim lớn nhất Việt Nam. Mục tiêu của CJ CGV là trở thành hình mẫu công ty điển hình đóng góp cho sự phát triển không ngừng của ngành công nghiệp điện ảnh Việt Nam. CJ CGV đã tạo nên khái niệm độc đáo về việc chuyển đổi rạp chiếu phim truyền thống thành tổ hợp văn hóa “Cultureplex”, nơi khán giả không chỉ đến thưởng thức điện ảnh đa dạng thông qua các công nghệ tiên tiến như IMAX, Đỗ Thị Hồng Phượng - K16HTTTA 3 Khoá luận tốt nghiệp Nghiên cứu kiểm thử phần mềm vào ứng dụng Web CGV STARIUM, 4DX, Dolby Atmos, cũng như thưởng thức ẩm thực hoàn toàn mới và khác biệt trong khi trải nghiệm dịch vụ chất lượng nhất tại CGV.
Với chiến lược đẩy mạnh thị trường phù hợp với sự phát triển nhanh chóng của công nghệ và internet. CJ CGV trong 2 năm gần đây đã hợp tác cùng FPT Software để hoàn thiện, nâng cấp trang web: http://cgv. Với các chức năng chính: Đăng kí, đăng nhập, xem lịch chiếu trực tuyến, thông tin phim, ngày chiếu và các cụm rạp của CGV trên tòan quốc, quảng cáo… CJ CGV mong muốn sẽ có một trang mạng đáp ứng tất cả các chức năng đó và giúp CGV cạnh tranh được với các đối thử cùng lĩnh vực, thu hút thêm được nhiều khách hàng tiềm năng hơn nữa trong tương lai. Mới đây, FPT Software đang tiến hành xây dựng thêm một chức năng nữa trên trang web trực tuyến của CGV đó là: Thanh toán trực tuyến.
Trong quá trình thiết kế và xây dựng, đội kiếm thử có nhiệm vụ kiểm tra, thực hiện các kịch bản kiểm thử và đưa ra báo cáo về việc hoạt động của các chức năng còn lại khi chức năng Thanh toán trực tuyến đưa vào hoạt động trên trang web của CGV. Trong quá trình thực tập, tôi được phân công đảm nhận kiểm thử cho giao diện và kiểm thử chức năng hai trang chính là: đăng nhập và đăng kí. Đỗ Thị Hồng Phượng - K16HTTTA 4 Khoá luận tốt nghiệp Nghiên cứu kiểm thử phần mềm vào ứng dụng Web CGV CHƯƠNG 2: CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM 2. Tổng quan về kiểm thử phần mềm 2.
Các khái niệm cơ bản: 2. Phần mềm là gì? Định nghĩa theo IEEE: Phần mềm là các chương trình máy tính, các thủ tục, các tài liệu có liên quan và các dữ liệu để vận hành một hệ thống máy tính [1]. Quy trình phát triển phần mềm Là một tập hợp các hoạt động có mục tiêu nhằm phát triển và tiến hóa phần mềm. Các tổ chức khác nhau có những tiến trình khác nhau.
Tuy nhiên có 4 hoạt động chung nhất [2]: ➢ Đặc tả: xác định yêu cầu, là tiến trình tìm hiểu và định ra các dịch vụ, chức năng được đòi hỏi từ hệ thống và xác định các ràng buộc lên vận hành và phát triển hệ thống. Các pha chính trong tiến trình phát triển phần mềm đó là: • Nghiên cứu khả thi: Giúp xác định những yêu cầu của người sử dụng có thỏa mãn những công nghệ hiện tại không. Về góc độ kinh doanh, nghiên cứu khả thi nhằm xác định hệ thống đưa ra có mang lại lợi nhuận không. Việc nghiên cứu khả thi nên được thực hiện một cách nhanh chóng và không quá tốn kém.
Kết quả của việc nghiên cứu khả thi sẽ xác định có nên tiếp tục xây dựng hệ thống nữa hay không. • Phân tích yêu cầu: Đưa ra các yêu cầu hệ thống thông qua một số phương pháp như: quan sát hệ thống hiện tại, phỏng vấn và thảo luận với người sử dụng, phân tích nhiệm vụ, phân tích tài liệu hoặc hệ thống cũ, .Trong pha này, chúng ta có thể phải xây dựng một hoặc nhiều mô hình hệ thống và các mẫu thử. • Đặc tả yêu cầu: sẽ tư liệu hóa những thông tin thu thập được. Có hai loại yêu cầu cần xác định: - Một là yêu cầu của người sử dụng: là những yêu cầu bằng ngôn ngữ Đỗ Thị Hồng Phượng - K16HTTTA 5 Khoá luận tốt nghiệp Nghiên cứu kiểm thử phần mềm vào ứng dụng Web CGV tự nhiên bổ sung thêm cho các biểu đồ của các dịch vụ mà hệ thống cung cấp và các ràng buộc vận hành của nó.
- Hai là yêu cầu hệ thống: Là những tài liệu có cấu trúc mô tả chi tiết về các chức năng, dịch vụ và các ràng buộc vận hành của hệ thống. • Đánh giá yêu cầu: Pha này sẽ kiểm tra lại các yêu cầu xem chúng có đúng thực tế không, có thống nhất không, có đầy đủ không. Nếu phát hiện ra lỗi thì ta phải chỉnh sửa các lỗi này. ➢ Phát triển phần mềm: Là tiến trình chuyển đổi các đặc tả thành một hệ thống có thể chạy được trên máy tính, thường bao gồm tiến trình thiết kế và lập trình phần mềm.
Trong đó: • Thiết kế (Design): Dịch các yêu cầu thành bản thiết kế (Kiến trúc, dữ liệu, thủ tục xử lý, giao diện). Hoạt động thiết kế bao gồm những công việc chính sau: - Thiết kế kiến trúc: Các hệ thống con cấu thành nên hệ thống cần xây dựng và mối qua hệ giữa chúng được xác định và tư liệu hóa. - Đặc tả trừu tượng: Với mõi hệ thống con phải có một bản đặc tả về các dịch vụ của nó và những ràng buộc khi nó vận hành. - Thiết kế giao diện: Với mỗi hệ thống con các giao diện của nó với những hệ thống con khác phải được thiết kế và tư liệu hóa.
• Mã hóa (Coding): Các lập trình viên chuyển thiết kế thành chương trình máy tính trong một ngôn ngữ lập trình và thực hiện một kiểm định nào đó về đoạn mã mà họ đã phát triển. ➢ Phê duyệt phần mềm: Phần mềm được đánh giá và kiểm định để đảm bảo phù hợp với đặc tả về nó và đáp ứng các yêu cầu của khách hàng. Quy trình kiểm thử gồm các giai đoạn sau: • Kiểm thử thành phần: Các thành phần riêng biệt được kiểm định để đmả bảo rằng chúng vận hành đúng đắn. Mỗi thành phần được kiểm định độc lập, không có các thành phần khác.
• Kiểm định hệ thống: Các thành phần được tích hợp thành hệ thống. Đỗ Thị Hồng Phượng - K16HTTTA 6 Khoá luận tốt nghiệp Nghiên cứu kiểm thử phần mềm vào ứng dụng Web CGV Tiến trình này đề cập đề cập đến việc tìm ra các sai sót dẫn đến từ các tương tác không đoán trước được giữa các thành phần và các vấn đề tương tác thành phần. • Kiểm định chấp nhận: Hệ thống được kiểm định với các dữ liệu được cung cấp bởi khách hàng. • Kiểm thử hồi quy: Khi hệ thống đi vào vận hành, hoặc thêm chức năng mới, kiểm thử hồi quy lúc này mang tính bảo trì có nghĩa là kiểm thử lại các chức năng đã kiểm thử trước đó.
➢ Nâng cấp, phát triển phần mềm: Đề cập đến sự sửa đổi các hệ thống phần mềm hiện đang tồn tại để đáp ứng các yêu cầu mới. Điều này đang trở thành phương pháp thông thường trong phát triển phần mềm đối với các hệ thống cỡ nhỏ và trung bình [2]. Lỗi phần mềm Có rất nhiều định nghĩa về lỗi phần mềm, nhưng định nghĩa một cách đơn giản thì lỗi phần mềm là sự không khớp giữa chương trình và đặc tả của nó – “A software error occurs when the program does not do what its end user reasonably expects it to do. Dựa vào định nghĩa, ta có thể phân loại lỗi phần mềm thành 3 dạng: Lỗi sai: Sản phẩm phần mềm được xây dựng khác với đặc tả.
Lỗi thiếu: Các yêu cầu của sản phẩm phần mềm đã có trong đặc tả nhưng lại không có trong sản phẩm thực tế. Lỗi thừa: Sản phẩm thực tế có những tính năng không có trong tài liệu đặc tả. ➢ Một lỗi phần mềm xuất hiện khi một trong 5 quy tắc sau xuất hiện: [4] • Phần mềm không thực hiện một số yêu cầu giống như mô tả trong bản đặc tả. • Phần mềm thực hiện một số việc mà bản đăc tả yêu cầu nó không được thực hiện.
• Phần mềm thực hiện một số chức năng mà bản đặc tả không đề cập tới. Đỗ Thị Hồng Phượng - K16HTTTA 7 Khoá luận tốt nghiệp Nghiên cứu kiểm thử phần mềm vào ứng dụng Web CGV • Phần mềm không thực hiện một số việc mà bản đặc tả không đề cập tới, nhưng là những việc nên làm. • Trong con mắt của kiểm thử viên, phần mềm là khó hiểu, khó sử dụng, chậm đối với người sử dụng. Kiểm thử phần mềm là gì? Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó [1].
“Testing is the process of executing a program with the intent of finding errors. 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 lỗi. Có thể định nghĩa một cách dễ hiểu: Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định xem phần mềm có đúng với đặc tả không và thực hiện trong môi trường như mong đợi hay không. Mục tiêu chính của kiểm thử phần mềm Kiểm thử phần mềm mang những mục tiêu chính như sau: ➢ Phát hiện càng được nhiều lỗi càng tốt trong thời gian kiểm thử xác định trước.