测试人员技能要求
把測試人員的需要掌握的技能細分,可以劃分成下四類。如圖3.5
1.業務知識
對業務知識了解的越多,測試越貼近用戶的實際需求,并且測試發現的缺陷也是 ,并且測試發現的缺陷也是用戶非常關注的缺陷,同時還是項目經理、開發人員都會認為很重要的缺陷。
2.產品設計知識
測試人員對與軟件產品相關信息了解越多,對測試越有利,軟件的架構方面的信息了解的越多,越有利于把測試進行的更深入。
3.測試人員需要了解軟件架構知識
如果不了解軟件架構知識,則很難有效的幫助開發人員定位性能瓶頸。很難幫助開發人員解決性能問題。
?4.測試人員需要了解統一建模語言
現在大部分軟件開發組織都在使用統一的建模語言(UML)指導設計和開發。其實UML對測試也有指導意義,測試人員也非常必要學習一下UML知識。
UML中的用例圖可以指導測試人員進行功能測試。
類圖可以指導單元測試。
狀態圖、協作圖和活動圖可以指導測試用例的設計。
順序圖可以用于系統測試、流程測試。
構件圖可以用于指導單元測試和回歸測試。
配置圖可以指導性能測試、環境測試、兼容性測試等。
5.測試人員的“武器”
優秀的測試人員無一例外地掌握了多樣的測試工具,在適當的時候派上用場。下面介紹一些測試用的工具。
6.測試人員需要掌握的測試工具
不同的項目采用的技術手段可能不一樣,采用的平臺、開發工具、語言、控件也會不完全一樣。
這可能導致某個測試方法、測試工具在項目A很好用,但是到了項目B就無效了。
例如:項目A中使用LoadRunner可以錄制腳本,而到了項目B就錄制不下來,原因有可能是不同項目的產品采用的協議是不一樣的。
在項目A可能是B/S結構,采用HTTP協議,而到了項目B可能是C/S結構,使用的ADD.NET2.0協議。
7.測試需要掌握開發工具
比如,如果要進行白盒測試,對開發工具的掌握就必不可少了。
?
注: LoadRunner,是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,
LoadRunner能夠對整個企業架構進行測試。企業使用LoadRunner能最大限度地縮短測試時間,優化性能和加速應用系統的發布周期。
LoadRunner可適用于各種體系架構的自動負載測試,能預測系統行為并評估系統性能。
8.用戶心理學
測試應該始終站在用戶、使用者的角度考慮問題,而不應該站在開發人員、實現者的角度考慮問題。因此,必須掌握用戶心理模型、用戶操作習慣等。
9.界面設計中的3種模型
- 設計者模型通常關心的是對象、表現、交互過程等。
- ? ? ? ?用戶模型通常關注的是目標、信心、情緒等。
- ? ? ? ?實現者模型關注的數據結構、算法、庫等界面實現時要考慮的問題
?
?10.人機交互認知心理學
- ? 一致性:指是從任務完成、信息傳達、界面操作和控制等方面應該與用戶理解和熟悉的模式jing盡量保持一致。
- ? ? ? ? 兼容性:指的是用戶期望和界面設計的實現之間要兼容。
- ? ? ? ? 適應性:用戶應該處于控制地位,因此界面應該多方面的適應用戶。
- ? ? ? ? 指導性:通過任務提示和及時的反饋信息來指導用戶,需要做到“以用戶為中心”。
- ? ? ? ? 結構性:界面設計應該是結構化的,以減少復雜度。
- ? ? ? ? 經濟型:界面要用做少的步驟來實現一個用于支持用戶業務的操作。
?11.腳本語言
腳本語言受到大部分測試人員的歡迎,例如:Perl,Python,Ruby等,因為他們簡單、易用、有效、程序的產量高,能用做少的代碼實現最多的功能。
我們來對比一下C++程序與 Python程序的區別,下面用python編寫代碼
?先看python代碼:
if __name__ == '__main__':file_name = input('請輸入要查找的文件名:') try:in_file = open(file_name, 'r', encoding='utf-8')lines = in_file.readlines()tag_tok = ''while tag_tok.upper() != 'Q':tag_tok = input('輸入您要查找的字符(Q for quit):')if tag_tok.upper() != 'Q':count = 0line_no = 0for line in lines:line_no += 1inline_cnt = line.count(tag_tok)count = count + inline_cntif inline_cnt > 0 :print('找到字符%s %d次,在行:%d' % (tag_tok,inline_cnt,line_no))print(line)print('##########################')print('總共找到%s %d次' % (tag_tok,count))in_file.close() except:print('找不到文件%s' % (file_name))?
再看C++代碼(是不是要多出30多行):
#include <io.h>void find_fold(const char* mainDir, std::vector<string> &files) {files.clear();intptr_t hFile; //win10 need long long or intptr_t, long will show error_finddata_t fileinfo;char findDir[250];strcpy_s(findDir, mainDir);strcat_s(findDir, "\\*.*");if ((hFile = _findfirst(findDir, &fileinfo)) != -1){do{if ((fileinfo.attrib & _A_SUBDIR))//find fold{if (fileinfo.name[0] == '.') //avoid . ..continue;char filename[_MAX_PATH];strcpy_s(filename, mainDir);strcat_s(filename, "\\");strcat_s(filename, fileinfo.name);string temfilename = filename;files.push_back(temfilename);cout << temfilename << endl;}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);} }void find_file(const char* mainDir, std::vector<string> &files) {files.clear();intptr_t hFile; //win10 need long long or intptr_t, long will show error_finddata_t fileinfo;char findDir[250];strcpy_s(findDir, mainDir);strcat_s(findDir, "\\*.jpg");if ((hFile = _findfirst(findDir, &fileinfo)) != -1){do{if (!(fileinfo.attrib & _A_SUBDIR))//find fold{if (fileinfo.name[0] == '.') //avoid . ..continue;char filename[_MAX_PATH];strcpy_s(filename, mainDir);strcat_s(filename, "\\");strcat_s(filename, fileinfo.name);string temfilename = filename;files.push_back(temfilename);cout << temfilename << endl;}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);} }void main() {std::vector<string> files;find_fold(trainDir, files); //find folder firstfor (auto d : files){std::vector<string> jpgs;find_file(d.c_str(), jpgs); //find file in each folder} }?
12.文檔能力
一個優秀的測試人員應該善于利用這些書面溝通方式來表達自己的觀點、體現自己的能力和價值。
我們可以對比表3-2所示的對于同一個Bug兩份報告的不同描述方式,想象一下開發人員會喜歡哪一個?
摘自:《軟件測試技術大全》
?
轉載于:https://www.cnblogs.com/eric88/p/10480577.html
總結
- 上一篇: scrum敏捷开发工具leangoo如何
- 下一篇: 题解 【USACO 4.2.1】草地排