如何测试软件项目?

时间:2011-07-18 06:54:38

标签: unit-testing testing

对于任何软件项目测试都很重要。我是测试的新手,所以如何测试开发的软件项目? 。测试的步骤和级别是什么?我想知道如何在公司中测试软件项目?

2 个答案:

答案 0 :(得分:3)

维基百科有一篇关于Software Testing的好文章,并且比我在这里写的任何内容都要好。但是,我会尝试在最高级别描述该过程:

在最高级别,您可能有三种类型的测试:

  1. 单元测试 - 单个单元的测试(例如:功能,方法)。如果给函数A输入x,y和z,它是否返回正确的值?这些便宜,简单,快速,帮助您了解各个代码单元的工作正常。
  2. 系统测试 - 各个单元一起工作吗?这是测试应用程序的业务逻辑并测试单元之间的契约的地方(“如果你提供参数x,y,z我将返回A”和“如果你给我错误的参数我会提出错误B“)。这些可以帮助您了解各个单元是否一起工作以完成任务。
  3. 性能测试。在这种情况下的性能可能意味着原始速度,或者它可能意味着容量(“网站每天可以处理100万次点击吗?”),系统负载,延迟等。
  4. 单元测试通常使用名为junit(对于java),nunit(j.net)或类似的框架来完成。对于您使用的任何语言,可能都有*单元框架。许多软件商店使用自己的自定义工具来执行此操作。大多数情况下(但不是唯一的),单元测试由编写单元的开发人员编写。

    系统测试可以采用多种形式,并且并不总是有一个适用于特定应用的解决方案。例如,如果您的站点是一个网站,您可以进行服务层测试(“如果我调用我的网站的Web API,它是否返回正确的值”)和表示层(“如果我点击UI中的按钮,表单是否发布到正确的URL?)测试。

    虽然单元测试几乎总是自动化的,但系统级测试可以是自动的,手动的,也可以是自动和手动的组合。用户界面测试通常是手动过程。虽然有各种工具可以为各种类型的应用程序驱动UI,但最终自动回答诸如“看起来这样吗?”之类的问题是一个非常困难的问题。和“这很容易使用吗?”。这些类型的问题几乎总是必须由训练有素的人来回答这些问题。

    性能测试几乎完全是自动化的,但任何简单的性能测试方法都只是为您的自动化系统测试和观察趋势计时,并在系统测试运行时监视系统指标,如CPU和内存利用率。这不是一个理想的性能测试策略,但如果你刚刚开始它就足够了。

    因此,要开始测试,请查看是否已有适用于您的语言的单元测试框架。然后,您可以快速为各个单元提供一系列测试。然后,您可以开始寻找系统测试通常称为“测试框架”的内容。有许多框架可供选择。没有“最好的”,所以不要太忙于寻找完美的工具。选择适合您语言的任何工具并开始使用它。

答案 1 :(得分:1)

从根本上说,这些事情正在发生:

  1. 了解该软件应该做什么。
  2. 决定如何验证它确实存在。
  3. 与利益相关者同意您的测试策略:应该有人关心您是否正在测试正确的事情,他们需要相信您正在这样做。
  4. 执行验证
  5. 准确,详尽地报告结果,以便解决问题
  6. 细节取决于软件的性质。例如,如果软件没有UI,你会怎么做?或者如果 一个用户界面,几乎肯定会有其他东西(例如,从外部系统加载数据的模块)你需要测试,你花在这些上的时间是多少?

    在您发布软件的新版本时,很有可能需要重复您认为合适的某些测试部分。您可以区分“测试”和“重新检查”的子集,并且自动重新检查方面可能有价值。

    要记住的一件事:我非常怀疑试图将测试简化为一组简单的“步骤”。您可以查看contextual testing以获得解释。