你应该如何测试软件?

发布于 更新于

技术文章

理解用户用户会购买你的产品吗?一个设计的改变会带来有更多的注册吗?用户会理解你的软件是如何工作的吗?这些问题都无法通过对比你的软件是否满足规范来得到回答。相反,你需要经验知识:你需要观察当你的软件展现给用户时,用户真正做了什么操作。相关的测...

理解用户

用户会购买你的产品吗?


一个设计的改变会带来有更多的注册吗?


用户会理解你的软件是如何工作的吗?


这些问题都无法通过对比你的软件是否满足规范来得到回答。相反,你需要经验知识:你需要观察当你的软件展现给用户时,用户真正做了什么操作。


相关的测试技术包括:


可用性测试


最低可行产品测试(《精益创业》)


A/B测试



理解运行时行为

你的软件在负载下的表现如何?


你的软件有资源竞争吗?


当有非法输入时,你的软件是否会崩溃?


这些问题不能总是通过比较你的软件是否符合规范来回答。一旦你的软件足够复杂,你无法完全理解或者预测它的回应。你需要观察它的实际运行来理解其行为。


相关的测试技术包括:


压力测试和浸泡测试


从产品日志中收集异常及跟踪信息



功能的正确性

你的软件是否真正符合规范?


你的软件是否做了它应该做的事?


很容易可以看到,自动化测试可以证明这些,但是请记住检查2+2等于5的单元测试。在更基本的层面上,软件可以在技术上满足规范,但是不能达到规范的目标。只有我们理解规范背后的含义,然后才能确定软件是否达到了目标。


相关的测试技术包括:


手动用户界面测试(如:QA人员使用您的网站)


代码审查



功能的稳定性

对于同样的输入,你的公开接口(API)是否总能返回相同的结果?


你的代码是否提供了它应该提供的保证?


人类很不擅长测试这些情况。人类非常容易忽略小的变化:如果一个按钮从“Send Now”改变为“Send now”,你可能根本就不会注意到。相反,如果你的接口从sendNow() 变为 send_now(),或者返回值的类型有轻微变化,你的软件就会崩溃。


这意味着一个公开接口,尤其是其他软件依赖的接口,为了保证正确性必须要稳定。当你不断更新你的测试时,为改变频繁的私有接口或者代码编写自动化测试,将会导致非常高的维护成本


相关的测试技术包括:


单元测试、集成测试和其他类似的自动化接口测试


自动化用户界面测试(如:网站的Selenium测试)


编译器检查和静态检查

如有疑问,请留言告知,或者咨询柠檬班软件测试培训机构:www.ceshiren.com官网客服哦


继续阅读