對於「卡片復用」引來的一場尷尬。。。

2021-10-12 04:48:14 字數 1479 閱讀 7554

最近在工作中,發生了一件「大事」。什麼大事?漏測了乙個bug!!

作為乙個測試工程師,漏測是一件讓人非常尷尬的事情。尤其是,你的領導正在嚴抓這個問題的時候,感覺就是刀口舔血一般。。開週會的時候,全組都在討論你的這個漏測bug,你的領導、你的領導的領導,都在看這個漏測的本因。

可以深刻的感受到,測試很簡單,漏測很嚴重!

那回歸正題,咱們來看看博主漏測的是乙個什麼樣的bug,以後你遇到該類似的問題,如何不踩坑。痛定思痛,博主寫了這樣的一篇文章,作為對自己的反省。

問題現象:「總標題+6張卡片」的頁面a先滑動某一張卡片至不可見,再次切換tab到「總標題+6張卡片」的頁面b,從左向右滑動,頁面b的卡片「總標題」隨著卡片的滑動而消失不見了。

前提:(商店卡片的復用機制)

商店的列表橫劃卡片存在相同卡片(可以理解為相同的ui樣式,但是具體資料不同)復用機制(即上下滑動時,新劃出來的卡片會復用劃出去的相同的卡片),

這種復用通過key, value(鍵值對)的方式設定到復用快取池中,當需要復用時,通過特定的key去獲取。

原因分析:

1、出問題的新卡片a存在一張資料結構和功能類似的老卡片b(ui上有一些差別,但是基本結構一致)

2、在實現新卡片的時候直接複製了老卡片b的部分**,這導致新卡片和老卡片使用了同乙個key。

3、這會導致在老卡片b中已經對卡片ui樣式做了特殊處理(實際就是隱藏了標題欄部分)後劃出不可見時,會放進快取池中。

4、這時從快取池中取出時,放到新卡片a時(新卡片需要標題),就會出現ui問題。

最根本的原因是,缺少了對異常場景的考慮:

1、新舊卡片都配置在同乙個頁面的時候,位置太接近,導致這種異常場景沒有出現(如同一樣式的卡片配置在一起,兩個卡片的位置不可太接近,前者需能滑動到頁面不可見,再去滑動後面

的卡片,該異常場景才會出來),

2、新舊卡片需配置在不同的頁面,同一樣式的卡片,需配置在不同的頁面,前卡片需滑動至頁面不可見,再切換tab去滑動第二個卡片。

由於以上兩種異常場景都沒有考慮到,所以直接漏測了這個問題。

解決措施:

1、客戶端設計方案優化,不用自定義的字串作為key,使用卡片code作為key(code全域性唯一,並且每張卡片不一樣)

預防措施:

1、後續在開發基於老卡片開發新卡片時,開發需要標註說明,測試兩種卡片同時存在時,會不會出現問題。

2、增加對新舊功能組合的異常場景梳理(比如這次卡片的場景,我們對位置進行梳理:新舊卡片配置在同乙個頁面,但是位置很接近的情況;新舊卡片配置在同乙個頁面,位置相隔比較遠的情況;新舊卡片配置在不同頁面的情況。

同時,我們可以對卡片的樣式進行梳理:新卡片+新卡片組合;新卡片+舊卡片組合;舊卡片+舊卡片組合;同乙個場景)

對於我以上給出的相對應的測試場景和預防測試,可能對於有涉及到測試卡片的同學有一些幫助。當然同事也給相對應的開發小哥哥提了個醒,複製**的時候,考慮的東西也很多噢。

一場殊死的戰鬥

在軟體世界中漫遊,往往失去前進方向。在軟體世界裡,許多事情都可以去做,但必須有個 中心 那麼,在我心中,這個 中心 是什麼呢?這些年來,我要幹什麼事情呢?一言以蔽之,linux office。但是,這兩個東西必須是gnu 計畫的產物,必須最終體現軟體的價值 自由使用。軟體的價值,就在於使用。評判是非...

OA的一場盛宴

今天有幸參加了一場泛微的在深圳的一場產品發布會。其實,今年年初基於oa的應用,就有過乙份構想。當時,在文中提出了oa已經從傳統的非結構化資料的事務事件流向向乙個基於事務驅動關係的應用轉變。記著會上廠商的一位職業經理人所說的一句話特別有意思,一套oa系統在十年前,再到今天已經發生了很大的變化了。已經從...

虛驚一場的海嘯

2月27日,智利發生8.8級特大 1個世紀以來最強的 全球都在關注。其中,日本的反應尤其大。日本本身自然災害特別多。火山,海嘯,以及洪水。所以,對這種自然災害天然的比較敏感。最主要的原因,在於智利的 會影響到日本!這是有前車之鑑的。1960年智利海域發生了9.5級 太恐怖了。引起了海嘯,一直穿過整個...