My company is large, and coordinating all this data was typically done over email or jira.
I designed and built a test data API service with a web UI, now in heavy use across many departments and three business units.
1,021 karma · joined July 21, 2009
Founder: Test from the Top https://testfromthetop.com/ Better software testing through leadership.
My company is large, and coordinating all this data was typically done over email or jira.
I designed and built a test data API service with a web UI, now in heavy use across many departments and three business units.
The only thing I didn't like was the Given When Then recommendation. BDD style story language is really meant for key specification examples, which can be automated in functional tests, but not really appropriate for unit testing.
I feel your pain. I think at that point it's good to look deeper and ask if exceptions are being properly thrown, as I try to call for in the final section on Exceptions.
You can't plan for everything.
My point here is this optimization is really pretty simple. One target state per test, and soft assertions for the rest. It's actually a simplification rather than adding complexity.
Soft asserts make your tests more robust by definition, lots of halting assertions break more often, they are brittle by design.
> If you have a decent test coverage with well written tests ... you're golden
Hey if your tests catch all bugs, it ain't broke, don't fix it!
Totally understandable if you aren't looking for optimizations like this. For the massive test suites I work on, it's necessary to at least consider these concepts.
Granted, unit tests benefit less from soft assertions, but I'll take a shot at an example anyway:
Consider a complex object returned from a unit test result (this would be a single target state). That structure could have a missing field that should be reported, but the rest of the fields are evaluated fine, and so that information would be lost if the first assert halted the test.
For functional tests, the value is usually easier to discern, so for another contrived example:
A login form has a failed assert on it's UI structure, say a button is the wrong color, but the login is successful, and the following assertion post-login is also successful.
Ideally, you would assert post-login tests in separate target state, perhaps mocking the login as a pre-condition to another test. For functional tests that could dramatically increase the testing time and complexity, and so this makes a non-halting assertion valuable.
Another layer would be conditional test execution hierarchy where one early failure would skip a set of tests that depend on that state.
Agreed, which is why I suggest designing each test for a single target state.
That target may then legitimately benefit from multiple assertions, and you have the same problem.
Maybe you can build your tests such that there's only one assert for each, and if that meets your needs, fine.
If not, or if you're in the process of refactoring your tests into single assertions, this way we can reclaim that coverage.
In particular, the code reuse aspect, which I haven't seen any advocacy for previously.
I've been a Senior Engineer in Test for long enough to care about this subject, and I think we'd all be better off using soft assertions, and less assertion in tests generally.
I've been a Senior Engineer in Test for long enough to care about this subject, and I think we'd all be better off using soft assertions, and less assertion in tests generally.
More supply solves nothing.
Would-be spoilers get educated about their own unrealized bias, racism continues to be a huge problem in this country, activists are vindicated and the world moves on.
Easy to verify, why suppose anything?
> censorship?
On a privately owned site? Try again.
What works for me is getting in tune to my annoyance and identifying opportunities for eliminating some task I'm doing that the junior dev should be in charge of. (peer code reviews, for example)
1) Every problem you're working on will be improved by better learning systems.
2) The direct challenger to AI's potential is human augmentation. There's an evolving hardware component to that, but the software needs to keep up, and we can greatly benefit from that now.
We're still reading, thinking and learning with computers as if they were books. That has to change. I want to fully realize that potential, I consider it the most valuable contribution I can make in my lifetime. I would jump at the opportunity to fully invest myself in that goal. Please contact me for a deeper conversation.
Thanks for the reply.
As a software test engineer, we do external audits like this, but I wonder: Documented or "known" vulnerabilities are not worth testing until there are systems in place that expect to cover them.
It seems that all vulnerabilities that are not intentionally addressed should be considered dangerous. If they are penetration tested but vulnerability is unknown, the best you could hope for is "Not vulnerable for unknown reasons" which is just as bad as vulnerable in my perspective.
With some admitted trepidation, I assert that all software should be tested this way, with expected behavior being a primary dependency.
Edit: hiring outside penetration testers is still totally valid and desirable, since development and testing are two totally different domains. I'm only pondering methodology.
From the article: "Almost a third of online payday borrowers surveyed by Pew reported that their personal or financial data was sold without their consent.78 Nearly as many reported unauthorized bank withdrawals in connection with an online payday loan.79"
Payday loans have to register new accounts in national databases. My company monitors for payday loans taken in your name: https://qidreports.com
This is a sane and direct response to exactly that.