1.軟件測試流程是什么樣的,簡述自己對功能測試,性能測試,自動化測試的理解
第一步:需求分析與評審,此過程主要是保障測試人員早介入、早發(fā)現、早修復需求中存在的BUG;
第二步:編寫測試計劃與測試方案,做任何事情之前都需要先做計劃、考慮風險及解決方案、確定可行性的測試方法、工具與環(huán)境等;
第三步:設計測試用例與評審,很多小伙伴以為測試就是簡單的點點點,其實不然,軟件測試是一門藝術,它需要很多科學的方法去指導相關的測試活動,尤其是測試用例設計;
第四步:執(zhí)行測試用例與缺陷跟蹤,當啟動測試執(zhí)行活動后,作為軟件質量的守護者肯定能在自家的產品中或多或少的發(fā)現一些BUG,請小伙伴記住軟件測試的目標是盡可能早地找出軟件缺陷,并確保其得以修復。
第五步:編寫測試報告,一個階段的活動結束后軟件測試負責人需要對本階段的測試活動進行一些階段性的總結,主要包含BUG的統(tǒng)計與分析、版本測試結論等。
功能測試:
根據產品特性、操作描述和用戶方案,測試一個產品的特性和可操作行為以確定它們滿足設計需求。
功能測試又稱為黑盒測試,是把測試對象看作一個黑盒子。利用黑盒測試法進行動態(tài)測試時,需要測試軟件產品的功能,不需測試軟件產品的內部結構和處理過程。
性能測試:
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。
通過負載測試,確定在各種工作負載下系統(tǒng)的性能,目標是測試當負載逐漸增加時,系統(tǒng)各項性能指標的變化情況。
壓力測試是通過確定一個系統(tǒng)的瓶頸或者不能接受的性能點,來獲得系統(tǒng)能提供的最大服務級別的測試。
性能測試目的:驗證軟件系統(tǒng)是否能夠達到用戶提出的性能指標,同時發(fā)現軟件系統(tǒng)中存在的性能瓶頸,優(yōu)化軟件,最后起到優(yōu)化系統(tǒng)的目的。
自動化測試
自動化測試是把以人為驅動的測試行為轉化為機器執(zhí)行的一種過程。通常,在設計了測試用例并通過評審之后,由測試人員根據測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實際結果與期望結果的比較。在此過程中,為了節(jié)省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
2.數據庫
select stu.name,sub.subject,s.score from student as stu inner join subjects as sub inner join scores as s on stu.id = s.stu_id and sub.id = s.sub_id order by sub.subject
3.邏輯分析題:
如果你有無窮的水,一個3公斤的提桶,一個5公斤的提桶,兩只提桶的形狀上下都不均勻,如何可以稱出4公斤的水?
先把5公斤的桶填滿,倒入3公斤的桶內,這時還剩2公斤。再把3公斤的桶倒掉,把剩下的2公斤水倒入3公斤的桶內。這時3公斤的桶內裝了2公斤的水,5公斤的桶是空的。再把5公斤的桶填滿,向3公斤的桶內倒入1公斤的水,這時5公斤的桶內有4公斤的水
4.程序設計
1.統(tǒng)計整數1-100之間所有被3和7整除的數字的個數
int count = 0;
for (int i = 0; i <= 100; i++) {
if (i%3==0 && i%7==0){
count = count + 1;
}
}
System.out.println(count);
2.找出數組int[] a={2,3,6,4,7,9,4,2,3,1};中所有重復的數據,以及重復數字的索引
int[] a = {2,3,6,4,7,9,4,2,3,1};
for(int i = 0;i < a.length();i++){
for(int j = 0;j < a.length();j++){
if(a[i] == a[j]){
system.out.plintln("重復的數據為:"+a[i]);
system.out.plintln("重復的下標為:"+i+"和"+j)
}
}
}
正大
一:說一下自己對軟件測試的理解
即軟件測試的目的和原則
二:描述一下產品的生命周期
1) 計劃:產品定義階段
2). 分析:外部文檔階段
3). 設計:文檔架構階段
4). 構建:單元測試階段
5). 測試周期:錯誤修正,重復系統(tǒng)測試階段
6). 最后的測試和實施:代碼凍結階段
三:簡述一下測試的流程
1:文檔評審
2:測試計劃
3:測試設計
4:測試執(zhí)行
5:測試總結
四:如何編寫測試報告
1,不能用中文寫,最好英文,或者其他語言
2,報告基本是用Word編寫的,記得在頁眉上附上公司Iogo和某某測試部
3,測試說明部分、說明測試使用技術、工具并說明他們都具有哪些國際性優(yōu)勢
4,測試方案部分,說明測試思路,邏輯和用例,請附上邏輯圖,測試用例要用代碼編寫或者用Xml文件編寫。如果你寫成excel樣式的用例,那真的很不professional
5,數據分析部分,一定要帶上各種表格,純文字太LOW了,線圖,餅圖,柱圖能上的都上
6,缺陷列表部分,請按照缺陷等級有秩序的劃分,最嚴重的等級一定用紅色表示,
7,風險評估及總結部分,注意字體加粗,顏色依舊用紅色。一定要注意某某問題不修改,會嚴重導致我們用戶唾棄我們的產品
8,寫清楚測試人,第一次測試日期,第二次測試日期,第N次測試日期,N>=5
9,所有原始數據要打個壓縮包并附上,因為以科學為依據,以事實為準繩
隨著測試工作越來越受重視,開發(fā)團隊向客戶提供測試文檔是不可避免的事情。但不能把工作中的測試文稿提供給客戶,這樣可能會讓顧客失去信心
10,測試報告分為內部測試和外部測試,內部報告是我們在測試工作中的項目文檔,反映了測試工作的實施情況,
11,外部測試報告的滿足需求
五:場景:針對微信朋友圈的使用,計一下測試用例
1、朋友圈發(fā)送功能
1)只發(fā)送文本
a、考慮文本長度:1-1500字符(該數據為百度數據)、超出最大字符長度
b、考慮文本類型:純中文、純數字、純字母、純字符、純表情(微信表情/手機自帶表情)、混合類型、包含url鏈接;因為過長純類型需要換行很容易出現超出邊框問題,所以這里先考慮過長純類型情況
c、文本是否支持復制粘貼
d、為空驗證
2)只發(fā)送圖片
a、本地相冊選擇/拍攝
b、圖片數量驗證:1-9張圖片、超出9張
c、圖片格式驗證:常見圖片格式jpg、png(以實際微信需求支持的格式為準)、動態(tài)gif圖片、不支持的圖片格式
d、圖片尺寸驗證:最大700*800像素(此為百度數據)、超出最大尺寸范圍是否壓縮
e、圖片大小驗證:1-300kb(此為百度數據)、超出300kb
f、圖片的預覽驗證:點擊支持預覽大圖、多張圖片支持左右滑動預覽
g、圖片的增刪改操作
h、為空驗證
3)只發(fā)送視頻
a、本地相冊選擇/拍攝
b、視頻秒數驗證:1-10s,超出10s
c、視頻個數驗證:1個,超出1個
d、視頻格式驗證:支持的視頻格式,例mp4、不支持的視頻格式
e、視頻大小驗證:蘋果400kb以內、Android200-300kb(此為百度數據)、超出規(guī)定大小
f、視頻預覽增刪改操作
g、為空驗證
4)發(fā)送文本+圖片:輸入滿足要求的文本、圖片進行一次驗證
5)發(fā)送文本+視頻:輸入滿足要求的文本、視頻進行一次驗證
6)發(fā)送圖片+視頻:不支持發(fā)送
7)朋友圈發(fā)送內容是否有限制,例如涉及黃賭毒等敏感字
8)所在位置
a、不顯示位置:發(fā)送到朋友圈動態(tài)不顯示位置
b、選擇對應位置:搜索支持、自動定位、手動編輯
C、點擊取消,返回上一級頁面
9)誰可以看
a、設置公開:所有朋友可見
b、設置私密(僅自己可見):自己查看朋友圈-可見、好友查看朋友圈-不可見
c、設置部分可見(部分朋友可見):選擇的部分好友-可見、不被選擇的好友-不可見、是否有人數上限
d、設置不給誰看(選中的朋友不可見):不被選中的朋友-可見、被選中的朋友-不可見、是否有人數上限
e、點擊取消,返回發(fā)送頁面
10)提醒誰看
a、提醒單人/提醒多人:被提醒的朋友-收到消息提醒、未被提醒-未有消息提醒
b、是否有人數上限
c、點擊取消,返回發(fā)送頁面
11)同步QQ空間:默認不同步、同步到QQ空間
12)取消發(fā)送朋友圈操作
a、選擇相機,點擊取消,返回朋友圈頁面
b、進入朋友圈發(fā)送頁面,選擇文本圖片,點擊取消
13)朋友圈當天發(fā)送次數是否有上限限制
2、朋友圈瀏覽功能
1)文本查看:
a、過長文本內容是否隱藏,并支持查看全文
b、右鍵選擇復制、收藏、翻譯
c、url鏈接是否支持點擊跳轉網頁
2)圖片查看
a、小圖右鍵支持收藏/編輯
b、點擊支持大圖瀏覽
c、選擇發(fā)送給朋友、收藏、保存圖片、編輯
d、多張圖片支持左右滑動瀏覽
3)視頻查看
a、右鍵視頻支持靜音播放/搜藏
b、點擊視頻播放按鍵支持播放視頻
c、選擇發(fā)送給朋友、收藏、保存視頻、編輯
4)分享動態(tài)瀏覽:QQ空間/公眾號文章/非騰訊產品分享后朋友圈是否正常顯示
5)贊:點贊、取消點贊
6)評論
a、評論長度:評論字數合理長度、評論超過字數上限
b、評論類型:純中文、純數字、純字母、純字符、純表情(微信表情/手機自帶表情)、混合類型、包含url鏈接;
c、評論是否支持復制粘貼
d、為空驗證
e、發(fā)表評論后刪除
f、評論回復操作
7)刪除朋友圈動態(tài)
8)更換相冊封面
9)刷新是否正常獲取新動態(tài)
10)上滑是否加載更多
界面/易用性測試
1、技術人員角度:頁面布局設計是否跟產品原型圖/ui效果圖一致
2、但除了考慮1之外,我們同樣要考慮到用戶使用:功能操作是否簡便,頁面布局排版風格是否美觀合理,提示語相關信息是否易于理解
中斷測試
1、主要考慮:a)核心功能 b)當前功能存在實時數據交換,例發(fā)朋友圈、瀏覽朋友圈進行中斷,是否容易出現崩潰
2、中斷包括:前后臺切換、鎖屏解鎖、斷網重連、app切換、來電話/來短信中斷、插拔耳機線/數據線
網絡測試
1、三大運營商不同網絡制式測試
2、網絡切換測試:WIFI/4G/3G/2G
3、無網測試:對于緩存在本地的數據,部分朋友圈信息是否支持瀏覽
4、弱網測試:
a、延時:頁面響應時間是否可接受、不同網絡制式是否區(qū)分超時時長、出現請求超時,是否給予相應的提示
b、丟包:有無超時重連機制、如果未響應,是否給予相應提示
c、頁面呈現的完整性驗證
兼容性測試
1、Android手機端、蘋果手機端、pad版(主流)功能界面顯示是否正常
2、各平臺朋友圈展示數據是否一致
發(fā)送朋友圈時,文本輸入腳本代碼,是否出現異常
1、服務器性能測試
可通過loadrunner/jmeter工具實現,主要關注TPS、響應時間、吞吐量、CPU、內存等
2、app客戶端性能測試
可通過GT工具實現,運行時關注cpu、內存、流量、電量等占用率
3、app壓力穩(wěn)定性測試
通過monkey工具實現,頻繁發(fā)送朋友圈,瀏覽朋友圈請求,是否容易發(fā)生崩潰
六:代碼延伸
三角形三條邊分別為a,b,c
要求:1:要構成三角形,必須要任意兩邊和大于第三邊
** 2:輸出結果:能否構成三角形,三角形的類型是什么**
自己熟悉什么代碼語言,并用自己熟悉的代碼語言寫出來
## **public boolean isTriangle(int a,int b, int c){ boolean flag=false; //Java Math.abs() 方法返回參數的絕對值 /
/參數可以是 int, float, long, double, short, byte 類型
if ((a+b>c&&a+c>b&&c+b>a)&&(Math.abs(a-b)<c&&Math.abs(a-c)<b&&Math.abs(c-b)<a)){ flag=true; shape(a,b,c); }else {
System.out.println("這不能構成三角形。"); } return flag; }
public String shape(int a,int b, int c){
String shape=null;
if (a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){
shape="直角三角形";
System.out.println("這是"+shape); }else if (a*a>b*b+c*c||b*b>a*a+c*c||c*c>a*a+b*b){ shape="鈍角三角形";
System.out.println("這是"+shape); }else if (a*a<b*b+c*c||b*b<a*a+c*c||c*c<a*a+b*b){ shape="銳角三角形";
System.out.println("這是"+shape); } return shape; } }**
七:如何判斷一個bug是客戶端問題還是服務器問題還是前段問題
1、通過抓包或者開發(fā)者模式過濾信息
a、傳入參數錯誤(缺參、錯參等),導致的問題往往是前端bug;
b、傳入的參數與接口文檔一致,數據返回正確,界面顯示錯誤(字段取錯),往往是前端的bug;
c、傳入參數正確,數據返回錯誤,往往是后端的bug。
d、根據響應狀態(tài)碼:404客戶端請求路徑錯誤,500服務器內部錯誤
2、根據前后端的bug特點來定位問題
a、前端bug特點:界面相關(文本問題可能是html產生的bug)、布局相關(樣式問題可能是css產生的bug,圖片尺寸分辨率等)、兼容性相關
b、后端bug特點:業(yè)務邏輯相關(排序、分頁)、數據相關、性能相關、安全性相關。
3、查詢系統(tǒng)日志
如果查不到錯誤日志前端的問題概率大,反之后臺的問題。
4、通過sql語句查詢數據,是否有數據入庫。
有些項目接口與接口之間存在相互調用,不同的接口是不同的開發(fā)人員,我們可以通過查詢數據的方式來區(qū)分哪個接口問題。比如:在A模塊添加一條數據,但是在B模塊沒有展示,這時我們 通過查詢數據庫的數據來確認,是A模塊沒有插入數據,還是B模塊沒有查詢到數據來縮小問題的范圍。
5、根據測試經驗
軟件測試人員應不斷精進自己的技能,負責的項目多了,自然對功能的實現過程有了解,也就明白如何分類BUG了。再就是與開發(fā)人員多溝通,熟悉業(yè)務,每個模塊是哪個開發(fā)負責的。
八:簡述軟件項目的迭代流程,你在過去的工作中參與過哪些環(huán)節(jié)
**一次完整的產品迭代流程需要經過 問題&假設(需求) -> 評估標準 -> 開發(fā)埋點 -> 實驗&分析 -> 長期觀察 五個步驟
問題&假設(需求) -> 評估標準 -> 實驗&分析 -> 長期觀察
九:臨近發(fā)版階段,突然產品要添加一個需求,直接來找你,你該怎么做
一切按流程走,看成本,即付出的時間成本,人力成本和機會成本。簡而化之:
有時間且成本允許,馬上改;
有時間成本不允許,放棄修改;
沒有時間成本允許,迭代修改;
沒時間且成本不允許,放棄修改。
十:口述題: 是否遇到過測試任務過多無法完成的情況?當時你是怎么解決的?
把任務分級,先做重要的,再做緊急的,然后做其他的。
十一:在同一個項目組內,你認為你怎么做會比另外一名測試更加優(yōu)秀
業(yè)務熟悉度更高, 架構理解更深入, 代碼能力要更好, 協(xié)調推動能力更強
十二:版本發(fā)布后,線上出現了bug,你認為改怎么解決
1.首先要做的是重現這個問題并反饋給研發(fā)人員,盡快出patch或者解決方案。
2.當BUG解決且上線沒有問題之后,我們再看后續(xù)的處理。
追查原因及處理方法:
這個BUG出現的原因是什么。
** 2測試上線后出現問題分為幾種情況:**
** 1)測試環(huán)境無法重現:可能是線上的環(huán)境造成的BUG或者是測試環(huán)境無法模擬的情況.**
** 解決方法:盡量完善測試方法、盡量模擬測試環(huán)境、增加線上測試。**
** 2)漏測:**
** 1.測試用例裁剪過度:錯誤預估優(yōu)先級或者時間過于緊迫裁剪了用例**
** 解決方法:在后續(xù)版本或者其他項目啟動時重新評估測試時間,要求專家介入對優(yōu)先級進行評估,避免此類事件再次發(fā)生。**
** 2.測試用例執(zhí)行期間遺漏:由于測試人員疏忽造成測試用例執(zhí)行遺漏。**
** 解決方法:調查該名測試人員的整個測試過程的工作情況,并隨機抽測其他模塊,**
** 3.測試用例覆蓋不全:由于用例評審的不嚴格造成的;中途需求變更造成的;由于某些其他因素造成的。**
** 解決方法:找到原因,并進行記錄,在以后的項目或者下一版本重點關注。**
十三:你做軟件測試多久了?你認為對于測試人員,最重要的三個特點是什么?
三個特點:
第一個特點:不做同類型的工作,每次參與新項目,都要和一些新同事合作,學習新技能。
第二個特點:更愿意參加早期階段的項目,因為這樣能接受更多的新信息。
第三個特點:愿意和人們分享他們的想法。
簡答題
一:商品B原價:13.00元 限時折后價:10.00 優(yōu)惠券:0.00元 優(yōu)惠券使用后應付10.00元 滿10-1元 使用后應付9.00元 實付:9.00元(這種計算方法對嗎?如果對請答:正確:如果不對:請寫出正確的計算方法)
正確
二:商品C原價:22.00元 限時折后價:20.00 優(yōu)惠券:5折 折扣使用后價格為多少元?之后參加滿減優(yōu)惠:滿5元減5元 實付多少元?
5元
三:用邊界值法測試,一個商品價格區(qū)間為0元至5元,那么,在測試中應該取的邊界值是什么?
2
四:一個新項目下來,要經過哪些個測試階段才能正式發(fā)布?
1、需求說明書審查
2、概要設計和程序設計審查
3、單元測試
4、集成測試
5、功能測試
6、確認測試
7、系統(tǒng)測試
五:app和web測試有什么不同
區(qū)別:
系統(tǒng)架構方面:
web項目,一般都是b/s架構,基于瀏覽器的
app項目,則是c/s的,必須要有客戶端,用戶需要安裝客戶端。
web測試只要更新了服務器端,客戶端就會同步會更新。App項目則需要客戶端和服務器都更新。
性能方面:
web頁面主要會關注響應時間
而app則還需要關心流量、電量、CPU、GPU、Memory這些。
它們服務端的性能沒區(qū)別,都是一臺服務器。
兼容方面:
web是基于瀏覽器的,所以更傾向于瀏覽器和電腦硬件,電腦系統(tǒng)的方向的兼容
app測試則要看分辨率,屏幕尺寸,還要看設備系統(tǒng)。
web測試是基于瀏覽器的所以不必考慮安裝卸載。
而app是客戶端的,則必須測試安裝、更新、卸載。除了常規(guī)的安裝、更新、卸載還要考慮到異常場景。包括安裝時的中斷、弱網、安裝后刪除安裝文件 。
此外APP還有一些專項測試:如網絡、適配性。
六:工作中會發(fā)現有些難題你是傾向于找領導解決還是自己解決完之后告知領導你的結果?
能自己搞定當然自己搞定就好了,但是如果自己搞不定或者搞定很困難,就要提出來。