Đảm bảo chất lượng phần mềm Biên tập bởi: Khoa CNTT ĐHSP KT Hưng Yên Đảm bảo chất lượng phần mềm Biên tập bởi: Khoa CNTT ĐHSP KT Hưng Yên Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên Phiên bản trực tuyến: http://voer.vn/c/4c771e16 MỤC LỤC 1. Bài 1 : Cơ bản về kiểm thử phần mềm(Software Testing) 1. Những lỗi (bug) phần mềm nghiêm trọng trong lịch sử 1. Tại sao lỗi xuất hiện 2.
Bài 2 : Quy trình phát triển phần mềm 2. Quy trình phát triển phần mềm 2. Thực trạng của quá trình kiểm thử phần mềm 2. Thực trạng của quá trình kiểm thử phần mềm 2.
Các định nghĩa và thuật ngữ kiểm thử phần mềm 2. Quá trình nghiên cứu bản đặc tả phần mềm 3. Bai 3 : Các phương pháp kiểm thử 3. Phương pháp kiểm thử 3.
Thiết kế trường hợp kiểm thử 3. Chiến lược kiểm thử 4. Bài 4 : Các kỹ thuật kiểm thử 4. Test và kiểm tra 4.
Kiểm tra miền 5. Bài 5 : Các vấn đề cần kiểm thử 5. Kiểm thử cấu hình 5. Kiểm thử cấu hình 5.
Cấu Hình Hardware 5. Kiểm thử khả năng tương thích 5. Kiểm thử Foreign – Language 5. Kiểm thử khả năng tiện dụng (tính khả dụng) 5.
Kiểm thử tài liệu 5. Kiểm thử khả năng bảo mật phần mềm 6. Bài 6 : Các giai đoạn kiểm thử 6. Các giai đoạn kiểm thử 7.
Bài 7 : Tổng quan quy trình kiểm tra hệ thống phần mềm 7. Mô hình kiểm tra phần mềm 7. Mô hình kiểm tra phần mềm TMM 7. Quy trình kiểm tra 7.
Lập kế hoạch 7. Các yêu cầu test 7. Bài 8 : Viết và theo dõi các trường hợp kiểm thử 8. Viết và theo dõi các trường hợp kiểm thử 9.
Bài 9 : Thực hiện test,viết báo cáo và đánh giá kết quả 9. Thực hiện test, viết báo cáo và đánh giá kết quả 10. Bài 10 : Kiểm thử tự động và các công cụ kiểm thử 10. Lợi ích của quá trình tự động hóa và các công cụ 10.
Một số công cụ kiểm thử 10. Giới thiệu về công cụ KTTĐ 10. Chương Trình TestTrack Pro Version 6. Kiểm tra hiệu năng phần mềm với LoadRunner 8.
Kiểm thử tự động với phần mềm 11. Bài 11 : Thảo luận về kiểm thử hướng đối tượng 11. Thảo luận và kiểm thử hướng đối tượng 12. Bài 12 : Bài tập 12.
Bài Tập Tham gia đóng góp 2/245 Bài 1 : Cơ bản về kiểm thử phần mềm(Software Testing) Những lỗi (bug) phần mềm nghiêm trọng trong lịch sử • Hãy đánh giá thử xem các phần mềm đã thâm nhập vào cuộc sống của chúng ta như thế nào. ◦ Sau năm 1947, chiếc máy tính Mark II yêu cầu hàng tá những nhà lập trình phải bảo trì liên miên. Những người bình thường không bao giờ tưởng tượng được rằng một ngày nào đó trong căn nhà của họ sẽ có một chiếc máy tính của chính họ. ◦ Bây giờ, máy tính tràn ngập khắp nới, nó không chỉ đến với từng gia đình, mà còn đến với từng cá nhân.
Những đĩa CD phần mềm miễn phí với các đoạn video game cho trẻ em, tặng kèm theo các hộp ngũ cốc còn nhiều hơn cả phần mềm trên các tàu con thoi. • Hãy thử so sánh sự phát triển của các máy nhắn tin và các buồng điện thoại, dịch vụ chuyển phát nhanh… với sự phát triển của máy tính và phần mềm máy tính. Dường như không gì có thể theo kịp sự bùng nổ của ngành công nghiệp đầy chất xám này. Bây giờ, chúng ta có thể không sử dụng không sử dụng các dịch vụ chuyển phát nhanh…, nhưng không thể bắt đầu một ngày mà không vào mạng và kiểm tra thư điện tử.
• Phần mềm ở khắp mọi nơi. Tuy nhiên, nó được viết bởi nhiều người, vì vậy mà nó không hoàn hảo. Chúng ta hãy cùng đi tìm hiểu một số ví dụ dưới đây: Disney’s Lion King, 1994 – 1995 Vào cuối năm 1994, công ty Disney đã tung ra thị trường trò chơi đa phương tiện đầu tiên cho trẻ em, The Lion King Animated StoryBook. Mặc dù rất nhiều công ty khác đã quảng bá các chương trình cho trẻ em trong nhiều năm, đây là lần đầu tiên Disney mạo hiểm lao vào thị trường.
Nó đã được xúc tiến và quảng cáo mạnh mẽ. Số lượng bán ra vô cùng đồ sộ. Nó được mệnh danh là “the game to buy” cho trẻ em trong kỳ nghỉ. Tuy nhiên, chuyện gì đã xảy đến? Đó là một sự thất bại khủng khiếp.
Vào 26/12, ngay sau ngày Giáng Sinh, khách hàng của Disney đã liên tục gọi điện. Ngay lập tức, các kỹ thuật viên trợ giúp bằng điện thoại đã bị sa lầy với các cuộc gọi từ các bậc cha mẹ đang giận dữ và những đứa trẻ đang khóc, vì chúng không thể cho phần mềm làm việc. Nhiều câu chuyện đã xuất hiện trên các mặt báo và trên bản tin của TV. …Disney đã thất bại khi không kiểm tra phần mềm rộng dãi trên nhiều mô hình máy tính khác nhau có sẵn trên thị trường.
Phần mềm đã làm việc trên một vài hệ thống mà 3/245 các các lập trình viên của Disney đã dùng để tạo ra trò game này, nhưng nó không phải là các hệ thống phổ biến nhất mà người dùng hay sử dụng. Lỗi chia dấu phẩy động của bộ vi xử lý Intel Pentium (Intel Pentium Floating – Point Division Bug), 1994 Hãy mở phần mềm Calculator trong máy tính của bạn và thực hiện phép toán sau: (4195835 / 3145727) * 3145727 – 4195835 Nếu kết quả là 0, máy tính của bạn hoạt động tốt. Nếu như bạn nhận được một kết quả khác, thì bạn đang sở hữu một Intel Pentium CPU với lỗi floating – point division (chia dấu phẩy động) – một lỗi phần mềm đã làm nóng chip của bạn mà vẫn được tái sản xuất liên tục. Nicely thuộc trường cao đẳng Lynchburg (Virgnia) đã phát hiện một kết quả không mong muốn trong khi thực hiện phép chia (division) trên máy tính của ông.
Ông đã công bố kết quả nghiên cứu của mình trên internet và ngay lập tức ông đã làm bùng lên ngọn lửa với một số lượng lớn những người cũng gặp vấn đề như ông. Và họ tìm thêm những tình huống máy tính đưa ra câu trả lời sai. May thay những trường hợp này là hiếm thấy và kết quả đưa ra câu trả lời sai chỉ trong những trường hợp phục vụ cho Toán học chuyên sâu, Khoa học, và các Tính toán kỹ thuật. Hầu hết mọi người sẽ không bao giờ bắt gặp chúng trong khi đang thực hiện các tính toán thông thường hoặc khi đang chạy các ứng dụng thương mại của họ.
Điều gì đã làm cho vấn đề đáng chú ý này không được Intel coi là bug, mặt khác cái cách mà Intel điều khiển tình hình: • Họ đã phát hiện ra các vấn đề trong khi thực thi các bài test của chính họ trước khi chip được tung ra thị trường. Các nhà quản lý của Intel đã quyết định rằng vấn đề này không đủ nghiêm trọng và ít khả năng xảy ra để cần thiết phải fixing (sửa) nó hoặc thậm chí là publicizing (công khai) nó. • Lỗi đã bị phát hiện, Intel cố gắng để giảm bớt tính chất nghiêm trọng của vấn đề đã bị nhận bằng cách công bố công khai (press release). • Khi bị gây áp lực, Intel đã ngỏ ý muốn thay thế miến phí những chip bị lỗi, nhưng chỉ với điều kiện là người sử dụng đó phải chứng minh được rằng anh ta đã bị ảnh hưởng do lỗi (bug).
• Họ đã gặp phải sự phản đối kịch liệt. Các diễn đàn trên Internet đã tạo sức ép với sự giận dữ của những khách hàng khó tính, đòi Intel phải fix vấn đề này. Các bản tin thì vẽ lên hình ảnh về Intel giống như một công ty vô trách nhiệm với khách hàng. Cuối cùng, Intel đã phải xin lỗi bằng cách điều chỉnh bug và đã phải bỏ ra trên 400 triệu dollar để chi trả cho quá trình thay thế các chip bị lỗi.
4/245 Bây giờ, Intel luôn công khai các vấn đề trên Website của họ và cẩn trọng giám sát sự hồi đáp của các khách hàng trên các diễn đàn (newsgroups). Chú ý: Vào ngày 28/08/2000, một thời gian ngắn trước khi phiên bản đầu tiên của cuốn sách này được sản xuất, Intel đã thông báo việc thu hồi tất cả các bộ vi xử lý Pentium III 1.13MHz, sau khi các con chip này được tung ra thị trường khoảng 1 tháng. Một vấn đề đã bị phát hiện. Vì vậy họ phải thực thi cho lời khẳng định chắc chắn rằng các ứng dụng sẽ luôn chạy ổn định.
Họ phải lập kế hoạch để thu hồi những chiếc máy tính đã tới tay khách hàng và tính toán giá thành để thay thế cho những con chip bị lỗi. Giống như lời của huyền thoại bóng chày Yogi Berra đã nói: “This is like déjà vu all over again”. Tàu vũ trụ của NASA đáp xuống địa cực của sao Hỏa (NASA Mars Polar Lander), 1999 Ngày 3/12/1999, Tàu vũ trụ của NASA đáp xuống địa cực của sao Hỏa đã biến mất khỏi vòng kiểm soát trong khi nó đang cố gắng đáp xuống bề mặt của sao Hỏa. Ban Báo Cáo sự cố đã điều tra sự cố và xác định rằng nguyên nhân có thể xảy ra nhất của sự cố này là việc cài đặt một bit dữ liệu đơn lẻ.
Điều đáng chú ý nhất là tại sao sự cố này lại chưa từng được xảy ra trong các cuộc thí nghiệm nội bộ. Theo lý thuyết, kế hoạch đáp tàu như sau: khi tàu đang đáp xuống bề mặt, nó sẽ nó sẽ mở ra chiếc dù nhằm làm giảm tốc độ. Một vài giây sau khi mở dù, 3 chân của máy dò sẽ mở ra và chết ở vị trí đáp. Khi máy dò ở vị trí cách bề mặt sao hỏa 1.800m nó sẽ nhả dù và đốt nóng (thruster) để giảm khoảng cách còn lại so với bề mặt sao hỏa Để tiết kiệm, NASA đã đơn giản bộ máy quyết định thời gian ngắt.
Thay thế Rada đắt tiền trên tàu vũ trụ, họ đã cài đặt công tắc tiếp xúc (Contact switch) ở chân của máy dò. Nói một cách đơn giản, khi các chân của máy rò mở ra sẽ bật công tắc để động cơ đốt cháy cho đến khi các chân chạm đất. Thật không may ban báo cáo sự cố đã phát hiện ra trong quá trình kiểm tra của họ rằng khi các chân được tách ra để chạm tới đất, một rung động của máy đã làm trượt công tắc đốt cháy và việc thiết đặt bit này đã gây tai họa. Đây là một vấn đề rất nghiêm trọng, máy tính đã tắt bộ phận đốt nóng và con tàu đã bị vỡ ra từng mảnh sau khi rơi từ độ cao 1.800m xuống bề mặt sao Hỏa.