測試篇-理論知識

一:首先軟件測試的基本流程:

1.產品提出需求,相關人員進行開會討論確認需求,保證需求可執行。

2.前端,後臺相關人員進行功能開發,測試編寫測試用例。

3.前端與後臺進行聯調完畢後,測試進行冒煙測試,確保測試對象正常運行。

4.進行測試接口測試,仿真測試以及最終的線上測試,發現bug上傳禪道通知相關人員確認並進行修改,修改後進行迴歸測試,妥善保存測試計劃、測試用例、出錯統計和最終分析報告,爲維護提供方便。

5.整體bug全部修改完畢,重新走完流程確保無遺漏,編寫測試報告交付產品經理或者項目經理確認最終進行打包上線。

 

測試用例的內容點:功能測試(當前所有的功能點通過性測試),界面易用性(是否符合需求),中斷測試(APP切換,斷網斷電,來電信息),性能測試(客戶端:耗電量,運行內存,服務器:響應時間,壓力測試),安全測試(授權,代碼是否會被獲取,是否做混淆或者加密),兼容性(不同版本,瀏覽器,機型),網絡(wifi,熱點,4G,無網,不同運營網絡測試,弱網(延時,丟包))

 

二:軟件測試的基本原則:

1.測試軟件存在缺陷。證明測試對象是有缺陷的。

2.測試儘早介入,缺陷發現越早,修復成本越小。

3.不可進行窮盡測試(無意義測試)。

4.缺陷集羣性(2/8原則)80%的缺陷發現在20%的模塊中。

5.殺蟲劑悖論,如果一直使用相同的測試方法或手段,可能無法發現新的bug。

6.測試環境的特殊新,測試活動依賴測試內容,不同的行業,測試活動的開展都有所不同,比如測試技術、測試工具的選擇,測試流程都不盡相同,所以軟件測試的活動開展依賴於所測試的內容

7.不存在缺陷謬論,軟件測試不僅是找出缺陷,同時也需要確認軟件是否滿足需求。

 

三:測試級別(按開發階段):

1.單元測試(Unit Testing):針對被測的最小組成單元實施的測試(類,函數,功能模塊)

2.集成測試(Integration Testing):組件間,單元與組件間,單元之間的接口測試,驗證接口是否符合設計,接口是否調通。

3.系統測試(System Testing):充當用戶對軟件進行測試。

4.驗收測試(Acceptance Testing):線下測試,uat仿真測試,線上真實測試。α測試 = 內測  β測試 = 公測  UAT測試 = 正式版 

 

四:測試分類:

1.功能測試(嚴重當前功能是否正常運行)(白,黑,灰測試)

2.兼容性測試(驗證軟件在不同情況下的表現)

3.安全測試(驗證安裝在系統內的保護機制在實際應用中不被入侵不受因素影響,在發佈之前找到問題並解決降低成本)

4.性能測試(通過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試)


5.按測試對象分類:
    1.白盒:軟件內部,底層代碼
    2.黑盒:軟件的主體功能
    3.灰盒:既兼顧黑盒又要兼容白盒,(接口測試)

6.測試對象是否執行:
    1.靜態測試:測試不執行(佈局,頁面)
    2.動態:將軟件運行在真實的環境中測試

7測試手段:
    1.手動測試;由測試進行手動驗證
    2.自動化測試:(腳本測試)、(第三方測試工具)

8.軟件質量:(功能靠用,效率可移)
    1.功能性(滿足顯示或者隱式需求)、易用性(易學)、可靠性、效率性、可維護性()、可移植性(在不同平臺上使用)

 

     
day02:

編寫測試用例:

    用例編號    九悅-首頁-定位
    日期    
    測試人    
    測試目的    定位
    執行條件        
    測試過程        
    預期結果        
    實際結果    
    bug 等級    致命    嚴重    一般    低級    


1.4測試用例的設計方法
1.等價類劃分
   使用場景:  在有輸入框使用等價類劃分以及邊界值法混合使用
按照需求將窮盡數據進行分類 區分去有效的數據和無效的數據
有效數據成爲 有效等價類  

無效數據成爲 無效等級類

2.邊界值
     使用場景:  在有輸入框使用等價類劃分以及邊界值法混合使用
      有效邊界值     1-100
      無效邊界值     -1 ---負數的無窮盡
                       101--整數的無窮盡
3.因果法
     應用場景: 
一個界面有多個操作,多個操作之間有一定的組合關係或者是限制關係
輸入不同的操作會產生不同的效果

4.場景法
      應用場景:
     在界面沒有過多的填寫項,所有的操作都是通過鼠標的單擊雙擊 
金融類 遊戲類 硬件交互類

ATM取款機
 取款失敗的場景:
1.密碼錯誤
2.賬號餘額不足
3.Atm中沒有錢
4.吞卡
5.超限
6.無效的銀行卡
7.非銀行卡
5.判定表
6.正交
7. 隨機法  
  使用場景:  列表數據中實現隨機數據
在無窮中的數據中隨機選擇進行測試

    

day03:


測試強度
       測試強度在有需求文檔或者api的時候可以根據需求文檔測試
      在沒有測試文檔或者是api的時候,可以根據個人經驗是否測試
   
考慮的因素:
1.2個整數(正整數 負整數)
2.2個輸入框是否爲空
3.特殊符號
4.中英文字母/漢字
5.提醒框 / 輸入框是否重置

Bug是指在代碼中存在的

1.2軟件缺陷
      定義: 缺陷就是軟件的問題,最終表現爲沒有客戶的需求  

 1.3哪些屬於軟件缺陷
1.軟件沒有達到規格說明書定義的功能
2.軟件出現了規格說明書上指明不能存在的錯誤
3.軟件功能超出了說明書上的範圍
4.軟件測試人員或者用戶覺得不友好的
5.軟件未達到說明書上應該具有的功能   

 1.4軟件缺陷的表現形式
1.功能上沒有實現或者部分沒有實現
2.設計不合理 功能不明確的 邏輯不清楚的 或者是邏輯本身就是存在矛盾
3.實際結果與預期結果不同
4.沒有達到規格要求說明書上的要求性能指標
5.運行有錯的 崩潰  中斷 頁面混亂
6.數據不正確 精度不夠  不完整 或者是格式不統一
7.用戶不能接受的問題。如果存取時間過長,頁面不美觀  小廣告太多
8.硬件或者軟件存在的其他問題

 1.5軟件缺陷的狀態(生命週期)
1.提交    -- 測試人員提交發現的缺陷給開發
2.打開   --  將缺陷轉一個待處理的狀態
3.拒絕   --  開發者不認爲這是一個缺陷 
4.修復   --  開發者將缺陷進行修改
5.關閉   -- 測試人將進行迴歸測試之後認爲該缺陷已經解決後 
6.推遲   -- 將問題持續到下一個版本中在去解決 但是要記錄詳細的修復日期或者版本
 
測試人員新提交的缺陷爲  新建狀態,在確認有效後將缺陷狀態改爲 打開狀態,
開發人員修改後  已修復狀態   測試人員需要進行迴歸測試,如果驗證問題已解決 將狀態改爲 修復狀態  如果經過迴歸測試驗證缺陷依然存在  將缺陷的狀態改爲 打開狀態 讓開發再次修復。如果開發人認爲此缺陷需要延期修復 將缺陷的狀態改爲延期(推遲狀態)
 延期的時候有項目負責人 開發主管 測試主管確認 纔可以延期 否則還是打開狀態

  1.6軟件缺陷的嚴重程度進行劃分
1.low     -- 表面性錯誤   
2.Medium  -- 影響到一個對立的功能,僅僅發生在特定條件下 與需求定義的不臺一直 斷斷續續的出現的問題
3.High      -- 功能點沒有實現不符合客戶的需求 導致丟失數據 
4.Veryhigh   -- 頻繁死機 大部分功能不能使用
5.Critical     -- 系統癱瘓 異常退出 死循環 嚴重計算失誤

結局缺陷的優先級

1.low  --時間和資源允許情況下進行修復
2.Medium -- 不會延遲發佈 
3.Highh  -- 必須在發佈之前解決
4.Veryhigh    --必須解決  
5.Critical    --  

1.7 軟件的缺陷的分類:
   1.系統缺陷
   2.數據缺陷
   3.數據庫缺陷
   4.接口缺陷
   5.功能缺陷
   6.安全性缺陷
7.兼容行缺陷
8.性能缺陷
9.界面缺陷

 17缺陷報告 
       1.7.1 書寫規範:
       1.標題簡潔  提供缺陷的本質信息即可
       2. 復現的步驟要詳細 可以用數字編號(測試用例的編號)
       3.實際結果要描述浮現後的結果
       4. 列出期望結果(在測試用例中存在期望結果可以不寫) 
       5.提供條件(可以在測試用例)
       6.提供嚴謹的測試報告給開發人員


  缺陷報告的使用以及測試用例的案列
  https://blog.csdn.net/weixin_41948075/article/details/89287926

day4:

Mysql
1.1數據庫的介紹:
      數據庫從小到大的分類:
      大型數據庫   Oracle  Db2
      中型數據庫    sqlserver  
      小型數據庫    mysql
      微型數據庫    sqlite
1.2 數據庫的安裝
      數據庫分爲服務端和客戶端
   客戶端分爲常用的可視化工具類: 貓抓  小海豚
   安裝的注意事項:  
1.如果安裝失敗 需要在註冊表將數據完全刪除  (運行輸入regedit  使用ctrl+F 查找並刪除)
2. 安裝的時候 一定要更改編碼  utf-8
3. 允許多個人員多數據庫的訪問
4. Mysql的端口號  3306   mysql只有用戶權限 root 
5. 卸載mysql的服務端  同時將文件安裝後的文件夾刪除  


1.3數據庫的數據類型
        整數類型   int  bigint
        小數類型   float  double
        字符串類型      char(10)   數據庫會分配一個長度爲10個空間 長度是不可以                        發生改變
Varchar(10)數據庫會分配一個長度爲10個空間 長度是可以發生改變的
        時間類型    date   time  datatime   timestamp(時間戳)
大數據類型     blob  clob
文本類型       text
1.4 sql的分類
       DDL   數據庫定義語言      create  alter  drop (對庫和表的操作)
       DCL   數據庫控制語言      grant  revoke
       DML  數據庫的操作語言     insert into    update  delete 
       DQL  數據庫的查詢語言      select  order by  group by  limit  inner join  left                                     join    right  join
1.5 sql的注意事項
        1. mysql不區分大小寫
        2. 數據庫的中註釋以 #   /**/   -- 
        3. 數據庫的 “”  ‘’ 沒有區別
1.6sql表語句
1.查看所有數據庫  
Show databases  
2.新建數據庫
Create database  數據庫的庫名  
3.刪除數據庫
Drop database  數據庫的庫名
4. 切換數據庫
       Use 數據庫庫名
5.查看當前數據庫的表
   Show tables 


1創建表
 Create table 表名(
字段名  數據類型   約束條件,
字段名1  數據類型1,
字段名2  數據類型2,
)
  

  Sql約束條件:
     自增  auto_increment       
     主鍵  primary key
     非空  not null
唯一 unique
默認值  default
外鍵  foreign key  (實現多表的聯查)


Eg:
  Crate table student(
Id  int  primary key  auto_increment unique,
Stu_id  int not null unique,
Stu_name varchar(20),
Stu_sex default sex(‘男’),
    Stu_age int
)


1.6.2對錶結構的操作
         查看錶結構
Desc 表名   查看的是表的 字段名  數據類型 約束條件
         查看建表語句
            Show crate table  表名
          修改表名
             Alter table 舊錶名 rename 新表名
         修改字段
             Alter table 表名 change 字段名 新字段名 數據類型
          添加字段
             Alter table 表名 add 字段名 數據類型
          刪除字段
             Alter table 表名 drop 字段名
           刪除表
                Drop table 表名


1.6.3  對錶的增 刪  改 
                 增:
1.單條數據的增加
  Insert  into 表名(字段名) values (字段值)
2.多條數據的增加
                           Insert  into 表名 (字段名) values (字段值1),(字段值2),(字                            段3).。。。。


 
               刪除:  delete from 表名 where 刪除條件
1.物理刪   
 將數據從數據庫中刪除
2.邏輯刪
 將數據的狀態從1改爲 0  (0 爲不顯示  1顯示)

              修改:
                               Update form  表名 set  字段名=字段值 where 條件
                          跟新一行一列
                        Update 表 set 字段名 = 字段值 where id = 1
更新一行多列
Update 表 set 字段名 = 字段值 where  name=‘張鵬’
更新多行一列
Update 表名 set 字段名 = 字段值 where id>=3 and id <=5
跟新多行多列
 Update 表名 set 字段名 = 字段值 where  id = 2 or id= 3
跟新多個字段
 Update 表名 set 字段名1= 字段值 1, 字段2 = 字段值2 where 條件

   1.6.4 對錶的查詢
              1. 查詢所有:(*代表的是通配符 代表所有數據 可以換成 具體的字段查詢)
Select * from 表名
2. 條件查詢
Select * from 表名 where 條件

3.區間查詢       
     
Select  * from 表名 where id >3 and id<5    
Select  * from 表名 where id >3 or id<5    
4.排序查詢   order by   
升序 asc    (mysql中默認的就是asc)
降序 desc

Select * from 表名 order by stu_age asc/desc
5.分頁查詢   limit  初始值,記錄行數(每頁顯示的行數)
  Select * from stu limit 0,3
每頁記錄數 pagesize
頁碼數  pageNumber

Limit(pageNumber-1) * pagesize   ,  pagesize
 真分頁   將查詢出來的所有數據直接分頁 
 假分頁   將查詢出來的所有數據在頁面展示的時候在進行分頁


6.去重查詢   distinct  一般和聚合函數一起使用
7.模糊查詢   like  
%  相當於任意字符
 _  相當於一個字符
     
Select * from 表名 where  字段名 like ‘%張%’
Select * from 表名 where  字段名 like ‘張_’
8.分組查詢 group by
    Select * from 表名 group by sex  =‘男’
9.having  實現分組進行查詢 

     1.6.5  sql中範圍符號
                 And   or   in  
                Between and    1 > M< 10  (錯誤的)

1.7聚合函數
         1.7.1求和  
                      Sum(字段名)

         Select  sum (stu_age) from 表名 
       1.7.2 求平均    
Avg(字段名)
Select  avg(stu_age) from 表名 
1.7.3 求最大值
Max(字段名)
Select  max(stu_age) from 表名 
       1.7.4 求最小值
Select  min(stu_age) from 表名 

   1.7.5 求總的行數
     Select  count(stu_id) from 表名 
                 
1.8 單表查詢的公式
Select 分組條件 或者 聚合函數
From 表名
Where 條件 1
Group by 分組條件
Having  分組後的條件
Order by 排序條件
Limit   起始位置,記錄數

  1.9多表聯查
-- 實現使用笛卡爾積  
  --  內連接   INNER JOIN  
  --  外連接   左外鏈  LEFT JOIN
    --                      右外聯  RIGHT JOIN

-- student 和中間表  stu_subject 實現相連
   select stu_name,sj.subjectname from student  as stu
   INNER JOIN stu_subject  as stu_sub
   ON stu.stu_id = stu_sub.stu_id
-- 中間表和 subject 表實現相連
   INNER JOIN `subject` as sj
   ON stu_sub.subjectnumber = sj.subjectnumber

 

兩表聯查:

共同字段sid,查詢表1的name,age,表2的成績

SELECT 表1.字段,表1.字段,表2.字段 FROM 表1,表2 WHERE 表1.sid = 表2.sid

SELECT stu1.sname,stu1.sage,stu2.cj FROM stu1,stu2 WHERE stu1.sid = stu2.sid

SELECT stu1.sname,stu1.sage,stu2.cj FROM stu1 LEFT JOIN stu2 ON stu1.sid = stu2.sid

 

 


     


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章