有很多测试方法,例如blackbox,graybox,unit,functional,regression等。
显然,一个项目不能采用所有的测试方法。所以我问了这个问题,以了解使用什么测试方法以及为什么要使用它们。您可以采用以下格式回答:
测试方法 - 您在
上使用它e.g。
我被要求参与 TDD ,当然我不得不研究测试方法。但是它们有很多,我不知道该用什么(因为它们听起来都很有用)。
答案 0 :(得分:6)
<强> 1。开发人员使用单元测试来确保他编写的单元代码是正确的。这通常是白盒测试以及某种程度的黑盒测试。
<强> 2。回归测试是测试人员使用的功能测试,用于确保系统中的新更改未破坏任何现有功能
第3。功能测试是在完整的集成系统上进行测试,以评估系统是否符合其指定要求。功能测试属于黑盒测试的范围,因此,不需要了解代码或逻辑的内部设计
这篇Test-driven development和Feature Driven Development个维基文章对您有很大帮助。
对于TDD,您需要遵循以下流程:
TDD是为了确保在您编码之前编写的功能测试用例应该起作用,并且无关紧要如何实现代码。
答案 1 :(得分:3)
测试中没有“正确”或“错误”。测试是一门艺术,你应该选择什么以及它对你有多好,这取决于项目之间和你的经验。
但作为一名专业测试专家,我的建议是您可以自动和手动测试。
(以下示例在PHP中,但您可以轻松找到正在使用的langauge / framework的正确示例)
自动测试
单元测试
使用PHPUnit测试它们之间的类,函数和交互
http://phpunit.sourceforge.net/
自动功能测试
如果可能的话,你应该自动进行大量的功能测试。一些框架工作具有内置的功能测试。否则你必须使用它的工具。如果您正在开发网站/应用程序,您可能需要查看Selenium
http://www.webinade.com/web-development/functional-testing-in-php-using-selenium-ide
持续整合
使用CI确保每次团队成员提交项目时,所有自动化测试都会运行
http://martinfowler.com/articles/continuousIntegration.html
手动测试
尽管我喜欢自动化测试,但它是恕我直言,而不是手动测试的替代品。主要原因是自动化只能执行它所说的内容,并且只验证它被通知查看为通过/失败的内容。人类可以利用它的智能来发现错误并提出在测试其他东西时出现的问题。
这个答案(几乎)与我给另一个问题的答案相同。看看这个问题,因为它有一些可能对你有帮助的好答案。 How can we decide which testing method can be used?
答案 2 :(得分:0)
我通常会做以下事情:
其中大部分也适用于应用程序。
答案 3 :(得分:0)
在回答答案之前,我想清除有关多种方法的测试概念。
有六种主要测试类型涵盖了所有测试方法。
几乎所有的测试方法都在这些类型下,你也可以在多种类型中使用一些测试方法,比如你可以在黑盒子或白盒方法中根据可用的资源进行测试。
因此,为了完全测试网站,您需要根据可用于测试的资源至少使用以下测试方法。这些至少是用于测试网站的方法,但可能还有一些基于网站性质的方法。
无论您关注哪种测试类型,您都应该至少使用以上所有(8)测试方法来测试网站。您可以在某些区域自动执行测试,您可以手动执行此操作,这取决于资源的可用性。
没有特别严格的规则可以遵循任何测试类型或任何方法。如你所知“测试是一种艺术”,所以艺术没有规则或界限。它完全取决于你用什么测试以及如何.......
希望你得到问题的答案。
答案 4 :(得分:0)
Selenium非常适合测试网站。
答案 5 :(得分:0)
答案取决于所使用的Web框架(如果有的话)。例如Django具有内置测试功能。
对于PHP(或功能性网络测试),SimpleTest非常好,而且很简单。它支持单元测试(仅限PHP)和 Web测试。测试可以在IDE(Eclipse)或浏览器中运行(意味着在您的服务器上)。
答案 6 :(得分:0)
到目前为止发布的其他答案主要关注单位/功能/表现/等。测试,它们都是合理的。
但是,您应该问的一个关键问题是“我的测试效果如何?”。
这通常用测试覆盖率工具来解决,这些工具确定应用程序的哪些部分实际上通过某些测试运行。理想的测试覆盖率工具允许您通过您可以想象的任何方法(包括上面的所有标准答案)测试您的应用程序,然后报告您的代码的行使部分和百分比。最重要的是,它会告诉您没有行使的代码。然后,您可以检查该代码并确定是否需要进行更多测试,或者您是否不在乎。如果未经测试的代码与“磁盘完全错误处理”有关并且您认为1TB磁盘很常见,您可能会决定忽略它。如果未经测试的代码是导致SQL查询的输入验证逻辑,您可能决定必须测试该逻辑以确保不会发生SQL注入攻击。
使用哪些测试覆盖率工具,您可以使用有关代码的哪些部分已被执行的数据,做出充分测试的合理决策。因此,无论您如何测试,最佳实践都表明您还应该进行测试覆盖率分析。
可以从各种来源获得测试覆盖率工具。 SD提供a family of test coverage tools处理C,C ++,Java,C#,PHP和COBOL,所有这些都用于以各种方式支持网站测试。