測試計劃
Gamma階段依然以場景測試爲主。咱們概括了三條場景主線:前端
1、典型用戶:查看
- 訪問排名頁面 / 搜索課程
- 查看課程頁面
- 查看教師頁面
- 爲他人評論點贊或點踩
2、典型用戶:評論
3、管理員
- 登陸網站
- 查看全部評論
- 查看用戶頁面
- 刪除用戶評論
其它(詳見後文)
針對找回密碼這一功能設計了場景測試。
針對已有功能進行迴歸測試。
設計了多機型測試環節,針對PC端和移動端主流瀏覽器和設備進行適配測試。python
測試過程
自動化測試與手工測試結合。前者利用selenium瀏覽器自動化測試框架進行。因爲本階段的前端界面針對用戶體驗做了較多的優化,咱們安排測試人員重寫了大量自動化測試代碼。
因爲Gamma階段部署方面的任務較多,該階段測試工做由李青陽同窗獨立完成。數據庫
測試結果(一些影響用戶體驗的地方,功能性Bug在問題1中回答)
如下部分由測試人員發現:
- 提交評論後的Alert、我的信息頁面的部份內容由英文更改成中文
- 主頁的放大鏡圖標不是按鈕,帶有迷惑性
- 排名頁面沒有顯示四項具體指標的分數
- 將主頁下面「關於咱們」更換爲「用戶反饋」
如下部分由網站用戶反饋獲得:
- 移動端存在一部分顯示問題,例如排名頁面的表頭被壓縮得很厲害,且沒法經過橫屏解決
- 課程頁面部分文字沒有加粗或高亮,用戶難以分辨表頭與表格內容
- 但願增長課表定製功能
回答問題
1. 在測試過程當中發現了多少Bug?有哪些是Gamma階段的新Bug?有哪些是前兩個階段沒有發現的Bug?
- 搜索結果數目爲10的整數倍時,搜索結果的分頁機制會產生一個多餘的頁。【已修復】
- 主頁前端顯示修改後,「選擇專業」多選框不起做用。【已修復】(Gamma階段新引入的)
- 處於未登陸狀態下仍然能夠「贊/踩」(前兩個階段沒有發現)
- 「贊/踩」操做沒法撤銷(前兩個階段沒有發現)
- 若是用戶選擇進行匿名評論,那麼這一條評論不會出如今Ta的我的信息頁面中(前兩個階段沒有發現)
- 若是在我的信息頁面進行註銷操做,那麼註銷後仍然會停留在我的信息頁面
- 修改我的信息時,在不選擇學校的狀況下仍然能選擇學院(前兩個階段沒有發現)
2. 你是怎麼進行場景測試(scenario testing)的?包括你預期不一樣的用戶會怎樣使用你的軟件?他們有什麼需求和目標?你的軟件提供的功能怎麼組合起來知足他們的須要?(僅描述新功能便可)
2.1 洗月:一個健忘的女生,老是記不住本身各個網站的密碼。
需求和目標:在忘記密碼的狀況下,找回本身公課網帳號的密碼
測試場景:瀏覽器
- 此處省略洗月註冊公課網帳號的部分
- 幾個月後,洗月想登陸公課網點評一下這學期的課程,卻怎麼也想不起來密碼了。
- 在連續嘗試了好幾個密碼失敗後,她點擊了登陸按鈕旁邊的「忘記密碼」。
- 她在新出現的輸入框中填寫了本身的電子郵箱,點擊「重置密碼」。
- 幾秒鐘後,她的郵箱收到了公課網發送的電子郵件,裏面包含了用於重置密碼的連接。
- 洗月打開連接,按照說明填寫了新的密碼。以後她利用新的密碼登陸了公課網。
2.2 公正:網站的管理員,反感部分用戶給出的不合理評價
需求和目標:刪除用戶的不合理評價(哪些評價屬於不合理評價由管理員自行評判)
測試場景:安全
- 公正登陸了本身的管理員帳號,進入了管理員專屬的「全部評論列表」頁面。
- 他從上到下瀏覽今天提交到公客網上的評論。
- 他生氣地發現用戶「木葉丸」針對某課程的評價只有4個字「雞你太美」。
- 他點擊了列表中的「刪除」按鈕,成功刪除了木葉丸的評論。
- 次日,木葉丸登陸本身的公客網帳號時,發現本身的「信箱」收到了一封郵件。
- 他點擊導航欄上面的相應按鈕,進入了我的信箱頁面。
- 我的信箱裏有一條未讀消息,通知木葉丸:他的評論「雞你太美」已經被管理員刪除。
3. 你是否有迴歸測試確保新功能的加入沒有影響已有功能?請給出一到兩個測試用例並解釋。
測試用例1:app
def test_rank_changemode(self):
append = "rank/"
self.driver.get(self.host + append)
time.sleep(3)
ein = self.driver.find_elements_by_id('radio')
self.assertEqual(len(ein), 2)
ein[1].click()
time.sleep(3)
table = self.driver.find_element_by_id("top_teachers")
tbody = table.find_element_by_tag_name('tbody')
terms = tbody.find_elements_by_tag_name('tr')
print(len(terms))
tds = terms[1].find_elements_by_tag_name('td')
print("teacher mode, goto teacher page")
tds[0].find_element_by_tag_name('a').click()
time.sleep(6)
解釋:該用例旨在測試排名頁面的「模式切換」組件。在Gamma階段咱們優化了排名頁面,顯示了更多表項。這一功能的加入沒有影響已有的模式切換功能。框架
測試用例2:post
def test_searchCourse_home(self):
# if raise exception, try adjusting the zoom level
self.driver.get(self.host)
time.sleep(3)
e20 = self.driver.find_element_by_id("buttonSelectDepartment")
e20.click()
e21 = self.driver.find_element_by_id("departmentList")
e21s = e21.find_elements_by_tag_name('a')
print(len(e21s))
index = 1 # school of math and systematic science
e21s[index].click()
time.sleep(3)
e31 = self.driver.find_element_by_id("searchboxCourse")
e31.send_keys('\n') # you can modify the keywords
time.sleep(6)
解釋:該用例旨在測試首頁的搜索功能。在Gamma階段咱們改變了首頁的前端,這一變動沒有影響舊有的搜索模式。
測試結果截圖:
網站修復以後補上。測試
4. 給出你的測試矩陣(test matrix),也即在什麼樣的平臺、硬件配置、瀏覽器類型……上對你的軟件進行測試?
PC端 |
Internet Explorer |
Windows 10 |
|
|
Microsoft Edge |
Windows 10 |
|
|
百度瀏覽器 |
Windows 10 |
|
|
Chrome |
Windows 10 |
|
|
Safari |
macOS |
|
移動端 |
華爲瀏覽器 |
|
Honor 10 |
|
小米瀏覽器 |
|
Redmi Note 4X |
|
QQ瀏覽器 |
|
Honor 10, Redmi Note 4X |
|
獵豹瀏覽器 |
|
Redmi Note 4X |
|
Chrome |
|
iPhone 6S |
|
Safari |
|
iPhone 6S |
平板電腦 |
華爲瀏覽器 |
|
華爲平板電腦 |
|
Chrome |
|
華爲平板電腦 |
測試結果:優化
- PC端在IE瀏覽器和百度瀏覽器上存在適配問題。IE瀏覽器上沒法查看已有的用戶評論。百度瀏覽器上的用戶評論位置偏上,偏離了前端的矩形邊框。
- 移動端的適配整體上能夠接受。廣泛存在的問題是排名頁和搜索結果頁的表格過於擁擠,用戶沒法看清。
5. 你的軟件Gamma版本的出口條件(exit criteria)是什麼?也即在什麼條件下,認定你的軟件已經足夠好,能夠發佈Gamma版本?
1、用戶的登陸、註冊、找回密碼
用戶登陸:
- 輸入正確的用戶名、密碼、驗證碼(不區分大小寫),可以登陸。
- 上述3項有任何一項錯誤,不容許登陸。
- 用戶能夠點擊「看不清,換一張」來更換驗證碼。
用戶註冊:
- 填寫合法的郵箱、用戶名、密碼,正確的驗證碼(不區分大小寫),系統會向該郵箱發送驗證郵件。
- 點擊郵件中的連接,則成功註冊。
- 郵箱、用戶名、密碼的形式不合法,則不容許註冊並在對應的位置給出提示。
- 驗證碼填寫不正確,不容許註冊。
- 「密碼」和「確認密碼」不一致,不容許註冊。
- 用戶能夠點擊「看不清,換一張」來更換驗證碼。
找回密碼:
- 填寫正確的郵箱、驗證碼,系統會向該郵箱發送郵件。
- 點擊郵件中的連接,可以進入重置密碼頁面。
- 填寫兩次新的密碼並保存,密碼被用戶重置。
- 兩次密碼不一致,不容許重置密碼。
2、搜索課程功能
首頁的搜索功能以下:
1 |
不填 |
不填 |
返回數據庫中的全部課程 |
2 |
xxx學院 |
不填 |
返回xxx學院的全部課程 |
3 |
不填 |
String1 |
返回課程名中含有String1的全部課程 |
4 |
xxx學院 |
String1 |
返回xxx學院,課程名含有String1的全部課程 |
搜索結果頁僅有一個輸入框,返回課程名中包含關鍵字(可不填)的全部課程。
3、排名頁面
- 支持按課程排名和按老師排名兩種模式,用戶可自由切換。
- 兩種模式均按照「綜合評分」由高到低,由上到下進行排列。
- 兩種模式均需顯示四項具體指標的分數和評論次數。
- 該頁面可經過點擊導航欄上的「Rank」按鈕訪問。
4、課程頁面與教師頁面
課程頁面:
- 正確顯示了該課程的名稱和基本信息。
- 正確顯示了該課程當前四項指標各自的平均分。
- 以表格的形式顯示由其它老師教授的該課程、該老師教授的其它課程。
- 顯示全部針對該課程的用戶評論。
- 該頁面可經過排名頁面、搜索結果頁面、課程頁面,點擊課程名稱來訪問。
- 在登陸時,能夠點擊按鈕進入撰寫評論頁面。
教師頁面:
- 顯示了該教師的姓名、頭像(可能爲默認頭像)、我的主頁連接(可能缺失)、所教授的課程。
- 點擊我的主頁連接,可以跳轉到正確的教師我的主頁。
- 該頁面可經過排名頁面、搜索結果頁面、課程頁面,點擊教師的姓名來訪問。
5、用戶評論
- 必須在登陸狀態下才能進入該頁面。
- 正確填寫了四項具體指標的分數、填寫了文字評論後,評論能夠被成功提交。
- 缺任何一項的分數,或文字評論不填,不容許提交評論並進行提示。
- 文字評論支持插入emoji。
- 能夠對其它用戶的評論進行點贊或點踩。
6、修改我的信息與註銷
這兩個功能位於登陸後的導航欄右側。
- 點擊「註銷」則退出登陸。
- 在我的信息頁面,支持修改頭像、學校、學院。
- 在我的信息頁面,可以查看該用戶近期的評論。
7、網站安全性
- 基於https協議訪問。
- 能防範用戶直接向網站post數據。
- 對評論文字進行適當轉義,防範用戶在評論中插入音視頻。
- 經過郵箱驗證與驗證碼機制防範惡意註冊。
8、管理員
- 擁有普通用戶的全部功能。
- 可以瀏覽全部的評論,默認順序爲時間的逆序。
- 可以刪除用戶的評論。
- 若是用戶A的評論被刪除了,那麼A的「信箱」將會收到一條提醒消息。