基本情況資訊
1.自我介紹
2.專案介紹
3.為什么要做測驗,不去做開發
4.測驗需要哪些技能
需要一定的代碼能力、了解計算機網路TCP/IP協議、熟悉資料庫、軟體測驗的基礎理論、協調溝通能力
5、找作業你最看重什么,報酬、價值觀、穩定性
價值觀
作業中,有合得來的同事在能更好地合作、有脾氣好,能聽進意見的領導能更好地溝通、有更多的成長空間和學習機會能更好地努力、遇到的客戶和事情能有效處理就有更高的效率,比起這些,給的工資只需要滿足基本生活要求就可以,因為90后現在更缺的不是金錢,而是符合其要舒適作業價值觀的職業環境,
6、如果有同事沒有完成任務,影響到你的進度,你怎么辦
首先,必須得保證任務完成,因此我肯定會幫忙,后面再委婉得告訴他,我們下次提前一些完成,免得遇到突發情況無時間應對
9、專案三要素,范圍、時間、成本,讓你舍棄一個,你舍棄什么?
10、對公司有什么了解?
招銀網路屬于招商銀行的子公司,主要是作為招商銀行總行科技的重要力量,招銀網路科技的核心業務是為招商銀行全球化發展提供強有力的軟體開發及技術支持
11、概括個人特質(缺點與不足是如何改善的?)
優點:自信開朗,學習能力強,能適應不同的環境,勤奮自律
缺點:小拖延
12、如果作業中遇到自己無法解決的問題,如何與領導溝通?
首先,把目前所遇到的問題每一點都捋清楚,然后給出可能的解決方法,與領導一起商量
13、期望薪資
20W
14、加班能接受嗎
C++
1、鏈表和陣列的區別
1、鏈表是鏈式存盤結構,陣列是順序存盤結構;
2、鏈表通過指標連接元素,而陣列則是把所有元素按順序進行存盤;
3、鏈表插入和洗掉元素不需要移動元素,陣列洗掉和增加元素需要移動元素
2、講一下哈希表
散串列(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的資料結構,也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度,這個映射函式叫做散列函式,存放記錄的陣列叫做散串列,
給定表M,存在函式f(key),對任意給定的關鍵字值key,代入函式后若能得到包含該關鍵字的記錄在表中的地址,則稱表M為哈希(Hash)表,函式f(key)為哈希(Hash) 函式,
*3、二叉樹的前序中序后序*
4、C++虛函式和純虛函式
- 虛函式和純虛函式可以定義在同一個類(class)中,含有純虛函式的類被稱為抽象類(abstract class),而只含有虛函式的類(class)不能被稱為抽象類(abstract class),
2.虛函式可以被直接使用,也可以被子類(sub class)多載以后以多型的形式呼叫,而純虛函式必須在子類(sub class)中實作該函式才可以使用,因為純虛函式在基類(base class)只有宣告而沒有定義, - 虛函式的定義形式:virtual {method body}
純虛函式的定義形式:virtual { } = 0;
在虛函式和純虛函式的定義中不能有static識別符號,原因很簡單,被static修飾的函式在編譯時候要求前期bind,然而虛函式卻是動態系結(run-time bind),而且被兩者修飾的函式生命周期(life recycle)也不一樣,
5、重寫和多載
多載和重寫的區別:
(1)范圍區別:重寫和被重寫的函式在不同的類中,多載和被多載的函式在同一類中,
(2)引數區別:重寫與被重寫的函式引數串列一定相同,多載和被多載的函式引數串列一定不同,
(3)virtual的區別:重寫的基類必須要有virtual修飾,多載函式和被多載函式可以被virtual修飾,也可以沒有,
6、vector和陣列的區別
1、記憶體中的位置
C++中陣列為內置的資料型別,存放在堆疊中,其記憶體的分配和釋放完全由系統自動完成;vector,存放在堆中,由STL庫中程式負責記憶體的分配和釋放,使用方便,
2、大小能否變化
陣列的大小在初始化后就固定不變,而vector可以通過push_back或pop等操作進行變化,
3、初始化
陣列不能將陣列的內容拷貝給其他陣列作為初始值,也不能用陣列為其他陣列賦值;而向量可以,
4、執行效率
陣列>vector向量,主要原因是vector的擴容程序要消耗大量的時間,
資料庫
1、資料庫有哪些資料型別,其中時間型別和字串有什么區別

字串轉時間戳
select unix_timestamp(‘2019-01-20’);
時間戳轉字串
select from_unixtime(1451997924,’%Y-%d’);
2、左右內外連接的區別,關鍵字是什么
左連接: 在 LEFT JOIN 左邊的表里面資料全被全部查出來,右邊的資料只會查出符合ON后面的符合條件的資料,不符合的會用NULL代替,
右連接: 與 LEFT JOIN 正好相反,右邊的資料會會全部查出來,左邊只會查出ON后面符合條件的資料,不符合的會用NULL代替,
內連接: 相當于左連接與右連接的合并,去掉所有含NULL的資料行,剩下的就是查詢出來的資料了,其實就是兩邊的表都必須滿足條件,
3、char和v_char的區別
char有固定的長度,而varchar屬于可變長的字符型別,
char(N)用來存盤非二進制字串,插入時,對于少于N個字符的會自動在尾部加空格,查詢時,尾部的空格就會被丟棄掉
vachar(N) 用來存盤非二進制字串,插入時,對于少于N個字符的不填補空格,查詢時,尾部的空格不會被丟棄掉
4、常見的網路攻擊型別和防范
5、資料庫去重
SELECT distinct job FROM powernode.emp;
6、資料庫查看有多少行
select table_name,table_rows from tables where TABLE_SCHEMA = 'databaseName' order by table_rows desc;
select sum(table_rows) from tables where TABLE_SCHEMA = "test" order by table_rows asc;
7、資料結構幾個排序演算法

8、一張表有學生姓名、班級、分數,找出平均分大于60的班級;
select distinct from student order by stu_id
9、資料庫的密碼怎么改
1.打開cmd進入MySQL的bin目錄;(如我的路徑是F:\MySQL\mysql-5.7.24-winx64\bin)
2.通過輸入命令 mysql -u root -p 指定root用戶登錄MySQL,輸入后回車會提示輸入密碼,輸入我們原來的密碼然后回車,
3.修改MySQL的root用戶密碼,格式:mysql> set password for 用戶名@localhost = password(‘新密碼’);
例如(上面例子將用戶root的密碼更改為root):mysql> set password for root@localhost = password(‘root’);
4.退出mysql重新登錄,輸入新密碼root登錄就可以了;
10、資料庫如何創建一個存盤程序
存盤程序,帶有邏輯的sql陳述句
1)執行效率非常快!存盤程序是在資料庫的服務器端執行 2)移植性很差!不同的資料庫的存盤程序是不能移植的,
11、MySQL的監聽埠,安裝后有幾個庫
默認監聽埠號是3306
四個庫:
information_schema,資料字典
performance_schema,主要用于收集資料庫服務器性能引數
mysql 系統表
test 空白
12、對視圖的了解,視圖有持久性嗎;
視圖(VIEW)也被稱作虛表,即虛擬的表,是一組資料的邏輯表示,其本質是對應于一條SELECT陳述句,結果集被賦予一個名字,即視圖名字,
視圖本身并不包含任何資料,它只包含映射到基表的一個查詢陳述句,當基表資料發生變化,視圖資料也隨之變化,
不具備持久性
13、商品數量減少,但資料庫沒更新的原因
不可能每秒就查詢一次當前的值,可能是查詢的時間間隔還沒到
計網
1、三次握手四次揮手,為什么是這么多次,
2、計網有哪些層,每一層的作用,有哪些協議,https原理
3、https和http區別
4、執行緒和行程的區別,多執行緒怎么保證互不干擾;
5、死鎖,死鎖了怎么辦;
6、cookie session
7、哈希map,哈希table
8、B+樹
代碼
1、找出字串中重復的字符?怎么測驗(count計數)
#include<iostream>
#include <vector>
#include <string>
#include <set>
#include <algorithm>
using namespace std;
int main(){
string s;cin>>s;
vector<char> ans;
for(int i=0;i<s.size();i++){
//直接count計數就可以了
int k=count(s.begin(),s.end(),s[i]);
if(k>1){
ans.push_back(s[i]);
}
}
set<char> s1 (ans.begin(),ans.end());
vector<char> ans1(s1.begin(),s1.end()); //去重
for(int i=0;i<ans1.size();i++){
cout<<ans1[i]<<" ";
}
return 0;
}
2、常用語言是C++,寫一道水仙花數
水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等于它本身,例如:1^3 + 5^3+ 3^3 = 153,
輸入: m n
輸出: m n 范圍內的水仙花數
#include<iostream>
#include <vector>
#include <cmath>
using namespace std;
int main(){
int m;cin>>m;int k=m;vector<int> ans;
//m一直在改變呀
while(m){
ans.push_back(m%10);
m=m/10;
}
int result=0;
for(int i=ans.size()-1;i>=0;i--){
result += pow(ans[i],3);
}
if(result == k){
cout<<"是水仙花"<<endl;
}
else cout<<"不是水仙花數"<<endl;
return 0;
}
3、代碼題:檢測輸入字符的合法性,輸出規定的計算結果
#include <iostream>
#include <string>
using namespace std;
int main()
{
int a, b,c;
string name;
cin >> name;
a = name.find_last_of('c');//從后往前數 第一個出現字符C的index
b = name.find_last_of('.');//從后往前數 第一個出現字符.的index
c= name.find_first_of('.');//從前往后數 第一個出現字符.的index
cout<<a<<" "<<b<<" "<<c<<endl;
if (a==name.length()-1&&b == name.length()-2&&a!=string::npos&&b!= string::npos&&c!=0)
cout << name +"pp";
else cout << "invalid";
return 0;
}
4、閏年寫測驗用例
#include <iostream>
using namespace std;
int main()
{
int n;cin>>n;
int k=((n%4==0 && n%100==0) || n%400==0);
if(k!=0){
cout<<"是閏年"<<endl; //2000
}
else cout<<"不是閏年"<<endl; //1990
return 0;
}
5、判斷回文
/*判斷回文數*/
#include<iostream>
#include<vector>
using namespace std;
bool func(int n){
vector<int> arr;
while(n){
arr.push_back(n%10);//各位
n= n/10;
}
for(int i=0;i<arr.size()/2;i++){
if(arr[i]!=arr[arr.size()-i-1]){
return false;
break;
}
else{
return true;
}
}
}
int main(){
int n;
while(cin>>n){
if(n<0){
cout<<"不是回文數"<<endl;
}
else{
if(func(n)){
cout<<"是回文數"<<endl;
}
else{
cout<<"不是回文數"<<endl;
}
}
}
return 0;
}
6、重新解釋一下陣列去重的原理
7、佇列和堆疊的區別,c=a+++b,用堆疊實作佇列;
(1)佇列的插入稱為入隊,佇列的洗掉稱為出隊;堆疊的插入稱為進堆疊,堆疊的洗掉稱為出堆疊,
(2)佇列是在隊尾入隊,隊頭出隊,即兩邊都可操作;堆疊的進堆疊和出堆疊都是在堆疊頂進行的,無法對堆疊底直接進行操作,
(3)佇列是先進先出(FIFO),即佇列的修改是依先進先出的原則進行的,新來的成員總是加入隊尾(不能從中間插入),每次離開的成員總是佇列頭上(不允許中途離隊);而堆疊為后進先出(LIFO),即每次洗掉(出堆疊)的總是當前堆疊中最新的元素,即最后插入(進堆疊)的元素,而最先插入的被放在堆疊的底部,要到最后才能洗掉,
8、n的階乘;
#include <iostream>
using namespace std;
int main()
{
int n;cin>>n;
int ans=1;//4!=4*3*2*1
while(n){
ans *=n;
n--;
}
cout<<ans<<endl;
return 0;
}
9、代碼字串倒序
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s;cin>>s;
string s1;cin>>s1;
reverse(s.begin(),s.end()) ;
cout<<"s: "<<s<<endl;
for(int i=0;i<s1.size()/2;i++){
swap(s1[i],s1[s1.size()-i-1]);
}
cout<<"s1: "<<s1<<endl;
return 0;
}
測驗
1、測驗一個web頁面
一、功能測驗
輸入正確的用戶名和密碼,點擊提交按鈕,驗證是否能正確登錄,登錄成功后跳轉至對應的頁面;
輸入錯誤的用戶名或者錯誤的密碼,點擊提交會登錄失敗,并且有相應的錯誤提示框;
登錄成功后能否能否跳轉到正確的頁面;
用戶名和密碼,如果太短或者太長,應該怎么處理;
用戶名和密碼,中有特殊字符,和其他非英文的情況,是否允許輸入等;
用戶名和密碼前后有空格的處理;
密碼是否以星號(*)顯示;
記住用戶名的功能(用戶名和密碼是否可以被瀏覽器記住)
登陸失敗后,不能記錄密碼的功能;
二、界面測驗
布局是否合理,2個testbox和一個按鈕是否對齊;
testbox和按鈕的長度,高度是否復合要求;
界面是否好看;
圖片,顏色,字體,超鏈接,是否都顯示正確
三、性能測驗
打開登錄頁面需要幾秒
輸入正確的用戶名和密碼后,登錄成功后跳轉到新頁面不超過5S
能同時支持多少個用戶同時登錄
四、安全性測驗
登錄成功后生成的Cookie,是否是httponly (否則容易被腳本盜取);
用戶名和密碼是否通過加密的方式,發送給Web服務器;
用戶名和密碼的驗證,登錄完成后查看服務器日志驗證正確,而不僅僅是前端JavaScript驗證;
用戶名和密碼的輸入框,應該屏蔽SQL注入攻擊;
用戶名和密碼的的輸入框,應該禁止輸入腳本(防止XSS攻擊);
錯誤登陸的次數限制(防止暴力破解);
五、可用性測驗
是否可以用全鍵盤操作,是否有快捷鍵;
輸入用戶名和密碼后按回車,是否可以登錄;
六、兼容性測驗
主流的瀏覽器下能否顯示正常,并且功能正常(IE,7,8,9,10,Firefox, Chrome, Safari,等);
不同的平臺是否能正常作業,比如Windows, Mac;
移動設備上是否正常作業,比如Iphone;
2、測驗他們的系統,錢轉出去沒到賬有哪些可能原因
網路延遲
收款人的資料填寫錯誤,比如賬號呀
轉賬需要一定的時間
系統故障
3、對于掌上銀行app中積分商城這個物件,你會從哪些方面去測驗它
登錄界面,積分獲得、積分到賬,積分有效期限,積分更新,消費、資訊更新,交易功能,不同網路條件下的功能測驗
4、測驗一個撥打電話的功能
功能:
性能:撥打之后,對方多久能收到;雙方通話的延遲時間;雙方通過的耗電量;
例外:在通話中是否能撥打電話;在通話中是否能接聽電話;
弱網:沒有信號 5G 4G 3G 2G wifi
兼容:不同的運營商 不同的系統 不同的機型 不同的版本
5、舉例子講一下邊界值測驗
銀行轉賬有一些限額,好像每天在ATM上最多只能取兩萬
取帶小數的
取不是100的整數(199)
取3000
取20000
6、銀行查詢余額功能測驗?
1、沒有錢可以查么
2、
7、微信掃碼測驗

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302230.html
標籤:其他
上一篇:從銷售自學轉行軟體測驗!我的自學經歷值得每個想轉行的人借鑒!!!
下一篇:2021-09-22
