軟體測試工程師 新的征程

2021-09-22 21:37:39 字數 3287 閱讀 5828

一面

型別轉換:當把乙個表數範圍小的數值或者變數直接賦值給另乙個表數範圍大的變數時,系統將可以進行自動型別轉換;否則就需要強制轉換。

自動型別轉換

強制轉換:(targettype)value

1)會損失精度,產生誤差,小數點以後的數字全部捨棄;

2)233強制型別轉換為byte型別的整數23,這就是典型的溢位。

// narrow conversion(縮小轉換)或稱強制轉換

//強制把乙個int型別的值轉換為byte型別的值

int value =

233;

byte bvalue =

(byte)ivalue;

system.out.

println

(bvalue)

;//強制把double型別的值轉換為int型別的值

double dvalue =

3.98

;int tol =

(int) dvalue;

system.out.

println

(tol)

;

索引原理:

索引優點:

1)大大加快資料的檢索速度;

2)建立唯一性索引,保證資料庫表中每一行資料的唯一性;

3)加速表和表之間的連線;

4)在使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排 序的時間。

索引缺點:

1)索引需要佔物理空間;

2)當對表中的資料進行增加、刪除和修改的時候,索引也要動態地維護,降低了資料的維護速度。

什麼情況不建議使用索引

1)資料唯一性差(乙個欄位的取值只有幾種時)的字段不要使用索引

比如性別,只有兩種可能資料。意味著索引的二叉樹級別少,多是平級。這樣的二叉樹查詢無異於全表掃瞄。

2)頻繁更新的字段不要使用索引

比如logincount登入次數,頻繁變化導致索引也頻繁變化,增大資料庫工作量,降低效率。

3)欄位不在where語句出現時不要新增索引,如果where後含is null / is not null/ like '%輸入符』等條件,不建議使用索引

只有在where語句出現,mysql才會去使用索引

4)where子句裡對索引列使用不等於(<>),使用索引效果一般。

很大一部分程式設計師僅了解「加索引能使查詢變快」,但是,

想要理解索引原理必須清楚一種資料結構「平衡樹」(非二叉),也就是b tree或者b+ tree,主流的rdbms都是把平衡樹當作資料表預設的索引資料結構的。

1)如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什麼盡量少用or的原因)

注意:要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引。

2)對於多列索引,不是使用的第一部分,則不會使用索引

3)like查詢是以%開頭

4)如果列型別是字串,那一定要在條件中將資料使用引號引用起來,否則不使用索引。

5)如果mysql估計使用全表掃瞄要比使用索引快,則不使用索引。

此外,檢視索引的使用情況

show status like 『handler_read%』

注意:handler_read_key:這個值越高越好,越高表示使用索引查詢到的次數

handler_read_rnd_next:這個值越高,說明查詢低效。

什麼是儲存過程:儲存過程是一些sql語句和控制語句組成的被封裝起來的過程,它駐留在資料庫中,可以被客戶應用程式通過儲存過程名字呼叫,也可以從另乙個儲存過程或觸發器呼叫。

它的引數可以被傳遞和返回,與應用程式中的函式過程類似,儲存過程可以通過名字來呼叫,具有輸入引數和輸出引數。

在大型資料庫系統中,一組為了完成特定功能的sql語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。

(說白了:一堆sql的合併,中間加了點邏輯控制)

儲存過程是資料庫中乙個重要物件,任何乙個良好的資料庫應用程式都應該用到儲存過程。

儲存過程分類

1)返回記錄集的儲存過程——從資料庫返回符合乙個或幾個條件的記錄

2)返回數值的儲存過程——在資料庫執行乙個有返回值的函式或命令

3)行為儲存過程——在資料庫中的更新和刪除操作

儲存過程優缺點

優點

1)執行速度快——儲存過程只在建立時進行編譯,以後每次執行儲存過程都不需要重新編譯,而一般sql語句每執行一次就需要編譯一次,所以使用儲存過程可提高資料庫的執行速度。

2)減少網路通訊量——當對資料庫進行複雜操作時(如對多個表進行insert、update、select、delete時)可將這些複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。這些操作如果用程式完成就是多條sql語句,需要多次連線資料庫,但儲存過程只需一次連線。

3)更強的適用性和復用性

4)可維護性高

5)安全性高

6)分布式工作

7)更好的版本控制

缺點

1)開發除錯差:無良好的ide開發工具,儲存過程的除錯比一般sql要複雜得多。

2)可移植性差:由於儲存過程將應用程式繫結到資料庫上,因此使用儲存過程封裝業務邏輯將限制應用程式的可移植性。

3)重新編譯問題:因為後端**是執行前編譯的,如果帶有引用關係的物件發生改變時,受影響的儲存過程、包將需要重新編譯(也可以設成執行時刻自動編譯)。

4)如果在乙個程式系統中大量使用儲存過程,到程式交付時隨著使用者需求的增加會導致資料結構的變化,隨之而來的是系統的相關問題,維護很難。

20–>10–>5–>2–>1+(5中1)–>1

20+10+5+2+1+1=39瓶

❌20塊買了20瓶汽水.然後又換回10瓶.,再喝10個瓶子換了5瓶汽水.5個瓶子再換2瓶汽水剩1個瓶子.3個瓶子再換1瓶汽水 剩下1個瓶子.然後2個瓶子再換瓶汽水剩下1個瓶子向別人借1個瓶子有2個瓶子再換瓶汽水然後把剩下的瓶子還給人.一共20+10+5+2+1+1+1=40瓶

神奇的操作!!

軟體測試工程師

首先,最根本的還是要看企業自身的需要,綜合自己的測試團隊力量,自己公司的研發狀況,當然還有公司的資金 到底到測試這塊公司願意投入多少money呢?另外要搞清楚自己公司招聘測試人員的目的是什麼?比如,如果公司暫時還沒有測試團隊,這個時候公司剛好有財力,同時研發力量比較大的時候,因為發展的需要,必須要組...

軟體測試工程師

理解產品的功能要求,並對其進行測試,檢查軟體有沒有缺陷,測試軟體是否具有穩定性 安全性 易操作性等效能,寫出相應的測試規範和測試用例的專門工作人員。最重要的客戶是軟體的使用者。測試工程師需要站在客戶的使用和需求角度測試軟體,報告問題。軟體測試只能證明軟體存在錯誤,不能保證軟體沒有錯誤,不可能找出全部...

軟體測試工程師感悟

這兩天和朋友談到軟體測試的發展,其實軟體測試已經在不知不覺中發生了非常大的改變,前幾年的軟體測試行業還是乙個風口,隨著不斷地轉行人員以及畢業的大學生瘋狂地湧入軟體測試行業,目前軟體測試行業 缺口 已經基本飽和。當然,我說的是最基礎的功能測試的崗位需求已經很少了,而自動化 效能 安全乃至於以後可能出現...