是否有人可以清楚地定义这些测试级别,因为我发现在进行TDD或单元测试时难以区分.如果有人能详细说明何时,何时实施这些?
testing tdd integration-testing unit-testing regression-testing
我有两个测试用例(两个不同的文件),我想在测试套件中一起运行.我可以通过"正常"运行python来运行测试但是当我选择运行python-unit测试时它会说0个测试运行.现在我只想尝试至少进行一次测试才能正确运行.
import usertest
import configtest # first test
import unittest # second test
testSuite = unittest.TestSuite()
testResult = unittest.TestResult()
confTest = configtest.ConfigTestCase()
testSuite.addTest(configtest.suite())
test = testSuite.run(testResult)
print testResult.testsRun # prints 1 if run "normally"
Run Code Online (Sandbox Code Playgroud)
这是我的测试用例设置的一个例子
class ConfigTestCase(unittest.TestCase):
def setUp(self):
##set up code
def runTest(self):
#runs test
def suite():
"""
Gather all the tests from this module in a test suite.
"""
test_suite = unittest.TestSuite()
test_suite.addTest(unittest.makeSuite(ConfigTestCase))
return test_suite
if __name__ == "__main__":
#So you can run tests from this module individually. …Run Code Online (Sandbox Code Playgroud) python unit-testing regression-testing test-suite python-unittest
如何使用Make实现简单的回归测试框架?(如果重要的话,我正在使用GNU Make.)
我当前的makefile看起来像这样(为简单起见而编辑):
OBJS = jscheme.o utility.o model.o read.o eval.o print.o
%.o : %.c jscheme.h
gcc -c -o $@ $<
jscheme : $(OBJS)
gcc -o $@ $(OBJS)
.PHONY : clean
clean :
-rm -f jscheme $(OBJS)
Run Code Online (Sandbox Code Playgroud)
我想要进行一系列的回归测试,例如,expr.in测试一个"好"的表达式并unrecognized.in测试一个"坏的" 表达式,其中expr.cmp&unrecognized.cmp是每个的预期输出.手动测试如下所示:
$ jscheme < expr.in > expr.out 2>&1
$ jscheme < unrecognized.in > unrecognized.out 2>&1
$ diff -q expr.out expr.cmp # identical
$ diff -q unrecognized.out unrecognized.cmp
Files unrecognized.out and unrecognized.cmp differ
Run Code Online (Sandbox Code Playgroud)
我想在makefile中添加一组规则,如下所示: …
我们针对现有代码库运行Selenium回归测试,我们的Web应用程序中的某些屏幕使用弹出窗口进行中间步骤.
目前我们在测试中使用命令:
// force new window to open at this point - so we can select it later
selenium().getEval("this.browserbot.getCurrentWindow().open('', 'enquiryPopup')");
selenium().click("//input[@value='Submit']");
selenium().waitForPopUp("enquiryPopup", getWaitTime());
selenium().selectWindow("enquiryPopup");
Run Code Online (Sandbox Code Playgroud)
...... 大部分时间都有效.偶尔测试将失败在waitForPopUp()与线
com.thoughtworks.selenium.SeleniumException: Permission denied
Run Code Online (Sandbox Code Playgroud)
任何人都可以提出更好,更可靠的方法吗?
此外,我们主要在IE6和7上运行这些测试.
在嵌入式环境中或在自动化测试的可能性非常有限的其他情况下运行回归测试有哪些良好的实践和策略.
根据我的经验,许多测试必须手动执行,即测试人员需要按下一系列按钮并验证机器是否正常运行.作为开发人员,很难确保您的更改不会破坏其他内容.
如果没有适当的回归测试,在大型重构等情况下情况会变得更糟.
有人认出这个问题吗?您是否找到了解决此类问题的良好解决方案或流程?
我们正处于一个大型项目的初始阶段,并且已经决定某种形式的自动化UI测试可能对我们有用,但还没有确切地说明它是如何工作的......
主要目标是自动执行应用程序的基本安装和运行,因此如果开发人员导致严重破坏(例如:app将无法安装,网络将无法连接,窗口将无法显示等)测试人员不必浪费时间(并且烦恼)安装和配置损坏的构建
第二个目标是在处理重复性任务时帮助测试人员.
我的问题是:谁应该创建这些类型的测试?我们团队中隐含的假设是测试人员会这样做,但我在网上读到的所有内容似乎总是暗示开发人员会创建它们,作为一种"扩展单元测试".
一些想法:
开发人员似乎处于更好的位置,因为他们知道控件ID,类等,并且可以更好地了解应用程序的工作方式
测试人员的优势在于不知道应用程序是如何工作的,因此可以生成可能更有用的测试
我用IronRuby和White编写了一些初始脚本.这非常有效,并且足够强大,可以完成任何事情,但是你需要能够编写代码来编写UI测试
我们尝试过的所有自动化UI测试工具(TestComplete等)似乎都非常复杂和脆弱,虽然测试人员可以使用它们,但它们需要大约100倍的时间并且它们不断遇到"意外复杂性"由UI测试工具引起的.
我们的测试人员无法编写代码,虽然他们非常聪明,但当我建议测试人员可能编写简单的ruby脚本时,我所得到的都是有趣的(尽管所说的脚本比读取和编写的脚本容易大约100倍.按钮和数据网格似乎是自动UI测试工具的标准).
我非常感谢在开发人员和测试人员团队中尝试过UI自动化的其他人的反馈.谁做了什么,并且做得好吗?提前致谢!
编辑:有问题的应用程序是一个C#WPF"富客户端"应用程序,它使用WCF连接到服务器
我试图想出一种回归测试数字序列的方法.
我的测试系统会为每个系统版本生成大量数字(例如高度,宽度,深度等).这些数字因版本不同而有所不同.给定一系列"好"版本和一个"新"版本,我想找到最不正常的序列.
例:
"好"版本:
version width height depth
1 123 43 302
2 122 44 304
3 120 46 300
4 124 45 301
Run Code Online (Sandbox Code Playgroud)
"新版本:
5 121 60 305
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我显然希望找到高度序列,因为值60比宽度或深度更突出.
我当前的方法计算好案例的每个序列的均值和标准差,并且对于新版本的数字,它计算该数字是该序列的一部分的概率(基于已知的均值和标准偏差).这工作......有点儿.
我的序列中的数字不一定是高斯分布在平均值附近,但通常是相当恒定的,有时只会产生异常值,这似乎也是相当恒定的,例如10,10,10,10,10,5,10,10在这种情况下,仅基于平均值和标准偏差,值10不会100%可能在序列中,并且值5将是不太可能的.
我考虑使用直方图方法,并在那里先犹豫不决.直方图的问题在于我需要为每个序列存储大量信息(与平均值和标准差相反).
我想到的下一个方面是,我非常确定这种任务不是新的,并且可能已经有一些解决方案可以很好地适应我的情况; 但我在研究中发现并不多.
我发现像PyBrain这样的库,乍一看似乎处理数字序列,然后显然试图用模拟神经网络分析这些.我不确定这对我来说是不是一种方法(而且似乎我必须为每个数字序列存储大量数据,如完整的神经网络).
所以我的问题是:
是否有技术,算法或科学学科可以帮助我分析数字序列以找出异常(在最后一个值中)?最好每个序列只存储少量数据;-)
对于具体的实现,我更喜欢Python,但也欢迎其他语言的提示.
python statistics numbers machine-learning regression-testing
我前段时间编写了一个测试,用于测试我在代码和第三方API之间编写的集成.测试确保集成正常工作,并确保我们得到预期的结果.
正式版本今天失败,因为测试在尝试连接到第三方API时收到500错误.
测试这样的情况是否有意义?
testing continuous-integration integration-testing automated-tests regression-testing
我意识到这是一个非常重要的任务,但有没有办法回归测试Web应用程序的样式和渲染布局?我发现它可以直接进行单元测试和回归测试功能,包括服务器端和客户端.然而,我遇到的一个令人沮丧的问题是CSS更改,修复了一个布局问题,打破了不同页面上的布局和样式.我知道如何检测这些内容的唯一方法是手动查看应用程序中的每个页面,并将其与我自己的期望进行比较,但显然当应用程序可以包含数十页时,这可能会非常繁琐且昂贵.是否有任何研究使用图像处理或其他技术自动检测这些类型的问题?
testing ×4
unit-testing ×3
python ×2
tdd ×2
bdd ×1
css ×1
embedded ×1
gnu-make ×1
makefile ×1
numbers ×1
popup ×1
selenium ×1
statistics ×1
test-suite ×1
ui-testing ×1