首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试一个软件项目?

如何测试一个软件项目?
EN

Stack Overflow用户
提问于 2011-07-18 14:54:38
回答 2查看 6K关注 0票数 5

对于任何软件项目,测试都很重要。我是测试新手,那么如何测试一个已开发的软件项目呢?测试的步骤和级别是什么?我想知道软件项目将如何在公司中进行测试?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-18 19:20:55

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

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

  1. 单元测试-针对单个单元的测试(例如:函数、方法)。如果你给函数A输入x,y和z,它会返回正确的值吗?这些都是廉价、简单和快速的,并帮助您理解代码的各个单元完全按照设计的方式工作。
  2. 系统测试-各个单元是否协同工作?在这里您可以测试应用程序的业务逻辑,并测试单元之间的协定(“如果您提供了参数x,y,z,我将返回A”和“如果您给我提供了错误的参数,我将引发错误B")。这些帮助您了解各个单元是否协同工作来完成task.
  3. performance测试。在这种情况下,性能可能意味着原始速度,也可能意味着容量(“网站每天能处理100万次点击吗?”)、系统负载、延迟等。

单元测试通常使用名为junit (对于java)、nunit (j.net)或类似的框架来完成。无论你使用哪种语言,都可能有一个*单元框架。许多软件商店使用他们自己的定制工具来实现这一点。大多数情况下(但不是排他性的),单元测试是由编写单元的开发人员编写的。

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

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

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

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

票数 3
EN

Stack Overflow用户

发布于 2011-07-18 15:05:52

从根本上讲,有以下这些事情正在发生:

  1. 了解软件应该做什么。
  2. 决定如何验证它确实做了什么。
  3. 与利益相关者同意您的测试策略:应该有人关心您是否在测试正确的东西,他们需要相信您正在这样做。
  4. 准确、足够详细地执行verification
  5. Report结果,以便修复问题

<代码>G211

具体细节取决于软件的性质。例如,如果软件没有UI,你会怎么做?或者如果它一个UI,那么几乎可以肯定还有其他的东西(例如,从外部系统加载数据的模块)你也需要测试,你会在这些模块上花费多大的时间?

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

要记住的一件事是:我非常怀疑将测试简化为一组简单的“步骤”的企图。你可能会在contextual testing上找到一个解释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6729510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档