目前,我正在使用java和selenium rc编写自动化测试.
我想验证用户界面上的所有内容,功能如下:
public String UITest() throws IOException {
String result="Test Start<br />";
try {
openfile(1);
for (String url : uiMaps.keySet()) {
selenium.open(url);
for (String item : uiMaps.get(url)) {
assertEquals(url+" check: " + item, true,selenium.isTextPresent(item));
result+=url+" check: " + item+" : OK<br />";
}
}
} catch (AssertionError e) {
result+=e.getMessage();
}
result+="Test finished<br />";
return result;
}
Run Code Online (Sandbox Code Playgroud)
函数假设返回一个String包含有关测试的信息.但是,一旦发生断言错误,该函数就会停止.
所以,我想知道是否有办法忽略失败并继续执行所有断言验证.
谢谢你的帮助
这是我在许多公司遇到的一个问题:质量保证团队应该向开发组织报告,还是等同于公司层次结构中的开发?
我使用QuickCheck-2.5.1.1进行QA.我测试两个纯函数gold :: a -> Float
和f :: a -> Float,其中a实例随心所欲.
这gold是参考计算,f是我正在优化的变体.
到目前为止,我使用quickcheck的大多数测试都使用了类似的测试\a -> abs (gold a - f a) < 0.0001.
但是,我想收集统计数据并检查阈值,因为知道平均误差和标准偏差对指导我的设计很有用.
有没有办法使用QuickCheck来收集这样的统计数据?
为了给出我正在寻找的那种东西的具体例子,假设我有以下两个函数来近似平方根:
-- Heron's method
heron :: Float -> Float
heron x = heron' 5 1
where
heron' n est
| n > 0 = heron' (n-1) $ (est + (x/est)) / 2
| otherwise = est
-- Fifth order Maclaurin series expansion
maclaurin :: Float …Run Code Online (Sandbox Code Playgroud) 关于如何避免HttpClient从同步代码调用的异步代码(例如,方法)中的死锁,有很多问题,如下所示.我知道避免这些死锁的各种方法.
相反,我想了解在测试期间加剧或触发错误代码中的这些死锁的策略.
这是最近给我们带来问题的坏代码示例:
public static string DeadlockingGet(Uri uri)
{
using (var http = new HttpClient())
{
var response = http.GetAsync(uri).Result;
response.EnsureSuccessStatusCode();
return response.Content.ReadAsStringAsync().Result;
}
}
Run Code Online (Sandbox Code Playgroud)
它是从一个ASP.NET应用程序调用的,因此具有非null值SynchronizationContext.Current,它为潜在的僵局火灾提供了燃料.
除了公然滥用HttpClient之外,这个代码在我们公司的一个服务器中陷入僵局......但只是零星地.
我在QA工作,所以我尝试通过一个单元测试重新编写死锁,该单元测试命中Fiddler的侦听器端口的本地实例:
public class DeadlockTest
{
[Test]
[TestCase("http://localhost:8888")]
public void GetTests(string uri)
{
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
var context = SynchronizationContext.Current;
var thread = Thread.CurrentThread.ManagedThreadId;
var result = DeadlockingGet(new Uri(uri));
var thread2 = Thread.CurrentThread.ManagedThreadId;
}
}
Run Code Online (Sandbox Code Playgroud)
有几点需要注意:
默认情况下,单元测试具有null SynchronizationContext.Current, …
有一段时间你会得到一个错误报告,通常来自质量保证的新人,他们可能还没有完全理解该产品,这会让你挑起眉毛.
我会从一个我的团队(发展和QA)在它发生几年后仍然笑的开始.
我正在处理的产品有一个带有一组按钮的工具栏,可以切换应用程序状态的某些方面.我收到了一个错误报告,其中说"当你按下按钮[x]时,它会卡住.你必须再次推它才能让它脱落."
我正在尝试强调测试我的Spring Boot应用程序,但是当我运行以下命令时,ab正在做的是试图给出结果我的应用程序可以保持的最大值.但我需要检查我的应用程序是否可以按每秒特定请求保留.
ab -p req.json -T application/json -k -c 1000 -n 500000 http://myapp.com/customerTrack/v1/send
Run Code Online (Sandbox Code Playgroud)
从上面的命令给出的每秒请求数是4000,但实际上,我的应用程序中缓存了很多记录,这意味着它无法容纳那么多的rps.谁能告诉我如何在 ab 工具中设置每秒的特定请求?谢谢!
有谁知道任何机器学习问答框架?我目前唯一知道的是Ephyra和Qanus,但它们看起来都像学术玩具,没有太多的发展,并且已经死了.我甚至无法让Qanus运行,因为它似乎有几个非常好的记录依赖.
请注意,我不是在谈论类似OpenQA/StackOverflow的社交网络QA框架,或者像Wolfram Alpha或True Knowledge这样的专有黑盒网络服务.
假设我正在测试Java服务器应用程序.我知道完成测试需要多长时间.现在,我想知道在测试期间在GC上花了多少钱.我该怎么做?
什么是阳性测试用例和阴性测试用例?
谷歌上搜索它,我发现的答案非常令人困惑.有人可以用例子来解释吗?
为了改进我们的QA工作流程,我们希望为Github上的每个pull-request自动构建一个APK文件,以便我们可以在合并分支之前对其进行测试.我们已经想出了如何构建文件,但我们现在想知道如何将它集成到我们的工作流程中.
似乎大多数可用的Beta程序(例如Crashlytics Beta,Google Play)主要关注在发布前不久创建一个测试版,但不允许并行托管多个APK.
以下是我们理想工作流程的示例:
我们特别不想在pull-request合并之后测试APK,而是测试之前在我们的开发分支中弹出更少的bug.