Cody Blog

如何寫 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

取得硬碟資訊 blkid

每次在編輯 /etc/fstab 的時侯,都會忘了要怎麼取得 disk 的 UUID,其實在 Ubuntu 有個 blkid 的指令可以使用

$ sudo blkid
/dev/sda2: LABEL="Data" UUID="357b1cbf-c4d4-47a4-8ce1-5cfd6ac110f7" TYPE="ext4"
/dev/sda5: UUID="db9ca73a-c4ba-455d-89b0-e7e6f6d8b67d" TYPE="swap"
/dev/sdb1: UUID="69ea78d6-414f-4c2a-bab4-3cbfbf160e0e" TYPE="ext4"
/dev/sdb5: UUID="75df4068-f9a8-4e04-af47-7b6165a4716f" TYPE="swap"

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 …

NTP note

使用 ntpd 來跟上行的 server 是不會立即更新時間的。

新增 NTP Server

把 server 加到 /etc/ntp.conf

server tick.stdtime.gov.tw

觀察目前連線的狀態

~ # ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 118-163-81-62.H 192.168.0.2      2 u    7   64    3   13.063  546.533  61.627

Using Perforce Command Line in Linux

Installation (Linux)

  1. Download P4 binary from http://www.perforce.com/downloads/complete_list

    $ wget http://www.perforce.com/downloads/perforce/r11.1/bin.linux26x86_64/p4 (x64) $ wget http://www.perforce.com/downloads/perforce/r11.1/bin.linux26x86/p4 (x86)

  2. Make the downloaded file executable

    $ chmod +x p4

  3. Print p4 version

    $ ./p4 -V

Perforce client common commands

./p4 -p 10.200.19.19:1667 -u `<YOUR_ACCOUNT>` login

export P4PORT=10.200.19.19:1667

./p4 -u `<USERNAME>` -c `<WORK_SPACE>` sync -f

Redis 筆記

啟動 server

$ redis-server

關閉 server

$ redis-server shutdown

測試伺服器是不是正常

$ redis-cli ping

指令伺服器位置

$ redis-cli -h <HOST> -p <PORT> -a <PASSWORD>

常用指令

列出所有的 keys

> key *

清空資料庫

> flushdb

畫 Sequence Diagram 的線上工具: Web Sequence Diagrams

Web Sequence Diagrams 畫 Sequence diagram 的線上工具,介面很直觀簡單:

demo

用以下的文字即可簡單表達一張 sequence diagram

title SIP Account server


Client -> API Server: /api/v1/users/
API Server -> Microsoft Graph Server: Check access_token
Microsoft Graph Server -> API Server: Response check result
API Server -> Client: Response SIP account info

就可以產生出以下的圖檔了:

xx

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 :

ThinkPad x220

再見了,小黑(2011/5 - 2014/8)。願你在新的主人那邊可以有繼續發揮的空間

把小黑賣掉,主要的原因是斷捨離的概念,讓我決定放下。另一方面也是對於 Lenovo 沒辦法在創造出新價值,有點失望。用腳投票,投入蘋果陣營。

X220 美規機(過保)

  • CPU : i5 2410m
  • RAM : 海盜船 16GB (8GB x 2)
  • 硬碟 : SATA 320GB, Masta SSD Intel 320 80GB
  • 螢幕 : 自換 IPS 面板
  • 電池 : 6 cell x1, 9cell x1
  • 電源供應器: 65W 充電器 x1 + 原廠 90W 充電器 x 1
  • Express Card :
  • ATM 晶片卡 Smart card reader, 可以ATM轉帳,網路報稅
  • AKE USB 3.0 ExpressCard : 多二個 USB 3.0 孔
  • Windows 7 序號
  • USB 外接鍵盤