- 產(chǎn)品總是不斷的更新迭代科平,因此覆蓋安裝是重要的環(huán)節(jié),移動(dòng)應(yīng)用升級(jí)安裝中的覆蓋安裝測(cè)試需要關(guān)注哪些點(diǎn)?應(yīng)用中功能很多垦细,覆蓋時(shí)不可能全部遍歷。我們需要在“變化”中找尋“不變”的本質(zhì)和規(guī)律挡逼。在覆蓋安裝過(guò)程中括改,我們也要找到“不變”的部分,那就是我們能夠“減少工作量”的地方家坎。
- 覆蓋安裝應(yīng)該是大部分用戶選擇的方式嘱能,排除特例是指在不清除用戶數(shù)據(jù),不清除應(yīng)用本地緩存設(shè)置的情況下虱疏,對(duì)同一個(gè)應(yīng)用進(jìn)行功能特性的升級(jí)惹骂。
- 新的版本出來(lái)時(shí)需要覆蓋每一個(gè)已經(jīng)上線的版本,特別去關(guān)注用戶和系統(tǒng)數(shù)據(jù)是否能夠正確遷移(eg:收藏做瞪、訂閱)对粪,以及保障用戶升級(jí)后的功能可用性。
- 安裝apk時(shí)穿扳,系統(tǒng)會(huì)將當(dāng)前的apk重命名衩侥,并復(fù)制到data/app/路徑下,并刪除之前版本的apk
- 覆蓋安裝常見(jiàn)問(wèn)題引起的原因
** 1 數(shù)據(jù)庫(kù)表結(jié)構(gòu)的變動(dòng)(增加一個(gè)字段矛物,減少一個(gè)字段茫死,甚至是新表的建立)
數(shù)據(jù)庫(kù)結(jié)構(gòu)修改必須升級(jí)數(shù)據(jù)庫(kù)版本,并對(duì)相應(yīng)版本進(jìn)行處理履羞。此外峦萎,任何在發(fā)版之前修改數(shù)據(jù)庫(kù)表結(jié)構(gòu)的行為都是不可取的,即使是很簡(jiǎn)單的邏輯忆首。
** 2 數(shù)據(jù)與當(dāng)前版本的不匹配(數(shù)據(jù)超出上限或下限)爱榔,會(huì)引發(fā)邏輯出錯(cuò)、數(shù)組越界等問(wèn)題糙及。有任何數(shù)組結(jié)構(gòu)的修改详幽,無(wú)論是增加還是減小了數(shù)組,都要進(jìn)行容錯(cuò)處理浸锨。 -
另外唇聘,在覆蓋安裝時(shí)會(huì)發(fā)現(xiàn),部分手機(jī)在覆蓋安裝老版本的app時(shí)柱搜,出現(xiàn)“INSTALL_FAILED_VERSION_DOWNGRADE”錯(cuò)誤迟郎,這個(gè)問(wèn)題僅出現(xiàn)在Android 4.2及以上版本,經(jīng)查閱Android源碼聪蘸,發(fā)現(xiàn)在4.2版本之后加入了驗(yàn)證宪肖,不允許覆蓋安裝versioncode比當(dāng)前版本低的apk表制。如果想使用低版本,只能先卸載再安裝(這對(duì)開(kāi)發(fā)者來(lái)說(shuō)是非常友好的)控乾。
[Lihuazhang](https://testerhome.com/Lihuazhang)
上圖是在testerhome中對(duì)覆蓋安裝關(guān)注點(diǎn)討論的總結(jié)可作為實(shí)際工作中的參考么介。如有錯(cuò)誤歡迎指正。
參考
https://testerhome.com/topics/10161
http://blogs.#/360qtest/2014/03/11/android%E8%A6%86%E7%9B%96%E5%AE%89%E8%A3%85%E5%8F%8A%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98/