【正文】
?測(cè)試系統(tǒng)非正常操作的測(cè)試數(shù)據(jù) ①用過(guò)長(zhǎng)的關(guān)鍵字作為命令 b 的。 ②順序執(zhí)行下列 2 個(gè)命令: f( NAME) d( N) 其中, NAME 是已知的作者姓名; N 是執(zhí)行命令 f后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使 N 分別為第一個(gè)、最后一個(gè)和中央一個(gè)索引號(hào))。 第五題 某圖書館有一個(gè)使用 CRT 終端的信息檢索系統(tǒng),該系統(tǒng)有 下列 4 個(gè)基本檢索命令 要求: (1) 設(shè)計(jì)測(cè)試數(shù)據(jù)以全面測(cè)試系統(tǒng)的正常操作; 30 20 10 60 40 20 T T T 8 3 20 10 1 40 20 F T T 7 30 2 10 60 1 20 T F T 6 3 2 10 1 1 20 F F T 5 30 20 1 60 40 1 T T F 4 3 20 1 1 40 1 F T F 3 30 2 1 60 1 1 T F F 2 3 2 1 1 1 1 F F F 1 Z Y X C B A 3 2 1 預(yù)期的輸出 輸入 判定 序號(hào) (2) 設(shè)計(jì)測(cè)試數(shù)據(jù)以測(cè)試系統(tǒng)的非正常操作 解:?測(cè)試系統(tǒng)正常操作的測(cè)試數(shù)據(jù) ①順序執(zhí)行下列 3 個(gè)命令: b( KEYWORD) s( L) d( N) 其中, KEYWORD 是正確的關(guān)鍵字; L 是執(zhí)行命令 b 后在屏幕上顯示的約 20個(gè)行號(hào)中的一個(gè)(至少應(yīng)該使 L 分別為第一個(gè)、最后一個(gè)和中央一個(gè)行號(hào)); N是執(zhí)行命令 s 后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使 N 分別為第一個(gè)、最后一個(gè)和中央一個(gè)索引號(hào))。 ( 3)設(shè)計(jì)下列偽碼程序的語(yǔ)句覆蓋和路徑覆蓋測(cè)試用例: START INPUT(A,B,C) IF A>5 THEN X=10 ELSE X=1 END IF IF B10 THEN X=20 ELSE X=2 END IF IF C15 THEN X=30 ELSE X=3 END IF PRINT (X,Y,Z) STOP 答:此程序的語(yǔ)句覆蓋用例:① A=5, B=10, C=15;② A=6, B=11, C=16 條件覆蓋用例為:① A=5, B=10, C=15;② A=6, B=11, C=16。 ( 2)假設(shè)有一個(gè)由 1000 行 FORTRAN 語(yǔ)句構(gòu)成的程序,估計(jì)在對(duì)它進(jìn)行測(cè)試期間將發(fā) 現(xiàn)多少個(gè)錯(cuò)誤?為什么? 答:月 25 至 100 個(gè)錯(cuò)誤,美國(guó)的一些統(tǒng)計(jì)數(shù)字告訴我們通常這個(gè)比值在~ 之間,也就是說(shuō),測(cè)試之前每 1000 條指令中大約有 5~20 個(gè)錯(cuò)誤。 集成測(cè)試是把模塊裝配在一起形成完整的軟件包,在裝配的同時(shí)進(jìn)行測(cè)試。 ( 3) 答:加入循環(huán) 第四題 ( 1)什么是模塊測(cè)試和集成測(cè)試?它們各有什么特點(diǎn)? 答:模塊測(cè)試是對(duì)每個(gè)單獨(dú)的模塊,分別用黑盒和白盒測(cè)試技術(shù),測(cè)試它的功能是否正確, 檢查模塊控制結(jié)構(gòu)中的特定路徑并發(fā)現(xiàn)最大數(shù)量的錯(cuò)誤。 (2) 將這些不合理值輸入程序會(huì)有什么后果 ? (3) 怎樣在程序中加入防錯(cuò)措施,以防止出現(xiàn)這些問(wèn)題 ? ( 1) 答: N=1, KEYWOED=。 COMMENT:PROGRAM SEARCHES FOR FIRST N REFERENCES TO A TOPIC IN AN INFORMATION RETRIEVAL SYSTEM WITH T TOTAL ENTRIES INPUT N INPUT KEYWORD(S)FOR TOPIC I=O MATCH=0 DO WHILE I≤T I=I+1 IF WORD=KEYWORD THEN MATCH=MATCH+1 STORE IN BUFFER END IF MATCH=N THEN GOTO OUTPUT END END IF N=0 THEN PRINT ″NO MATCH″ OUTPUT:ELSE CALL SUBROUTINE TO PRINT BUFFER INFORMATION END 第三題 在第 2 題的設(shè)計(jì)中若輸入的 N 值或 KEYWORD 不合理,會(huì)發(fā)生問(wèn)題。 (3) 若是非結(jié)構(gòu)化的,則 (a) 把它改造成僅用 3 種控制結(jié)構(gòu)的結(jié)構(gòu)化程序; (b) 寫出這個(gè)結(jié)構(gòu)化設(shè)計(jì)的偽碼; (c) 用盒圖表示這個(gè)結(jié)構(gòu)化程序。字頻統(tǒng)計(jì)程序的偽碼如下: INITIALIZE the Program READ the first text record DO WHILE there are more words in the text record DO WHILE there are more words in the text record EXTRACT the next text word SEARCH the wordtable for the extracted word IF the extracted word is found INCREMENT the word’s occurrence count ELSE INSERT the extracted word into the table END IF INCREMENT the wordsprocessed count END DO at the end of the text record READ the next text record END DO when all text records have heen read PRINT the table and summary information TERMINATE the program 答: INSERT the extracted word into the table 在這個(gè)后面,有沒(méi)有給這個(gè)word的 occurrence/count 賦值為 1 第二題 研究下面給出的偽碼程序,要求: (1) 畫出它的程序流程圖。 解: 開始 文件尾? 換行,輸出字符串,換行 統(tǒng)計(jì)空格數(shù)并輸出 讀取下一個(gè)字符 換行,輸出空格總數(shù) 結(jié)束 讀一個(gè)字符 Y N 文件不是文件尾? 讀一個(gè)字符串 換行,輸出字符串,換行 統(tǒng)計(jì)空格數(shù)并輸出 取下一個(gè)字符串 換行,輸出空格數(shù) 第七章 操作員文件 操作員記錄 * 學(xué)號(hào) 姓名 專業(yè)班級(jí) 系統(tǒng)文件 操作員記錄 * 學(xué)號(hào) 姓名 分?jǐn)?shù) 新文件 操作員記錄 * 學(xué)號(hào) 姓名 專業(yè) 班級(jí) 分?jǐn)?shù) 產(chǎn)生新文件 取操作員文件記錄 取系統(tǒng)記錄 產(chǎn)生新紀(jì)錄 學(xué)號(hào) 學(xué)號(hào) 學(xué)號(hào) 姓名 姓名 姓名 專業(yè)班級(jí) 專業(yè) 班級(jí) 專業(yè) 班級(jí) 分?jǐn)?shù) 第一題 下面給出的偽碼中有一個(gè)錯(cuò)誤。 解:流程圖: 盒圖: 人機(jī)對(duì)話由操作員信息和系統(tǒng)信息交替組成。你覺(jué)得這個(gè)程序的邏輯有什么 問(wèn)題嗎? Z 0A 10Y = 2F 0Y 5A = B + 1Y = ZG = H + RC = 3X = APrint G Print KPrint X , YstopST A R TTTTTFF Y = 5FFTFC EXAMPLE LOOP:DO WHILE X0 A=B+1 IF A10 THEN X=A ELSE Y=Z END IF IF Y5 THEN PRINT X,Y ELSE IF Y=2 THEN GOTO LOOP ELSE C=3 END IF END IF G=H+R END DO IF F0 THEN PRINT G ELSE PRINT K END IF STOP 解:流程圖: 環(huán)形復(fù)雜度: 14 5682379101111 1111V(G)=結(jié)點(diǎn) E-弧數(shù) n+ 1=1711+1=7=判斷結(jié)點(diǎn) + 1=6 + 1= 7=封閉的區(qū)域數(shù) 邏輯有問(wèn)題,當(dāng) Z0 時(shí),容易形成死循環(huán);條件 Y5 包含條件 Y=2。 解: 令 P代表交易的總金額, Q代表每股的售價(jià), n 代表交易的股數(shù)。 要求: ( 1) 用判定表表示手續(xù)費(fèi)的計(jì)算方法。當(dāng)每股售價(jià)在 14 元到 25 元之間時(shí) ,附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的 2%,除非交易的股數(shù)不是 100 的倍數(shù),在這種情況下附加手續(xù)費(fèi)的 6%。如果交易金額少于 1000 元,則基本手續(xù)費(fèi)為交易金額的 %;如果交易總金額在 1000 元 ~10000 元之間,則基本手續(xù)費(fèi)為交易金額的 5%,再加 34 元;如果金額超過(guò) 10000 元,則基本手續(xù)費(fèi)為交易金額的 4%加上 134 元。 ( 2) 進(jìn)一步簡(jiǎn)化后的結(jié)構(gòu)化程序的流程圖如下所示 。 DOCASE語(yǔ)句的最大分支數(shù) ( 可執(zhí)行的最大標(biāo)號(hào)值 ) 等于 IF語(yǔ)句的個(gè)數(shù) 。 c A B d c C D E 停止 開始 T F T F F TCCCCCCC 解: ( 1) 從這個(gè)例子中看出 , Ashcroft_Manna 技術(shù)的基本方法是 , 當(dāng)待改 造的序含有嵌套的非結(jié)構(gòu)化的 IF語(yǔ)句時(shí) , 改造后的程序中增加 DOCASE語(yǔ)句和DOUNTIL語(yǔ)句 , 并增加一個(gè)輔助變量 I, I的初始值為 1。 6.用 Ashcroft_Manna 技術(shù)可以將非結(jié)構(gòu)化的程序轉(zhuǎn)化為結(jié)構(gòu)化程序,圖 是一個(gè)轉(zhuǎn)換的例子。 amp。 ( 4) 此程序的功能是什么?它完成預(yù)定功能有什么隱含的前提條件嗎? 解:( 1)該程序流程圖如下: 開 始I = ( S T A R T + F I N I S H ) / 2T A B L E ( I ) = I T E MTFT A B L E ( I ) I T E MTFT A B L E ( I ) I T E MTF( F I N I S H S T A R T ) 1FTT A B L E ( S T A R T ) = I T E M ET A B L E ( F I N I S H ) = I T E MFF L A G = 0結(jié) 束S t a r t = I + 1F i n i s h = I 1F L A G = 1FT