作者ttss4092 (lambda)
看板Soft_Job
标题Re: [请益] 如何当软体QA??
时间Tue Mar 3 20:32:03 2020
抛砖引玉,台湾软体测试真的很需要有大大来分享
---
写在最前面: 我测试是学这本书
https://www.obeythetestinggoat.com/pages/book.html#toc
我入门是买中文版,这里贴的是原文,可以免费线上看,
作者也有给 GitHub 可以边学边看
---
最近带一年的软体测试 Intern 拿到别间公司口头 Offer 了
此文章会大概说说我怎麽训(ㄋㄩㄝˋ)练(ㄉㄞˋ)他
先说他的背景,私立科大,资管,上课睡觉类型
刚开始技术能力大概只比非本科好一点 (基本逻辑不用教)
但是他是被我唾弃的微软派 (学校就是教这个不怪他)
然後我是写 Python 他写 C#,所以一切重头来
===
首先语法训练,我抓了几个我常用的一些东西,出成题目让他在 repl.it 完成
大部分其实都是出自於 Effective Python 这本书,很经典常用的语法与用法,
如: for...loop, list, dict, comprehension, zip 等等
配合一些大概是 leetcode 不到 Easy 至 Easy 的题目给他练习
===
强迫他灌 Ubuntu,要他去看灌 Archlinux 的影片,
一步一步讲解为啥指令要这样下,
然後带带指令,强迫看鸟哥 (
http://linux.vbird.org/),
并强迫在公司工作只能使用 Ubuntu,
除非某些手动测试要用到 Win, OSX 其他包含开发以及一般的例行工作都在 Ubuntu 完成
===
开始本地端 Python 训练,Visual Studio Code 安装与使用,
(我人很好没强迫学 Emacs)
PEP8 讲解,编辑器套件安装,编辑器设定,
从 pip 指令讲解开始,装 requests 和 selenium 从爬虫开始写,
完成基本的网页元件撷取後,开始教 Django 依照 TDD 那本书从头带,
书上规划很棒,只要会装 Python & Git 就能入门,
从开始建立专案到第一次 Commit,伺服器架设等等都有带到,
测试方面包含功能测试、单元测试、前端测试、第三方元件测试都有带到,
最後用他学到的东西让他刻出很丑的比价网站,
中间还有强迫参加 Conf (PyCon, HITCON),让他玩桌面应用的自动化 (PyAutoIt),
带他打打 WarGame,由於他底没有打很好,就把大学资讯安全、作业系统、
资料库的讲义给他讲讲,等等有的没的
---
说测试,好的开发人员一定要会测试,尤其是自动化测试,
但是测试的网路教学很多都喜欢教你 add function 测试然後就没了,
通常入门就是不知道要测试啥,其实最基本的就是要测试需求,
例如:
功能需求: 在订阅用户订阅扣款前三天和前七天寄送提醒文件,每个客户在第一封信,
都会收到一个优惠券(优惠券由市场人员由後台输入),如果该用户是取消订阅,
到期前寄送不同的邮件样板
测试案例就会有:
1. 订阅在非前七天,非前三天,该用户不会收到信
2. 在七天後和三天後订阅要扣款的用户,会收到 '扣款信' 而且有优惠券
3. 在七天後和三天後就要到期的用户,会收到 '取消通知信' 而且有优惠券
4. 设定用户有收到优惠券过,之後就算日期到,收到的信也不会有优惠券
我们也可以反向思考,要是优惠券没被输入
5. 设定资料库没有优惠券的资料,确定任何使用者不会收到有优惠券的信
6. 确定 5. 以後设定优惠券资料,原本没收优惠券的用户也会收到优惠券
思考其他例外
7. 金流商服务坏掉,不会寄送,不会有错误,有写下 Log 并通知开发者
完成後,就是大概能动,可能有错,
所以另方面要产出测试案例就是,从上线後手动测测有问题後,
生出自动化测试,如: 上线测试後,发现样板少了一些必要资讯,我们就生出下一个测试
8. 所有寄送出去的 '扣款信' 要有使用者名称、订阅扣款日、扣款金额
9. 所有寄送出去的 '取消通知信' 要有使用者名称、订阅结束日期
以上大概就是,我生出一些基本测试案例的流程,写久了你就会更知道你要确认啥,
练习方法: 学会书上写的以後我觉得可以自己去测试自己常用的网站,
这边可以跑正向的测试流程,熟练元件的应用,让自己更清楚知道想要测试的东西,
很多 Edge case 真的是要靠经验,这边我也不知道怎麽练习 QQ
然後测试 APP 好像是用 APPium,很多公司好像会用 Robot Framework,
你可以看公司要啥去多学,但是基本的概念应该差不多,学好一套再往下跳吧!
===
会写测试後你更会知道自己要哪些功能,为了让测试更好写,你的程式会自动的更有架构
如: 让程式比较好 Mock, 没得 Mock 的你就会注意到 Dependency injection ,
通常好测试的程式架构都不会太奇怪,因为层层测试要好写,程式不能太糟糕,
在你写测试时会发现程式很难测,乖乖把他们重构,不然你测试就要写更多程式,
在权衡下你就会把你主程式改的比较好测
很多讲 CI/CD、DevOps 的文章测试的篇幅都超小,好希望他们说多点,
个人认为测试才是 DevOps 的最根本最核心的重点阿。。。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.234.4 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1583238727.A.54C.html
1F:推 domototice: 谢谢您的分享,感恩,集保e存摺。 03/03 20:43
※ 编辑: ttss4092 (36.231.234.4 台湾), 03/03/2020 20:56:24
2F:推 Leach: 推 感谢分享 03/03 21:10
3F:推 ian90911: 推 03/03 21:11
4F:→ ZayRowz: 认同测试跟自动化才是DevOps的核心 03/03 21:18
5F:→ ZayRowz: 不过我带intern都忽略那些系统, 直接从测试基本概念讲 XD 03/03 21:18
可能你带的都是很强的才能这样
6F:推 aaa1234136: 好文 03/03 21:53
7F:推 taurus5650: 推,感谢分享~~ 03/03 22:08
8F:推 w86083: 你就是那个大大啊QWQ带人也太用心了。 03/03 22:23
看起来用心是因为它不用功,之前带学弟随便嘴嘴,学弟就弄出来了,
现在学弟都比我强了,我还要学弟教我新东西呢,
这样带人不过就只是期待能多一个能对话的人
9F:推 Y78: 推 03/03 22:33
10F:推 aassdd926: 带人好用心.. 03/03 22:41
11F:推 asdg62558: 大大人真好 03/04 00:16
12F:推 sherees: 推用心 03/04 00:22
13F:推 Saaski: 好人推 03/04 00:30
14F:推 nighthunt: 推个 03/04 04:19
15F:推 CaptainTeemo: 当然不会强迫学 Emacs 呀,要学就学 Vim (重点错误) 03/04 07:37
都学都可以学,手不要给我离开键盘就好
※ 编辑: ttss4092 (220.132.128.60 台湾), 03/04/2020 08:15:17
※ 编辑: ttss4092 (220.132.128.60 台湾), 03/04/2020 08:28:03
16F:推 jason4571: 公司会说 我不是请人来学习的 03/04 08:49
17F:→ keyut2433: 认同....测试快速给feedback才是核心 03/04 08:53
18F:推 momoteatea: 大大人真好 推 03/04 09:01
19F:推 thund: 这麽用心带人 人真好! 03/04 09:34
20F:推 bnd0327: 推推 03/04 10:01
21F:推 javy0521: 推 03/04 12:41
22F:推 fqoff: 推 03/04 13:20
23F:推 Dong0129: 很完整的学习系统…真棒 03/04 15:31
24F:推 x246libra: 乾 实习生真好运 遇到你 教抄多 03/05 19:59
25F:推 ptx003c: 专业 03/08 08:30
26F:推 Strancd: 专业好文,推个 03/09 17:50
27F:推 anthti: 推~ 有帮助! 03/10 16:54
28F:推 helen100: 感谢分享 03/11 19:14
29F:推 nullife: 推 03/18 04:10