Quy trình kiểm thử Thực tập cơ sở ngành Đính kèm biểu mẫu testcase Vai trò kiểm thử Kỹ thuật loại hình và các cấp độ kiểm thử Cách thiết kế một kịch bản kiểm thử Quá trình thực hiện kịch bản kiểm thử Những người thực hiện kiểm thử, vai trò từng người Các tài liệu kiểm thử.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BÁO CÁO THÍ NGHIỆM HỌC PHẦN THỰC TẬP CƠ SỞ NGÀNH KỸ THUẬT PHẦN MỀM CHỦ ĐỀ: NGHIÊN CỨU VỀ KIỂM THỬ PHẦN MỀM TẠI CƠNG TY FSOFT GVHD:Th.S Vũ Thị Dương Nhóm 3: Đoàn Hải Quân Đinh Phương Nam Nguyễn Hải Nam Mạch Văn Quân Trần Minh Quang Phần 1: Phần mở đầu I Lời nói đầu Ngày cơng nghệ thơng tin ngày phát triển nhanh chóng, kéo theo hệ thống mạng phần mềm gia tăng số lượng theo quy mô rộng chất lượng phần mềm theo chiều sâu 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 không kiểm duyệt kĩ lưỡng trước đưa cho người dùng cuối hay có người 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 làm tê liệt nhiều hệ thống phần mềm phần cứng Nhận thấy “ Kiểm thử phần mềm sản xuất phần mềm” quy trình quan trọng nên chúng em chọn đề tài để tìm hiểu Để hồn thành tốt đề tài chúng em xin gửi lời cảm ơn chân thành đến cô Ths.Vũ Thị Dương – giảng viên môn Thực tập sở ngành , Khoa Công nghệ thông tin ,trường Đại Học Công Nghiệp Hà Nội, định hướng, hướng dẫn bảo tận tình trình chúng em làm báo cáo thực tập Em xin chúc cô gia đình ln ln mạnh khỏe hạnh phúc Tuy nhiên, thời gian trình độ có hạn nên báo cáo khơng thể tránh khỏi thiếu sót Chính vậy, em mong có góp ý từ giáo tồn thể bạn II Mô tả chủ đề nghiên cứu a Quá trình nghiên cứu chia làm giai đoạn : Giai đoạn : Tự nghiên cứu tổng quan kiểm thử phần mềm Giai đoạn : Tìm hiểu kiểm thử phần mềm công ty FSOFT b Lý nghiên cứu : Nhận thấy kiểm thử phần mềm ngành quan trọng sản xuất phần mềm.Hiện thị trường có nhiều phần mềm chưa hoàn toàn đạt tiêu chuẩn xuất tràn lan thị trườ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 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ịn 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 va thật xác phù hợp cho 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 40% 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í em lựa chọn đề tài để nghiên cứu, tìm hiểu đề giải pháp để cải tiến quy trình kiểm thử cho có suất cao c Mục tiêu cần đạt được • • Hiểu tổng quan kiểm thử phần mềm tầm quan trọng sản xuất phần mềm Vượt lên thân tìm hiểu q trình kiểm thử cơng ty FSOFT + Quy trình,mơ hình cấp độ kế hoạch kiểm thử + Quá trình thực + Yêu cầu khách hàng Xin tài liệu kiểm thử công ty để tham khảo Khó khăn thách thức ngành kiểm thử phần mềm + • Phần 2: Nghiên cứu về quy trình kiểm thử phần mềm Software testing life cycle( STLC) công ty Fsoft I Giai đoạn I : ( Tự nghiên cứu) Tổng quan về kiểm thử phần mềm Khái niệm Kiểm thử phần mềm hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm đúng môi trường chúng dự định triển khai nhằm cung cấp cho người có lợi ích liên quan thông tin chất lượng sản phẩm hay dịch vụ phần mềm Mục đích kiểm thử phần mềm tìm lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu hoạt động tối ưu phần mềm nhiều ngành khác (Wikipedia) Software testing kĩ thuật phần mềm “ xác minh xác nhận “ (verification and validation hay gọi tắt V&V) Ví dụ : Trong phần mềm chơi game Monopoly, chúng ta xác minh hai người choi sở hữu nhà Validationis trình đánh giá hệ thống thành phần cuối q trình phát triển để xác định xem đáp ứng yêu cầu quy định Vai trò của kiểm thử phần mềm Việc tạo sản phẩm phần mềm phải trải qua nhiều giai đoạn ,người ta gọi qui trình phát triển phần mềm, có ý tưởng đưa sản phẩm có nhiều giai đoạn thay đổi theo thời gian Ví dụ : Hình 1.1 Một sản phẩm phần mềm không đơn giản đoạn mã chương trình mà cịn nhiều phần ẩn đằng sau ( Hình 1.1) Vì vậy, việc mắc lỗi khơng xảy lập trình mà cịn xảy cao công đoạn khác qui trình phát triển sản phẩm phần mềm Quy trình kiểm thử có liên kết chặt chẽ với q trình xây dựng phần mềm • Cải thiện phần mềm của bạn Vai trò kiểm thử phát triển phần mềm bắt đầu với việc cải thiện độ tin cậy, chất lượng hiệu suất phần mềm Nó hỗ trợ nhà phát triển kiểm tra xem phần mềm có hoạt động đúng cách hay khơng đảm bảo phần mềm không thực khơng phép làm • Đảm bảo chất lượng Chất lượng đóng vai trị quan trọng giới cạnh tranh ngày Kiểm tra cần thiết để làm cho phần mềm khơng có lỗi Những khiếm khuyết xác định sửa chữa • Giúp tránh các tình nguy hiểm Kiểm thử phần mềm tốt hiệu giúp cải thiện tính bảo mật Xác thực xác nhận mục đích dịch vụ kiểm thử phần mềm Về bản, kiểm thử phần mềm không giúp phát khiếm khuyết phần mềm mà cịn cấu hình Thơng qua thử nghiệm, nhà phát triển xác định độ tin cậy phần mềm Những kỹ thuật , loại hình và các cấp độ của phương pháp kiểm thử 3.2 Mức độ kiểm tra phần mềm 3.1.1 Unit Testing ( Kiểm thử đơn vị) Dùng để test đoạn code, thường làm developer Các ứng dụng phần mềm bao gồm khối mã khác (mơ-đun, quy trình, thủ tục, chức năng, lệnh gọi, v.v.) khối gọi đơn vị Đây cấp độ thử nghiệm thường thực nhà phát triển Mỗi đơn vị thực chức nhiệm vụ riêng cụ thể Kiểm thử đơn vị kiểm tra đơn vị cách độc lập để đảm bảo thực nhiệm vụ chức định Kiểm thử đơn vị có hai loại : Kiểm thử thủ công kiểm thử tự động Kiểm thử đơn vị thường tự động hóa thực theo cách thủ công Kỹ thuật phần mềm không ưu tiên tự động hóa ưu tiên Cách tiếp cận thủ cơng để kiểm tra đơn vị sử dụng tài liệu hướng dẫn bước Ví dụ : Điện thoại di động có số ứng dụng hệ thống người dùng (chẳng hạn quay số điện thoại, trình quản lý tệp, tin nhắn, máy ảnh, lưu khơi phục, danh bạ, tải xuống, trình quản lý lưu trữ, facelock, vân tay, v.v Mỗi ứng dụng đơn vị tự kiểm tra độc lập với Ưu điểm : Kiểm thử đơn vị cho phép lập trình viên cấu trúc lại mã vào ngày sau đảm bảo mơ-đun hoạt động xác (tức Kiểm tra hồi quy) Thủ tục viết trường hợp kiểm thử cho tất chức phương pháp để thay đổi gây lỗi, xác định sửa chữa nhanh chóng Do tính chất mơ-đun kiểm thử đơn vị, chúng tơi kiểm tra phần dự án mà không cần đợi người khác hồn thành Nhược điểm : Kiểm thử đơn vị khơng thể mong đợi để bắt lỗi chương trình Khơng thể đánh giá tất đường dẫn thực thi chương trình tầm thường Bản chất kiểm thử đơn vị tập trung vào đơn vị mã Do đó, khơng thể bắt lỗi tích hợp lỗi cấp hệ thống rộng 3.1.2 Integration Testing (Kiểm thử tích hợp) Kiểm thử tích hợp, bao gồm nhiều Module, test chức năng, class khác có liên quan đến Các phương pháp chiến lược : + Cách tiếp cận Big Bang: + Phương pháp tiếp cận gia tăng: chia thành nhiều cách sau - Phương pháp tiếp cận từ xuống - Phương pháp tiếp cận từ lên - Phương pháp tiếp cận Sandwich - Kết hợp Từ xuống Từ lên Ví Dụ : Kiểm thử tích hợp từ lên : Trong ví dụ điện thoại di động chúng trên, ứng dụng máy ảnh tích hợp với trình quản lý nhớ Điều máy ảnh sử dụng (để chụp ảnh quay video), đầu phải lưu trữ phương tiện lưu trữ (có thể nhớ nhớ ngoài) Kiểm tra tích hợp đảm bảo điều xảy Ví dụ : Đơn vị camera tích hợp thành cơng với trình quản lý lưu trữ 3.1.3 System Testing (Kiểm thử hệ thống ) Kiểm tra hệ thống kết hợp nhiều đơn vị khác tích hợp với để thực chức nhiệm vụ Kiểm tra hệ thống đảm bảo tất đơn vị tích hợp hồn tồn hoạt động một, đáp ứng yêu cầu thiết kế Có 50 loại kiểm thử hệ thống với số loại thông dụng công ty lớn : Kiểm tra khả sử dụng chủ yếu tập trung vào việc người dùng dễ dàng sử dụng ứng dụng, tính linh hoạt việc xử lý điều khiển khả hệ thống để đáp ứng mục tiêu Kiểm tra tải cần thiết để biết giải pháp phần mềm hoạt động tải đời thực Kiểm tra hồi quy liên quan đến việc kiểm tra thực để đảm bảo khơng có thay đổi thực suốt trình phát triển gây lỗi Nó đảm bảo khơng có lỗi cũ xuất từ việc bổ sung mô-đun phần mềm theo thời gian Kiểm tra khôi phục thực để chứng minh giải pháp phần mềm đáng tin cậy, đáng tin cậy khơi phục thành cơng từ cố xảy Kiểm thử di chuyển thực để đảm bảo phần mềm di chuyển từ sở hạ tầng hệ thống cũ sang sở hạ tầng hệ thống mà không gặp cố Kiểm tra chức gọi kiểm tra tính hồn chỉnh chức năng, Kiểm tra chức liên quan đến việc cố gắng nghĩ chức bị thiếu Người kiểm tra lập danh sách chức bổ sung mà sản phẩm phải cải thiện trình kiểm tra chức Kiểm thử Phần cứng / Phần mềm - IBM gọi kiểm thử Phần cứng / Phần mềm "Kiểm tra HW / SW" Đây lúc người kiểm tra tập trung chú ý vào tương tác phần cứng phần mềm trình kiểm tra hệ thống Ví dụ :Sau điện thoại hồn chỉnh, kiểm tra tổng thể để xem hoạt động tốt với phận riêng lẻ 3.1.4 Functional testing ( Kiểm thử chức năng) Ở cấp độ phát triển phần mềm này, kiểm tra để chấp nhận nội (bởi người không trực tiếp tham gia thiết kế phát triển (thử nghiệm Alpha) bên ngồi nhóm người dùng cuối chọn (thử nghiệm Beta).Đây giai đoạn cuối thử nghiệm chức sử dụng để kiểm tra xem phần mềm sẵn sàng để sử dụng hay chưa Sản phẩm phải kiểm tra để tuân thủ tiêu chí kinh doanh đáp ứng nhu cầu người dùng cuối Các bước thực : • Hiểu yêu cầu chức • Xác định đầu vào kiểm tra liệu kiểm tra dựa u cầu • Tính tốn kết mong đợi với giá trị đầu vào thử nghiệm chọn • Thực thi trường hợp thử nghiệm • So sánh kết dự kiến thực tế tính toán 3.2 Các loại kiểm thử phần mềm 3.2.1 Usability testing Người dùng yếu tố quan trọng phát triển phần mềm Bài kiểm tra kiểm tra yếu tố người giao diện người dùng đồng ý với người dùng cuối Có vẻ quy trình bước cần thiết để thực nhiệm vụ phân tích mức độ hiệu quả, trực quan dễ dàng bước Quy trình kiểm tra khả sử dụng bao gồm giai đoạn sau : Lập kế hoạch : Trong giai đoạn này, mục tiêu kiểm tra khả sử dụng xác định Tuyển dụng : Trong giai đoạn này, bạn tuyển dụng số lượng người thử nghiệm mong muốn theo kế hoạch kiểm tra khả sử dụng bạn Kiểm tra khả sử dụng : Trong giai đoạn này, kiểm tra khả sử dụng thực thực 10 Phân tích liệu : Dữ liệu từ kiểm tra khả sử dụng phân tích kỹ lưỡng để đưa suy luận có ý nghĩa đưa đề xuất hữu ích để cải thiện khả sử dụng tổng thể sản phẩm bạn Báo cáo : Kết kiểm tra khả sử dụng chia sẻ với tất bên liên quan có liên quan bao gồm nhà thiết kế, nhà phát triển, khách hàng Giám đốc điều hành Có hai phương pháp có sẵn để thực kiểm tra khả sử dụng : + Kiểm tra khả sử dụng phòng thí nghiệm : Thử nghiệm thực phịng thí nghiệm riêng biệt với chứng kiến quan sát viên Người kiểm tra giao nhiệm vụ để thực + Kiểm tra khả sử dụng từ xa : Theo thử nghiệm này, người quan sát người kiểm tra định vị từ xa Người kiểm tra truy cập Hệ thống Kiểm tra, từ xa thực nhiệm vụ giao Ví dụ: Giả sử người dùng sử dụng camera phone lần hệ thống hỏi nơi lưu tệp (bộ nhớ nhớ ngoài) Điều coi khơng hiệu Thay vào đó, người dùng đặt vị trí lưu trữ mặc định sử dụng máy ảnh 3.2.2 Smoke/sanity Phương thức thử nghiệm đặt tên lần bật thiết bị điện thiết kế nhà máy thiết kế hy vọng khơng bốc khói Kiểm tra khói kiểm tra nhẹ hầu hết thành phần chính, đặc biệt chú ý đến việc tích hợp thích hợp Nếu thử nghiệm thơng qua, sản phẩm tiếp tục thử nghiệm thêm Kiểm tra khói thường thực thủ cơng có khả hồn thành tương tự thơng qua tự động hóa Nó khác tổ chức Chu kì kiểm thử khói : Lưu đồ bên cho thấy cách Kiểm tra khói thực Sau dựng triển khai QA kiểm tra khói vượt qua, chúng tơi tiến hành kiểm tra chức Nếu thử nghiệm khói khơng thành cơng, chúng tơi thử nghiệm cố dựng khắc phục 11 3.2.3 Security testing Mọi phần mềm phải chịu trách nhiệm trước công nguy hiểm kẻ xâm nhập Kiểm tra bảo mật tìm kiếm sơ hở, khiếm khuyết lỗ hổng hệ thống khiến phần mềm gặp phải mối đe dọa Có bảy loại kiểm tra bảo mật theo sổ tay phương pháp Kiểm tra bảo mật nguồn mở : • Quét lỗ hổng bảo mật : Điều thực thông qua phần mềm tự động để quét hệ thống chống lại dấu hiệu lỗ hổng biết • Qt bảo mật: Nó liên quan đến việc xác định điểm yếu mạng hệ thống, sau cung cấp giải pháp để giảm rủi ro Q trình qt thực cho quét Thủ công Tự động • Kiểm tra thâm nhập : Loại kiểm tra mô công từ hacker độc hại Thử nghiệm 12 liên quan đến việc phân tích hệ thống cụ thể để kiểm tra lỗ hổng tiềm ẩn nỗ lực cơng bên ngồi • Đánh giá rủi ro: Thử nghiệm liên quan đến việc phân tích rủi ro an ninh quan sát thấy tổ chức Rủi ro phân loại Thấp, Trung bình Cao Thử nghiệm đề xuất biện pháp kiểm sốt giảm thiểu rủi ro • Kiểm tra bảo mật: Đây hoạt động kiểm tra nội Ứng dụng Hệ điều hành để tìm lỗi bảo mật Việc kiểm tra thực thơng qua việc kiểm tra dịng mã • Hack theo đạo đức: Đó hack hệ thống Phần mềm Tổ chức Không giống tin tặc độc hại, kẻ ăn cắp lợi ích riêng mình, mục đích để lộ lỗ hổng bảo mật hệ thống • Đánh giá tư thế: Điều kết hợp quét bảo mật, lấy cắp đạo đức đánh giá rủi ro để hiển thị tư bảo mật tổng thể tổ chức 3.2.4 User Acceptance Testing User Acceptance Testing trình xác nhận phần mềm tạo có hoạt động phù hợp với người dùng cuối hay không Ví dụ: Facebook mắt tính mới, cho phép người dùng Facebook gửi bưu thiếp cho gia đình bạn bè Về mặt, kỹ thuật giải pháp làm việc Tester sử dụng nó, nhiên thiếu quan tâm nhu cầu không muốn gửi bưu thiếp in Kiểm tra chức diễn tốt, kiểm tra khả sử dụng tốt, kiểm tra chấp nhận người dùng thất bại người dùng Facebook khơng có nhu cầu gửi bưu thiếp Facebook 3.2.5 Localization Testing Kiểm thử địa hóa kỹ thuật kiểm thử phần mềm, hành vi phần mềm kiểm tra cho khu vực, ngôn ngữ văn hóa cụ thể Mục đích việc kiểm tra địa hóa cho phần mềm để kiểm tra khía cạnh ngơn ngữ văn hóa thích hợp cho ngơn ngữ cụ thể Đây q trình tùy chỉnh phần mềm theo ngơn ngữ quốc gia nhắm mục tiêu 3.2.6 Globalization Testing 13 Kiểm thử tồn cầu hóa phương pháp kiểm thử phần mềm sử dụng để đảm bảo ứng dụng phần mềm hoạt động văn hóa địa phương (ngơn ngữ, lãnh thổ trang mã) cách kiểm tra chức phần mềm cách sử dụng loại đầu vào quốc tế Mục đích kiểm thử Tồn cầu hóa để đảm bảo phần mềm sử dụng tồn giới quốc tế Nó cịn gọi Kiểm thử quốc tế 3.2.7 Non-functional testing: Kiểm thử phi chức Performance : Điều kiểm tra hiệu suất, khả đáp ứng độ ổn định phần mềm chịu tải định Endurance Loading testing Volume Scalability 3.2.8 Maintenance (Bảo • Regression ( Lặp • 3.3 trì) lặp lại) Maintenance Phương pháp kiểm thử 3.3.1 Thử nghiệm đặc biệt ( Thử nghiệm khỉ thử nghiệm ngẫu nhiên) Một thử nghiệm thực mà khơng có tài liệu kế hoạch cung cấp Nó thường thực cách ngẫu nhiên mà khơng có quy trình ý định xác định trước.Mục đích để xác định lỗi phá 14 vỡ ứng dụng cách thực thi luồng chức ngẫu nhiên.Mặc dù việc xác định khiếm khuyết mà khơng có trường hợp thử nghiệm thách thức bình thường, khiếm khuyết tìm thấy thử nghiệm đặc biệt khơng phát với trường hợp thử nghiệm có Các bước kiểm tra ngẫu nhiên: Đầu vào Ngẫu nhiên xác định để đánh giá dựa hệ thống Đầu vào thử nghiệm chọn độc lập với miền thử nghiệm Kiểm tra thực cách sử dụng đầu vào ngẫu nhiên Ghi lại kết so sánh với kết mong đợi Tái tạo / Nhân vấn đề nêu khiếm khuyết, sửa chữa kiểm tra lại 3.3.2 Thử nghiệm Agile Một thử nghiệm đảm bảo lý tưởng phát triển phần mềm linh hoạt tuân thủ theo Tuyên ngôn họ Các kế hoạch thử nghiệm điển hình Agile bao gồm: Phạm vi thử nghiệm Các chức thử nghiệm Mức độ Các loại thử nghiệm dựa độ phức tạp tính Kiểm tra tải hiệu suất Xem xét sở hạ tầng Kế hoạch giảm thiểu rủi ro Nguồn cung ứng Các sản phẩm giao cột mốc quan trọng 3.3.3 Thử nghiệm hộp đen Dùng để kiểm tra chức mà không xem xét mã nguồn cấu chúc chương trình bên Thường kiểm thử hộp đen quan tâm nhiều đến 15 liệu kiểm thử đầu vào Người kiểm thử hồn tồn khơng quan tâm đến cấu trúc hành vi bên chương trình Người kiểm thử cần quan tâm đến việc tìm tượng mà phần mềm không hành xử theo đúng đặc tả Do đó, liệu kiểm thử xuất phát từ đặc tả Dưới bước chung sau để thực loại Kiểm tra Hộp đen Ban đầu, yêu cầu thông số kỹ thuật hệ thống kiểm tra Tester chọn đầu vào hợp lệ (kịch kiểm tra tích cực) để kiểm tra xem SUT có xử lý chúng cách xác hay khơng Ngồi ra, số đầu vào không hợp lệ (kịch kiểm tra âm tính) chọn để xác minh SUT phát chúng Tester xác định đầu mong đợi cho tất đầu vào Người kiểm thử phần mềm xây dựng trường hợp kiểm thử với đầu vào chọn Các trường hợp thử nghiệm thực thi Người kiểm tra phần mềm so sánh kết đầu thực tế với kết đầu dự kiến Các khiếm khuyết có sửa kiểm tra lại 3.3.4 Thử nghiệm hộp trắng Khác với kiểm thử hộp đen, kiểm thử hộp trắng xem xét module chương trình, luồng thực cơng việc để từ đưa chiến lược kế hoạch cụ thể cho việc kiểm thử Người kiểm thử truy nhập vào mã nguồn chương trình có thểkiểm tra nó, lấy làm sở để hỗ trợ việc kiểm thử Những người kiểm tra làm kiểm tra ứng dụng kỹ thuật kiểm thử hộp trắng: Bước : Hiểu mã nguồn Điều mà người kiểm thử thường làm học hiểu mã nguồn ứng dụng Vì kiểm thử hộp trắng liên quan đến việc kiểm tra hoạt động bên 16 ứng dụng, người kiểm tra phải hiểu biết ngơn ngữ lập trình sử dụng ứng dụng mà họ kiểm tra Bước 2: Tạo trường hợp kiểm tra thực Bước thứ hai để kiểm tra hộp trắng liên quan đến việc kiểm tra mã nguồn ứng dụng cho luồng cấu trúc thích hợp Một cách viết thêm mã để kiểm tra mã nguồn ứng dụng 3.3.5 Thử nghiệm hộp xám Đây kĩ thuật kiểm thử dựa đặc tính kiểm thử hộp đen hộp trắng Mục tiêu kiểm thử hộp xám kiểm thử ứng dụng web (web based) Các bước để thực Kiểm tra hộp xám là: • Bước : Xác định đầu vào • Bước : Xác định kết đầu • Bước : Xác định đường • Bước : Xác định chức • Bước : Phát triển đầu vào cho Hàm • Bước : Phát triển kết đầu cho Hàm • Bước : Thực thi trường hợp kiểm thử cho hàm • Bước : Xác minh kết xác cho Hàm • Bước : Lặp lại bước & cho Hàm khác • Bước 10 : Lặp lại bước & cho Hàm khác 17 Các trường hợp kiểm tra để kiểm tra hộp xám bao gồm, liên quan đến GUI, liên quan đến bảo mật, liên quan đến sở liệu, liên quan đến trình duyệt, liên quan đến hệ thống hoạt động, v.v Nhu cầu tuyển dụng khó khăn thách thức với ngành kiểm thử Cơng việc người tester vừa dễ lại vừa khó Cái thách thức lớn người tester thời gian để tìm chiến lược test tốt Khơng sản phẩm khơng có bug khơng dám khẳng định test hết bug thể việc xác định phạm vi test, yêu cầu test từ vạch kế hoạch chiến lược thách thức lớn phận test Những điều kiện, kĩ cần thiết để trở thành tester Kỹ phân tích Kỹ viết, tạo Test case Kỹ Programming: tester sử dụng ngơn ngữ lập trình phổ biến (Jscrip, Java, python, ….) Hiểu thêm số dạng testing Hiểu ứng dụng mà làm việc Kinh nghiệm sử dụng công cụ kiểm thử tự động Hiểu vòng đời dự án kiểm thử phần mềm tự động Chiến lược phát triển kịch kiểm thử Liên tục cập nhập kiểm thử phần mềm II Giai đoạn : (Tìm hiểu tại doanh nghiệp ) Kiểm thử phần mềm tại công ty FSOFT Quy trình(mô hình,chu kì ), kỹ thuật, cấp độ và kế hoạch của quá trình kiểm thử Các kỹ thuật được sử dụng: Kiểm thử hộp đen + Kiểm thử hộp trắng + Kiểm thử hộp xám Các cấp độ + Kiểm thử đơn vị + Kiểm thử tích hợp + Kiểm thử hệ thống + Kiểm thử chấp nhận + Cách thiết kế kịch bản kiểm thử 18 Xây dựng bảng kế hoạch kiểm thử: + Phạm vi kiểm thử + Phương pháp kiểm thử + Nguồn lực + Kế hoạch thực Mục tiêu testing planning: Xác định mục tiêu dài hạn ngắn hạn việc kiểm thử Xác định đối tượng có ảnh hưởng: Khách hàng Các bên liên quan Mục tiêu dự án Các rủi ro xảy Phương thức thực kiểm thử Tổ chức trường hợp kiểm thử • Các bước thực Test Planning: Xác định phạm vi, rủi ro mục tiêu việc kiểm thử Xác định phương thức thực Xây dựng sách chiến lược kiểm thử Xác định hệ thống tài nguyên Xây dựng kế hoạch bao gồm danh sách công việc, thời gian thực phương thức đánh giá Xác định điều kiện dùng • o o o o o Quá trình thực hiện + + + + + Nhận yêu cầu từ khách hàng Lập kế hoạch kiểm thử Thiết kế test case Tiến hành test case Báo cáo lỗi, báo cáo kết kiểm thử Quá trình kiểm thử gắn với yêu cầu khách hàng + + + + Vai trò kiểm thử quan trọng khách hàng, định chất lượng sản phẩm phần mềm tới tay khách hàng Sản phẩm chất lượng giao cho khách hàng giúp họ sử dụng hiệu Q trình kiểm thử phải đảm bảo tính đúng với requirement (yêu cầu) khách hàng Kiểm thử điều cần thiết đảm bảo độ tin cậy khách hàng hài lòng họ ứng dụng Thử nghiệm phần mềm cần thiết để cung cấp phần mềm chất lượng cao cho khách hàng ứng dụng phần mềm đòi hỏi chi phí bảo trì thấp dẫn đến kết xác, quán đáng tin cậy 19 Các tài liệu kiểm thử (các mẫu, biểu cần hoàn thiện: lập kế hoạch, ) Tester.xlsx Giải thích về các sheet: - Sheet cover: Giới thiệu tên dự án, ngày tạo file testcase, phiên bản, người - viết tài liệu, người phê duyệt tài liệu Sheet record: + Table of content: Mục lục tài liệu, bao gồm sheet nào, nội + dung sheet Record of change: Lưu lại q trình sửa đổi qua phiên người - sửa đổi, ngày sửa đổi chúng Sheet test report: Dùng để đếm xem case pass case - fail Sheet Requirement Mapping: Cho chúng ta biết test case viết cho chức nào, nhìn trực quan, rõ ràng test case chức nào, đính kèm link tài liệu u cầu chức để người đọc có - thể mở lại đọc yêu cầu chức Sheet Function (kiểm thử chức năng): Chỉ tập trung kiểm tra chức ứng dụng có hoạt động đúng khách hàng mong đợi không? Khi test dựa vào tài liệu yêu cầu (requirement) tài liệu mô tả chi tiết (specification) để test Khơng quan tâm đến khía cạnh khác giao » diện đẹp, xấu, dễ sử dụng hay không, thời gian xử lý nhanh hay chậm Nói chung, sheet gồm testcase logic chức năng, đảm bảo - chức phải đúng yêu cầu Sheet Screen Element: Sheets dùng để test hình hiển thị chức năng, xem có đúng với thiết kế hay không Tester viết testcase phải - bảo đảm giao diện phải giống với thiết kế Sheet Email Template : + Đối với chức cần gửi mail nhận mail sử dụng sheet này, bao gồm test case template email đảm bảo đúng theo thiết kế email Thường gồm case mail cần gửi tới ai, tên mail gì, nội dung,… 20 + » - Cịn chức khơng có phần gửi mail nhận mail bỏ qua sheet Đây sheet có khơng tùy thuộc vào chức Sheet DashBoard View : Nếu yêu cầu có DashBoard dùng sheet này, khơng bỏ qua Sheet test phần hiển thị trang DashBoard có đúng » - với thiết kế hay khơng Đây là sheet có khơng Sheet Common Case: Bao gồm test case chung liệt kê cho sản phẩm, sử dụng tất chức năng, dùng lại mà không - cần thay đổi case chức VD: fomat phơng chữ, màu sắc button, làm trị số,… Những người thực hiện kiểm thử, vai trò người Vị trí Test manager Vai trò • • Tester • • • Developer kiểm thử • • Test administration • • SQA member • Quản lý tồn dự án Xác định hướng dự án Xây dựng test cases Tạo test suites Thực kiểm thử, ghi lại kết quả, báo cáo lỗi Tạo chương trình để kiểm thử, code tạo developer Tạo tập lệnh automation test Xây dựng đảm bảo Môi trường kiểm thử, quản lý trì tài sản Hỗ trợ nhóm sử dụng mơi trường kiểm thử để thực kiểm thử Chịu trách nhiểm đảm bảo chất lượng Những chứng nhận về phần mềm của công ty Fsoft Những chứng nhận phần mềm công ty FSOFT là: Vào năm 2002, FSOFT đạt chứng CMM4 Đây chứng chất lượng Viện Kỹ nghệ Phần mềm SEI Bộ Quốc phòng Mỹ thành lập cấp 21 kinh phí hoạt động Việc đạt chứng vô quan trọng Fsoft, kết miệt mài thực năm qua trung tâm tính từ ngày thức khởi động dự án CMM 1/2/2001 Với chứng này, công ty FPT trở thành số 120 công ty phần mềm có chất lượng hàng đầu giới, công ty Đông Nam đạt chứng chất lượng uy tín cấp (high mature level) 1/2006, FSOFT đạt chứng BS7799-2:2002 Đây chứng quy trình bảo mật thơng tin Năm 2007, đạt chứng ISO 27001:2005 Cho tới FSOFT nhận chứng giới chất lượng bảo mật như: CMMI 5, ISO 9001, IS0 20000 Tài liệu tham khảo: https://viblo.asia/newest (indiumsoftware.com) Phần 3: Kết luận và bài học kinh nghiệm I Bài học kinh nghiệm Thông qua tài liệu tự nghiên cứu với giúp đỡ tận tình giáo viên phụ trách mơn Nhóm rút cho học trình kiểm thử phần mềm : + Hiểu định nghĩa khái niệm kiểm thử phần mềm.Những thách thức, khó khăn tester nói riêng ngành kiểm thử phần mềm nói chung Biết để trở thành tester cần điều kiện + + kỹ yếu tố Biết mức độ kiểm tra phần mềm, kiểm thử phần mềm có loại nào, phương pháp kiểm thử Những lưu ý cần thiết cho trình kiểm thử Tổng quát lên trình chung cho trình kiểm thử bình thường cơng ty phần mềm FSOFT sử dụng + thực tế biết biểu mẫu cần thiết cho trình kiểm thử Vai trò yêu cầu khách hàng trình kiểm thử quan trọng 22 II Kết Luận Với cách tiếp cận dựa đề xuất có lĩnh vực nghiên cứu kiểm thử phần mềm,cùng với tiếp cận doanh nghiệp thời gian ngắn , báo cáo tổng hợp nét tổng quan lĩnh vực kiểm thử phần mềm Sau điểm mà báo cáo tập trung nghiên cứu : • Trình bày cách tổng quan kiểm thử phần mềm: khái niệm, mục đích mục tiêu kiểm thử, giới thiệu phương pháp thiết kế liệu thử phổ biến hầu hết kiểm thử viên sử dụng Hiểu nhu cầu thị trường khó khăn thách thức lĩnh vực kiểm thử phần mềm để từ rút điều kiện cần • thiết để trở thành kiểm thử viên Trình bầy ngắn gọn kỹ thuật,loại hình phương pháp kiểm rõ điểm khác biệt phương pháp kiểm thử • có cơng ty áp dụng Tìm hiểu lĩnh vực kiểm thử phần mềm công ty Fsoft kế hoạch ,quy trình thực hiện, tài liệu kiểm thử chia sẻ tiếp cận doanh nghiệp Trong trình thực tập lớn thời gian trước đó, nhóm chúng em cố gắng tập trung nghiên cứu lĩnh vực kiểm thử tham khảo nhiều tài liệu liên quan Tuy nhiên, thời gian trình độ có hạn nên khơng tránh khỏi hạn chế thiếu sót định Nhóm chúng em thật mong muốn nhận góp ý chuyên mơn lẫn cách trình bày báo cáo từ bạn Trân thành cảm ơn ! 23