面試又失敗了

MmoMartin發表於2020-11-26

       我面試測試開發崗位,都失敗了,找了快3個月了吧。試過阿里的好幾個部門,基本2面就OVER了,百度的還好,能挺進第三面,不過還是掛了,騰訊最慘,第一面就O了,位元組也是第一面就O了,哎,挺難的。每次失敗都在總結經驗。最近一次面試的是阿里的第二面,說起這面,挺慘的,掛的自己都覺得不應該。
       這次阿里的第二面盡然是程式碼題,這是第一次遇到的,之前的所有的面試都是在最後的時間出程式碼題的,這次盡然單獨拎出來,直接擼程式碼。

題目:給定一個時間,如20200601,算出這個時間是今年的第幾天。以下開始我的表演!!!!!

       看到這道題的時候,我腦海了出現了一句:糟了,python的時間模組不熟悉啊,字串時間跟時間戳的轉化不知道用啥函式啊,未戰先怯了,硬著頭皮,皮拉皮拉敲了的好幾個函式,判斷閏年平年,判定格式,敲了一會兒,面試官看了,說了一句:被你這麼敲,太久了,python不是有函式功能嗎,你可以用python的功能函式做出來。我回了一句:嗯,應該有的。我把之氣的函式註釋了,開始沉思了下,確定了思路,開始擼碼。將大體思路寫下來,註釋下下來,(截區前面4個字元,算出20200101的時間戳,再算出當天的時間戳,再用當前的時間戳-當年1月1號的時間戳的差除以24小時的秒數,得出時間),嗯這個思路我覺得可行,就編寫對應的函式了:如下

# -*- coding: utf-8 -*-
import datetime


# 輸出函式
def get_year_count(temp_day):
_localtime = formart_str(temp_day)
# 獲取當年1 1號的時間戳
year_date = temp_day[:4] + "-01-01 00:00:00"
day_first = formart_str(year_date)
print(day_first)
# 獲取天數
print(_localtime - day_first)
day_counts = (_localtime - day_first) / 3600 / 24 + 1
return day_counts


# 獲取輸入日期的時間戳
def formart_str(tmp_day):
try:
# 算出當前時間的時間戳
timestamp = datetime.datetime.strptime(tmp_day, '%Y-%m-%d %H:%M:%S')
timestamp = datetime.datetime.timestamp(timestamp)
return timestamp
except Exception as e:
return e

這個是我面試後寫的,目前還是有問題的,不知你們有麼有看出來。。。。。。。。。。。

       開始的時候我的程式碼是有問題的,第一處:formart_str的算出當前的時間戳使用的函式有問題的,寫錯了,當時確實不知道函式之間的轉換,但是現在知道了,也是這次面試讓我熟悉了datetime模組的3個常用函式strptimestrftimetimestamp。第二處:get_year_count函式算出結果沒有+1,day_counts 計算的差值()【(_localtime - day_first) / 3600 / 24 + 1 ,這部分少了()】。

面試官問:你現在對你寫的函式測試下。
我想現在開始考察測試能力。我寫了個main函式,寫測試用例:以入口進行測試。

面後,才發現面試官是想考察我的功能測試能力審查程式碼能力以及單元測試的能力啊啊啊啊。很可惜,這次我確實搞砸了,臨時斷片了。就寫了等價類劃分:

輸入正常的值如get_year_count(“20200205”),判斷輸出值是否正確

輸入異常值:空,null,”20200266“,,判斷輸出值是否正確

面試官看了我寫的測試點後,說:你現在把的程式碼copy到你的編輯器,看有沒有問題。

我就copy過去了,執行了下,資料型別錯誤,就說了型別的錯誤。哈確實不應該,若當時我能明確指出我當前的程式碼問題就好了。比如:

1. formart_str函式丟擲異常的時候,對get_year_count函式的執行會是一個致命點,符串與整形的算術運算會報錯,終止該函式。
2. 沒有對輸入資料的格式進行校驗:首先是長度,第二是資料格式中每一位都是數字,第三是整形的資料格式
3. 就是對結果值得校驗了
4. 對該函式得功能準備的測試用例不夠,如邊界值的劃分【20190229,20201131】,邊界值被成為特殊等價類;錯誤推測法;根據前面的異常等價類進行編寫其他的測試用例:如缺失位數,位數有其他型別的資料等,至於安全,效能,從這個說的話就有點遠了,我覺得從能把等價類劃分清楚就很不錯了,不知大家是否認同。

       至於單元測試,從我這塊的程式碼中,沒有條件,沒有判定,只有語句,不過有個try-----except。還有一個點是在我面試時遇到的,若碰到不熟悉的函式我覺得完全可以想網上查下,當然需先詢問下面試官下意見是否可以這麼做先。

       面試真不容易啊,跟考試很像,答卷100,看你能拿多少分,自我評分及格吧,有很大的進步空間,很遺憾的說我盡然敗在這簡單題目上,有點可惜了。當然也積累了我的面試經驗,加油!!!!!!繼續找,加油!!!一道題可以看出一個測試的水平,字如其人,我們時碼如其人

相關文章