Cody Blog

Software development

如何寫 Bug Report

一個好的 Bug Report 應該要提供明確的資訊,可以讓 Developer 快速重視問題,減少分析問題的成本。而管理階層的人從報告可了解問題的嚴重性,進而決定解決這個Bug時間表。

Bug Report 應該要有的欄位

  1. 標題
    說明要明確,直指問題核心,說明問題發生的模組

不好的標題: 照片無法上傳
比較好的標題: 當照片尺寸大於10MB,手機無法使用自動上傳照片

  1. 問題重現步驟(Steps to reproduce)
    除了要找出可以重視問題的Steps之外,還要盡量縮小(narrow down)步驟,找出重現問題的關鍵步驟。通常最後一步會寫"預期的結果"(expected result),實際發生的結果有什麼不同。

    1. 安裝 APP
    2. 使用 Google 帳號登入
    3. 點選登入按鈕
      預期結果: 登入成功,進入活動列表
      實際結果: 登入失敗,出現伺服器連接錯誤
  2. 嚴重性
    Blocker: 產生無法使用,要立即解決,像是產品無法安裝
    Criticl: 嚴重的問題,需要儘早解決
    Major: 重要的問題,需要在產品上線前解決
    Minor: 次要的問題,不一定要解決,有列入已知問題(kownn Issue)的空間
    Trival: 不直接影響使用者使用,像是打錯字,等等

  3. 問題發生的版本號

  4. 發生的頻率
    每次/常常/偶爾/很少

  5. 附件: 錯誤畫面的截圖,相關Log檔案以及任何可以幫助分析問題的檔案

一些原則

  1. 如果測試一次發現多個問題,不要把多個 bug 寫在同一筆issue裡,分開一筆一筆記錄,這樣才可以獨立被解決跟驗證(Verify)
  2. 確認這個 bug 是否已經記錄過了? 不要重覆發。

Bug Workflow

這是一張在網路上找到一個比較簡單的 bug workflow

img

nmap 筆記

NAMP 是一套網路掃描的工具

Nmap

$ nmap ip

$ nmap [ip1 ip2]

$ namp 192.168.10.1/24

隨機掃描目標(慎用)

$ nmap -iR 3

Ping

$ nmap 172.16.21.134 172.16.21.135 -sP

Starting Nmap 6.40 ( http://nmap.org ) at 2014-04-24 09:38 CST Nmap scan report for 172.16.21.134 Host is up (0.00084s latency). Nmap done: 2 IP addresses (1 host up) scanned in 1.21 seconds

Traceroute

# sudo nmap 8.8.8.8 --traceroute

Starting Nmap 6.40 ( http://nmap.org ) at 2014-04-24 09:39 CST
Nmap scan report for google-public-dns-a.google.com (8.8.8.8 ...

Execute Sikuli Script at Jython level on Windows 7

  1. Install JRE 32-bit

  2. Install Sikuli

    https://launchpad.net/sikuli/sikuli-api/1.0.0/+download/Sikuli-IDE-1.0.0-Win32.zip

  3. Set Environment

    JYTHONPATH=C:\jython2.5.1\Lib;C:\Sikuli-IDE-1.0.0-Win32\sikuli-script.jar\Lib CLASSPATH=C:\Sikuli-IDE-1.0.0-Win32\sikuli-script.jar PATH=C:\Program Files\Java\jre7\bin;C:\jython2.5.1\bin;C:\Sikuli-IDE-1.0.0-Win32\libs SIKULI_HOME=C:\Sikuli-IDE-1.0.0-Win32

  4. Sikuli sciprt

example:

from sikuli.Sikuli import *
doubleClick(r"C:\siku.sikuli\1370345639170.png")

Install Sikuli-IDE on Ubuntu 12.04

sudo apt-get install sikuli-ide
sudo apt-get install libopencv-*

Reference :

Install testlink on CentOS

In this post, I'll try to explain how to install Test link 1.9.3 on CentOS 6.2 step by step:

Using yum to install required packages

yum install mysql-server php php-mysql php-gd php-ldap

Modify /etc/php.ini to optimize php configuration for TestLink

session.gc_maxlifetime = 2400
max_execution_time = 120

Set up web server and mysql services

 chkconfig httpd on
 chkconfig mysqld on
 service httpd start
 service mysqld start

Set a password for mysql root user

 mysqladmin -u root password NEWPASSWORD

Add port 80 to iptables, Add the following rule into /etc/sysconfig/iptables

-A INPUT -m state --state ...

Install Jenkins on CentOS 6.3

安裝 JDK

CentOS預設的JAVA版本和Jenkins不相容,所以要改安裝 OpenJDK 。可以用 yum search 檢查應該安裝那一個版本: yum search openjdk 會有 java-1.6.0 跟 java-1.7.0 兩個版本可供安裝,在此我選擇比較新的版本:1.7.0: yum install java-1.7.0-openjdk -y

安裝 Jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins -y

設定 Jenkins

  1. 修改 iptables : 打開 80 Port,編輯/etc/sysconfig/iptables,把下面的rule加到最後一條 iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

  2. 讓 Jenkins 開機自動啟動 chkconfig Jenkins On

  3. 編輯 Jenkins ...

軟體測試人的每日體操

之前讀了一本軟體測試的書《贏在測試》,裡面主要以訪談的形式來訪問中國界的軟體測試界的前輩,像是Google的段念,IBM的陳雅麗等。詳細誰講了什麼,我記不清了。但是裡面有前輩提到做軟體測試的人很容易忘了讓自己持續的進步,而漸漸地失去競爭力。這也難怪,因為做軟體測試畢竟永遠不是公司內最核心的研發主力,普遍來說技術水平比開發人員要求來得低一些。

之前讀到一篇James Bach老兄的文章,覺得還不錯。James Bach是軟體測試界的名人,他最著名的就是在Exploratory Testing的貢獻。有一位軟體測試的菜鳥問他說軟體測試工作者的每日家庭作業是什麼。Bach提出了四點:

Write every day

隨身帶筆記本,隨時記下任何對測試的想法

Watch yourself think ever day

工作時,當有任何測試的點子,嘗試去追蹤自己的想法。這是一種訓練Self-observation的方法

Question something about how you work every day

問問題,例如:何時需要寫下一個測試,那些步驟需要被記下。而不是只討論那些案例"Passing"或是"Failing"

Explain testing every day

解釋測試方法(Methodology),不要只說自己在做黑箱測試,更深入些,並解釋為什麼你去做?