系统测试内容怎么写-系统测试怎么写
系统测试搞不懂就再想想 测试到了,就是纯粹被整得有点喘不过气。别总想着按部就班写个测试盘算,再塞进个测试用例,那写着写着就全是教科书味儿的“起初、其次、最终”了,听着跟念 PT 一样。咱直接上活儿,带着点烦躁,但哪位让产品自己写得坑坑洼洼呢? ui 页面看着挺漂亮,鼠标滑过来就是空。间或刷新两秒,页面就白屏,浏览器管住台全是"Network: Failed to load resource"的报错。
这玩意儿不是没人测试,是根本没测过。我得把浏览器历史往回翻,翻到有三天前那会儿,那时候服务器还在跑,代码根本没通,我试了好几次都没法复现。目前好了,一翻就发现,服务器配置改了,IP 变了,可是代码逻辑里写的是旧 IP 啊。 这就好比你要找钥匙,但钥匙是锁上去的。测试人员得靠猜,猜对概率小。
故此测试内容不能只靠猜,得靠数据。
那会儿总认定数据只是数字堆个高,结局数据写得乱七八糟,真是扯淡。 比如上周上线支付模块,连登录的人都试了。
一般/平平小白用户随意填个"123456",密码"123456",结局提示是密码毛病。可仔细一看输入框的默认值是"123456",输入"123456"不提示,提示"密码毛病",这逻辑有点鬼畜。测试发现是前端默认值没更新后端校验逻辑没跑通。
当时我本能够写一个测试脚本,一键模拟所有常见账号密码组合,跑一遍,发现通才就完了。但为了省事,直接让产品经理看一遍记录,根本看不出来这背后的逻辑漏洞。 数据质量更是个难题。测试用例里写的“用户输入手机号”、“身份证有效期”,都是白纸黑字的描述。但真世界里,用户懒得填,直接删掉空格,要么把"13800000000"写成"138000000000"要么"1380000000000"。
这些边缘情况,光靠逻辑判断真不好覆盖。 得给数据加点“料”。我写了个脚本,里面带了个模拟用户,名字叫“小明”,身份证号是“110101199001011234",手机号"13812345678"。遇到敏感信息时,脚本自动加个后缀"0000",比如身份证号变成"1101011990010112340000"。
这样不管后端如何校验,前端都能拿住。 还有浏览器兼容性,那是实打实的事。有些老设备,老安卓,老 iOS,不同版本系统,默认设置都不一样。
那会儿测的是 Chrome 最新版,目前连 IE11 都扔到测试环境里跑了一周,发现一个弹窗,它弹窗,它不弹窗,它弹窗,它不弹窗。
每次弹窗,都要重新测试一遍。 数据造假更是大忌。
那会儿测试遇到报错,第一工夫找产品经理,让他给个截图,看看是不是他系统里遗留的难题。结局呢,产品经理直接怼我:“测试,你找哪位?找数据库!数据库是写死代码的地方,数据库没改,就是我的代码逻辑难题。” 数据库就是终极 Boss。测试得去数据库里查一查,看那个字段值是不是固定死的。
要是字段值是“默认值:未填写”,那测试压根就不用测“用户未填写”的情况,直接测“用户填写”就行了。但有时候为了测试全面性,测试人员得自己造数据,得把数据库原本那些死数据、默认值给怼出来。 这种时候,测试内容就写不下去了。
不是没有内容,而是写出来就是废话。
真的测试,就是在一次次报错、一次次数据被改、一次次不得不面对“数据库没改”的甩锅中,一点点摸清业务逻辑的真面目。 有时候看代码,发现一个函数,写的时候想了想,写成一个死循环吧,反正改不了。测试时,直接连上服务器,跑了一下午,那个函数还是死循环。
那一刻,心里那股子火就起来了。
不是出于代码写得烂,是出于测试人员被坑了。 故此测试内容要如何写?不要写“待确认”,不要写“需验证”。直接写:“发现登录模块在非登录状态下,自动唤起登录页,但验证状态码是 200,后续测试需确认前端状态是否透传成功。” 数据要真。别用那种格式毛病、长度不对的假数据。要确实让用户如何操作,系统如何反应。把数据库里的静态数据改成动态生成的数据,把默认值改成用户输入的值。 语言要通俗。别说“经测试证明”,说“跑完结局不对”。别说“已覆盖主要场景”,说“主要场景没跑,次要场景随意瞧瞧”。项目交付不是验收,是找茬。测试人员就是找茬的,别找错对象,也别找错对象。 最终,测试内容也不能忒满。忒满,全是正题,全是废话。留点空给产品经理,让他看看有没有啥逻辑上不对劲的。留点空给数据库,让他看看有没有死数据。留点空给浏览器,让他看看是不是兼容性搞怪。 测试工作就是这样,一边写需求,一边找 Bug,一边改代码,一边填表。别指望能写出完美的测试文档,那玩意儿不存有的。存有的,是一堆报错记录,是一堆被怼得说不出话的截图,是一堆不得不面对“数据库没改”事实的无奈。 数据要真。别用那种格式毛病、长度不对的假数据。要确实让用户如何操作,系统如何反应。把数据库里的静态数据改成动态生成的数据,把默认值改成用户输入的值。 语言要通俗。别说“经测试证明”,说“跑完结局不对”。别说“已覆盖主要场景”,说“主要场景没跑,次要场景随意瞧瞧”。 项目交付不是验收,是找茬。测试人员就是找茬的,别找错对象,也别找错对象。 有时候看代码,发现一个函数,写的时候想了想,写成一个死循环吧,反正改不了。测试时,直接连上服务器,跑了一下午,那个函数还是死循环。
那一刻,心里那股子火就起来了。
不是出于代码写得烂,是出于测试人员被坑了。 故此测试内容要如何写?不要写“待确认”,不要写“需验证”。直接写:“发现登录模块在非登录状态下,自动唤起登录页,但验证状态码是 200,后续测试需确认前端状态是否透传成功。” 数据要真。别用那种格式毛病、长度不对的假数据。要确实让用户如何操作,系统如何反应。把数据库里的静态数据改成动态生成的数据,把默认值改成用户输入的值。 语言要通俗。别说“经测试证明”,说“跑完结局不对”。别说“已覆盖主要场景”,说“主要场景没跑,次要场景随意瞧瞧”。 项目交付不是验收,是找茬。测试人员就是找茬的,别找错对象,也别找错对象。 最终,测试工作就是这样,一边写需求,一边找 Bug,一边改代码,一边填表。别指望能写出完美的测试文档,那玩意儿不存有的。存有的,是一堆报错记录,是一堆被怼得说不出话的截图,是一堆不得不面对“数据库没改”事实的无奈。 测试到了,就是纯粹被整得有点喘不过气。别总想着按部就班写个测试盘算,再塞进个测试用例,那写着写着就全是教科书味儿的“起初、其次、最终”了,听着跟念 PT 一样。咱直接上活儿,带着点烦躁,但哪位让产品自己写得坑坑洼洼呢? UI 页面看着挺漂亮,鼠标滑过来就是空。间或刷新两秒,页面就白屏,浏览器管住台全是"Network: Failed to load resource"的报错。
这玩意儿不是没人测试,是根本没测过。我得把浏览器历史往回翻,翻到有三天前那会儿,那时候服务器还在跑,代码根本没通,我试了好几次都没法复现。目前好了,一翻就发现,服务器配置改了,IP 变了,可是代码逻辑里写的是旧 IP 啊。 这就好比你要找钥匙,但钥匙是锁上去的。测试人员得靠猜,猜对概率小。
故此测试内容不能只靠猜,得靠数据。
那会儿总认定数据只是数字堆个高,结局数据写得乱七八糟,真是扯淡。 比如上周上线支付模块,连登录的人都试了。
一般/平平小白用户随意填个"123456",密码"123456",结局提示是密码毛病。可仔细一看输入框的默认值是"123456",输入"123456"不提示,提示"密码毛病",这逻辑有点鬼畜。测试发现是前端默认值没更新后端校验逻辑没跑通。
当时我本能够写一个测试脚本,一键模拟所有常见账号密码组合,跑一遍,发现通才就完了。但为了省事,直接让产品经理看一遍记录,根本看不出来这背后的逻辑漏洞。 数据质量更是个难题。测试用例里写的“用户输入手机号”、“身份证有效期”,都是白纸黑字的描述。但真世界里,用户懒得填,直接删掉空格,要么把"13800000000"写成"138000000000"要么"1380000000000"。
这些边缘情况,光靠逻辑判断真不好覆盖。 得给数据加点“料”。我写了个脚本,里面带了个模拟用户,名字叫“小明”,身份证号是"110101199001011234",手机号"13812345678"。遇到敏感信息时,脚本自动加个后缀"0000",比如身份证号变成"1101011990010112340000"。
这样不管后端如何校验,前端都能拿住。 还有浏览器兼容性,那是实打实的事。有些老设备,老安卓,老 iOS,不同版本系统,默认设置都不一样。
那会儿测的是 Chrome 最新版,目前连 IE11 都扔到测试环境里跑了一周,发现一个弹窗,它弹窗,它不弹窗,它弹窗,它不弹窗。
每次弹窗,都要重新测试一遍。 数据造假更是大忌。
那会儿测试遇到报错,第一工夫找产品经理,让他给个截图,看看是不是他系统里遗留的难题。结局呢,产品经理直接怼我:“测试,你找哪位?找数据库!数据库是写死代码的地方,数据库没改,就是我的代码逻辑难题。” 数据库就是终极 Boss。测试得去数据库里查一查,看那个字段值是不是固定死的。
要是字段值是“默认值:未填写”,那测试压根就不用测“用户未填写”的情况,直接测“用户填写”就行了。但有时候为了测试全面性,测试人员得自己造数据,得把数据库原本那些死数据、默认值给怼出来。 这种时候,测试内容就写不下去了。
不是没有内容,而是写出来就是废话。
真的测试,就是在一次次报错、一次次数据被改、一次次不得不面对“数据库没改”的甩锅中,一点点摸清业务逻辑的真面目。 有时候看代码,发现一个函数,写的时候想了想,写成一个死循环吧,反正改不了。测试时,直接连上服务器,跑了一下午,那个函数还是死循环。
那一刻,心里那股子火就起来了。
不是出于代码写得烂,是出于测试人员被坑了。 故此测试内容不能忒满。忒满,全是正题,全是废话。留点空给产品经理,让他看看有没有啥逻辑上不对劲的。留点空给数据库,让他看看有没有死数据。留点空给浏览器,让他看看是不是兼容性搞怪。 测试工作就是这样,一边写需求,一边找 Bug,一边改代码,一边填表。别指望能写出完美的测试文档,那玩意儿不存有的。存有的,是一堆报错记录,是一堆被怼得说不出话的截图,是一堆不得不面对“数据库没改”事实的无奈。 数据要真。别用那种格式毛病、长度不对的假数据。要确实让用户如何操作,系统如何反应。把数据库里的静态数据改成动态生成的数据,把默认值改成用户输入的值。 语言要通俗。别说“经测试证明”,说“跑完结局不对”。别说“已覆盖主要场景”,说“主要场景没跑,次要场景随意瞧瞧”。 项目交付不是验收,是找茬。测试人员就是找茬的,别找错对象,也别找错对象。 有时候看代码,发现一个函数,写的时候想了想,写成一个死循环吧,反正改不了。测试时,直接连上服务器,跑了一下午,那个函数还是死循环。
那一刻,心里那股子火就起来了。
不是出于代码写得烂,是出于测试人员被坑了。 故此测试内容要如何写?不要写“待确认”,不要写“需验证”。直接写:“发现登录模块在非登录状态下,自动唤起登录页,但验证状态码是 200,后续测试需确认前端状态是否透传成功。” 数据要真。别用那种格式毛病、长度不对的假数据。要确实让用户如何操作,系统如何反应。把数据库里的静态数据改成动态生成的数据,把默认值改成用户输入的值。 语言要通俗。别说“经测试证明”,说“跑完结局不对”。别说“已覆盖主要场景”,说“主要场景没跑,次要场景随意瞧瞧”。 项目交付不是验收,是找茬。测试人员就是找茬的,别找错对象,也别找错对象。 最终,测试工作就是这样,一边写需求,一边找 Bug,一边改代码,一边填表。别指望能写出完美的测试文档,那玩意儿不存有的。存有的,是一堆报错记录,是一堆被怼得说不出话的截图,是一堆不得不面对“数据库没改”事实的无奈。
声明:演示网站所有内容,若无特殊说明或标注,均来源于网络转载,仅供学习交流使用,禁止商用。若本站侵犯了你的权益,可联系本站删除。
