1. 程式人生 > >從哪些方面對Android檔案讀寫進行測試?

從哪些方面對Android檔案讀寫進行測試?

一、檔案讀寫基本介紹

檔案的讀寫操作在實際的手機開發中非常常見,比如記錄資料以及App的版本號、作為某些開關觸發過的標記、甚至儲存書籤等,由於目前的主流智慧手機作業系統(如Android,iOS)都是基於Linux/Unix進行開發的,故檔案的讀寫也有著相較於一般Windows系統更為複雜的特性,比如擁有者身份,讀寫以及執行的許可權等,進而使得檔案的讀寫在移動應用的測試中顯得非常重要。
對於一個檔案來說,其具備一些公共屬性,也具備自己的特殊屬性。公共屬性指的是所有的檔案都會有的屬性,比如檔案系統型別,檔案的大小,檔案的許可權,檔案的格式等,而特殊屬性指的是因不同的檔案而不同(或者有無)的屬性,常見的包括文字檔案和二進位制檔案在執行上的特殊性,圖片檔案和文字檔案在內容上的特殊性,以及安裝包檔案和其他檔案在安裝上的特殊性等。
正是由於不同檔案的這些公共性和特殊性,讓檔案讀寫的測試有了眾多需要注意的方面和可總結的測試點。

二、檔案讀寫測試檢查點

一般來說,Android系統中對檔案的操作主要有兩個。一個是檔案的讀取,一個是檔案的寫入。對於這兩個過程其檢查點是相似的。對於一個檔案來說,可以從檔案位置,目錄許可權,目錄特殊性,檔案屬性,內容,檔案型別等進行測試。
具體的影響因素如下幾個具體方面。

  1. 檔案位置
    對於Android或iOS來說,其系統是嚴格區分大小寫的,且檔案系統的路徑劃分是特殊的,因此檔案的路徑是檔案測試的第一個點。例如Android系統的hosts檔案存在於/system/etc/hosts位置,那麼其存在的影響因素有:

    1. 大小寫錯誤,/System/etc/hosts;

    2. 路徑分隔符錯誤,\system\etc\hosts(使用了Windows系統的分隔符);或者system/etc/hosts(漏掉開始位置的/);

    3. 路徑中間填充有空格,/system /etc/ hosts;

    4. 拼寫錯誤,/systm/etc/hosts;

    5. 正常的檔案位置;/system/etc/hosts;

  2. 目錄許可權
    當一個目錄的許可權設定錯誤時也會導致檔案的讀寫失敗,例如一個檔案的父目錄或當前目錄的許可權是隻讀,那麼當對檔案進行寫操作的時候就會出現失敗的情況。常見的有目錄許可權帶來的影響因素有:

    1. 檔案所在目錄只讀,那麼該目錄下的檔案只具有讀許可權,嘗試進行寫操作的時候會失敗;

    2. 檔案所在目錄可寫,那麼該目錄下的檔案具有讀寫的許可權;

    3. 檔案所在目錄可執行,那麼可以在該目錄下呼叫一些可執行程式對檔案進行操作;

    4. 檔案所在目錄不可執行,那麼在該目錄下呼叫一些可執行程式對檔案進行操作時會失敗;

  3. 目錄特殊性
    一個常見的例子是Android或iOS的tmp目錄。其具有一個特殊的性質是當系統進行重啟的時候會將該目錄下的內容清空,不論該內容的建立者是誰。那麼當一些檔案被儲存到這個目錄下的時候,就應格外注意該屬性。
    例如,在一個導流專案中,需要彈出一個通知或者提示框,預期該通知或提示框的彈出次數為1(生命週期中只出現一次),那麼如果將標記其彈出與否的標記檔案放置在tmp目錄下,則會在重啟手機之後失效,而導致每次重啟手機之後都會彈出通知或者提示框,困擾使用者。

  4. 檔案屬性
    對於一個Android或iOS系統的檔案,其具有的屬性如下所示。
    -rwxrwxr-x. 1 root root 1200 Dec 11 15:11 fedy-installer
    其中第一欄的10個符號分別代表檔案型別(檔案,連結,目錄),檔案擁有者的許可權(r代表可讀,w為可寫,x為可執行),檔案擁有者所在組對該檔案的讀寫執行許可權,其他人對該檔案的讀寫執行許可權。第二列可忽略(與檔案系統索引inode有關),第三列為檔案擁有者,第四列為檔案擁有者所在的組群,第五列為檔案的大小,第六列為檔案最後的修改時間,最後一列為檔名稱。因此影響因素有:

    • 更改其他人可讀/不可讀

    • 更改其他人可寫/不可寫

    • 更改其他人可執行/不可執行

    • 更改擁有者同組群成員可讀/不可讀

    • 更改擁有者同組群成員可寫/不可寫

    • 更改擁有者同組群成員可執行/不可執行

    • 更改擁有者可讀/不可讀

    • 更改擁有者可寫/不可寫

    • 更改擁有者可執行/不可執行

    • 更改檔案的擁有者

    • 更改檔案擁有者的族群

    • 更改檔案的最後修改時間(可通過Unix的touch命令)

    • 修改檔案的大小

  5. 檔案內容
    對於不同型別的檔案,其內容格式也是不同的,例如對於一個文字檔案,其內容可能是純文字(plain text),可能是帶有特殊編碼格式的文字,對於一個apk檔案來說,其內容是可執行的安裝包,對於一個圖片來說,其內容是可顯示的二進位制內容。因此,針對檔案的內容,影響因素有:

    1. 預期的檔案內容(如文字檔案的內容為文字,圖片內容為圖片);

    2. 其他格式的檔案修改後綴名;

    3. 經過特殊編碼的檔案內容;

    4. 空檔案;

  6. 檔案型別
    一般的,檔案型別需要考慮一下幾種情況:

    1. 文字檔案;

    2. 二進位制檔案;

    3. 媒體檔案;

    4. 其他特殊檔案;

原文連結

如需轉載該篇文章,請註明來自“搜狗測試”