一个软件除了基本功能之外,还有很多功能之外的特性,这些叫“non-functional requirement”,或者“quality of service requirement”-服务质量需求。没有软件的功能,这些特性都无从表现出来,我们要在软件开发的适当阶段做这些测试。
比如:
测试名称 |
测试内容 |
Stress/load test |
测试软件在负载情况下能否正常工作 |
Performance test |
测试软件的效能 |
Accessibility test |
测试软件辅助功能测试–测试软件是否向残疾用户提供足够的辅助功能 |
Localization/Globalization Test |
本地化/全球化测试 |
Compatibility Test |
|
Configuration Test |
配置测试–测试软件在各种配置下能否正常工作 |
Usability Test |
可用性测试–测试软件是否好用 |
Security Test |
软件安全性测试 |
1.4 Unit Test单元测试
二柱:我们也试过用单元测试来保证质量,要求每人都要写,在签入代码前必须通过单元测试。但是搞了几个星期就不了了之。
大家七嘴八舌的列举了单元测试的问题:
- 有时单元测试报了错,再运行一次就好了,后来大家就不想花时间改错,多运行几次,有一次通过就行了。
- 单元测试中好多错都和环境有关,在别人的机器都运行不成功。
- 花在单元测试上的时间要比写代码的时间还多
- 单元测试中我们还要测试效能和压力,花了很多时间
- 我们都这么费劲地测了,那还要测试人员干什么?
1.4.1 用VSTS写单元测试
单元测试的基本构成
Setup //设置好环境,准备测试
Test //测试
Teardown //打扫战场
例子:我们要写一个银行账户的类,那么它的单元测试应该怎么写?
谁自告奋勇上来表演一下写代码?小飞,好请上台。
小飞写了下面的代码:
定义interface IAccount
实现public class Account : IAccount
{
}
每个函数都使用临时代码