测试框架推荐?
单元测试的要求是啥样的呢?
如何去组织和具体实施,有木有啥具体标准之类的?
关于测试的其他(性能测试等),如何成为一个合格的测试?
小弟 Java curd boy,希望从事相关行业的大佬不吝赐教,小弟感激涕零,蟹蟹~~
1
thetbw 2021-07-01 19:56:41 +08:00
同求,公司没测试
|
2
joesonw 2021-07-01 21:47:37 +08:00 via iPhone
看测试覆盖率呀。设立一个目标覆盖率,然后测试达标呗。
|
3
dustinth 2021-07-01 21:50:51 +08:00
先看看这本书. Unit Testing Principles, Practices, and Patterns
|
4
MeatIndustry 2021-07-01 22:55:59 +08:00
推荐了解一下测试驱动开发 TDD 。用 Mockito,Junit TDD 一个 SpringBoot 项目,你上面的问题都能多少得到解答。
|
5
scxiazi 2021-07-01 22:58:49 +08:00
junit
|
6
xy90321 2021-07-01 23:26:36 +08:00 via iPhone
传统软件企业
waterfall 开发项目 junit ➕ dbunit ➕ jmockit 要求 C1➕C2 100%覆盖 |
7
Cbdy 2021-07-01 23:59:09 +08:00
Spring 项目:
testImplementation 'org.springframework.boot:spring-boot-starter-test' 非 Spring 项目: testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' |
8
stimw 2021-07-02 00:31:51 +08:00 via Android
记得很多年前有篇文章叫 TDD 已死。。
|
9
Rocketer 2021-07-02 07:32:41 +08:00
先写测试程序,输入是什么,输出应该是什么,都准备好。然后正式开始写程序,自己的程序必须能通过自己的测试,才能移交给下一环节。
问题是写单元测试程序的时间比写正是程序的时间还长,出错的程序又是少数,所以虽然书上说单元测试能节约开发时间,但我们没人信。老板不要求,绝对没人写。 |
10
micean 2021-07-02 08:42:22 +08:00
crud 不写什么单元测试,毫无意义
但是写 lib utils 的一定要写单元测试 |
15
MeatIndustry 2021-07-02 09:23:24 +08:00 via iPhone
@stimw 不光 TDD,还有其他敏捷实践,例如结对编程,也有很大争议。一个个看起来十分美好,实际上做起来寸步难行。在公司就试过 TDD,根本坚持不下去
|
16
X0ray 2021-07-02 09:28:13 +08:00
通常来说,以 java web 项目为例,我都是在 service 这一层来做单元测试。其他的工具类也会写下。远远达不到 100%的覆盖率。
我还比较好奇,那些大厂是不是都是严格执行覆盖率审查的。 |
19
Jiangyf OP @MeatIndustry 我觉得测试驱动开发,有一说一,很多时候受制于时间、成本、进度三座大山,没多少人 care 测试这一环节。
|
22
EKkoGG 2021-07-02 11:05:20 +08:00
我也问过类似问题,但是感觉 web api 的单元测试资料好少。。。就没人弄个 demo,看看怎么实现的吗?
|
23
xy90321 2021-07-02 13:40:09 +08:00 via iPhone
|
24
z740713651 2021-07-02 17:28:55 +08:00
python 的我比较熟。。。
python 可以试试这个项目模版生成的项目框架去填业务代码 [https://github.com/AngusWG/cookiecutter-py-package] ``` pip install cookiecutter cookiecutter https://github.com/AngusWG/cookiecutter-py-package.git ``` 单元测试的有 pytest (可选 doctest) doctest 写函数 docstring 用着比较开心的 看着也舒服 然后 CICD 得搞上 每次提交的时候 都能检查代码覆盖率 函数运行速度 响应时间等等 在模版里有都有案例 然后是 python 的代码风格 迫于没得选就 black 代码风格测试 - 单元测试的要求是啥样的呢? 代码覆盖率 80+把 高一点要求 100% 不过分的 框架会帮你多跑几遍函数 在单元测试里设置平均时长和最大时长啥的就好了 - 如何去组织和具体实施,有木有啥具体标准之类的? 提交代码 CICD 过上述的测试+代码风格测试就差不多了 系统级测试让测试工程师去做 标准之类这种可以看开源项目的要求 github 开源项目基本上 Action 都会有提交时要过的测试命令 照着抄就好了 ( python 里是 flake8 模版里还有很多奇奇怪怪的插件 也可以都用上) - 关于测试的其他(性能测试等),如何成为一个合格的测试? 这个我也不会。。。。 写完了发现可能答非所问....大佬们随便看看就好 |
25
inhzus 2021-07-02 19:05:42 +08:00 via iPhone
单测增量行覆盖率 80%,junit4 + powermock,需求不紧急的情况下严格 TDD,CRUD 的话确实没什么意义
|
26
yjxjn 2021-07-03 00:17:57 +08:00
500 强外企路过,公司要求,开发写完代码,开发做 JUNIT 测试,功能测试看情况,如果测试不够,就开发一块做了。
junit 的要求是用 excel 投入数据,然后用 excel 做期待数据和期待值等等,assert 异常这种的之类的,再就是要求覆盖率,必须达到 C1 级别,目标是 100%全覆盖。branch 都要进去,eclipse 的 coverage 要去看 branch 覆盖率,而不是 instruction 的覆盖率,如果达不到 100%,需要分析一下,到底是设计的业务有问题还是代码的问题。 |