Take interview with enterprise tech company

>take interview with enterprise tech company
>interviewer has never heard of TDD before

everyone really is just larping, huh

Attached: 3DE6B9F2-5F87-4754-AC5B-BF915334882A.jpg (1024x576, 110.05K)

impossible. everybody's heard of it
it's just that nobody actually does it because it's a fucking terrible idea.

what do you do when you have programmers on your team who routinely try to merge in things that break the build and dont accomplish what the task is asking?

interfaces exist for a reason

I don't have team.

I've done it for aircraft software before. biggest pain in the ass ever but contracts are signed around these requirements that some guys made up "to the best of their knowledge" so you absolutely cannot change it, even for the better without renegotiating the contract which costs time and money that no one wants to do

I block the merge until they pass review, which includes
>making sure the work accomplishes the task
>makes sure the work won't break the build

What's TDD?

Test-Driven Development?

I do it sometimes when I'm bored and it works fine

I agree. At my work it's become a hoop we jump through just to get to 100% coverage and make sure tests pass. Somtimes: Code works, test don't pass. Tests pass, code doesn't work. Those states happen often. I've spent an hour or two troubleshooting retarded tests that don't test important behavior for a working fix. Whatever I guess at least they pay me for it. But I can't help but feel hampered in my productivity

thats because you arent writing the test first lmao

if you write the code first then youre just going to test the impl

How can you write test first if you don't have code?

Theoretically you're supposed to have the specifications first
Say you're writing a calculator program, then naturally you would write tests for simple arithmetic, etc.
How do you even write the code if you have no idea what the code is supposed to do?

>soft-eng bullshit
lol

came for the 'cado, this is hilarious

Attached: 1632850953263.jpg (1280x720, 111.46K)

Your statement that I write tests first implies that I write them before I have any calculator program methods like Add(int a, int b), Subtract(int a, int b) etc. which is impossible because how would I write a test for methods that don't exist yet?
If I write the tests after I have those methods then I am not writing tests first.

gosh i want to eat my giant bag of chips now but im getting fat and need to stop eating...

By just doing it? What's stopping you from writing the test before the implementation?

see

Does anyone have their onlyfans

First, you're assuming there aren't any languages that let you reference functions that don't yet exist. Second, the you replied to said you write the implementation first, not the function itself. So you can write Add to raise a not implemented exception or hardcode it to always return 0 before you write your tests for it.

Can anyone help me get a security engineer or analyst job?
any recommendations for passing interviews, avoiding terrible positions in the industry, doing the job, work stories, or crafting resume's appreciated.
Not expecting an inside referral but neither would I reject.

Attached: 1619625791003.jpg (1845x1618, 1014.73K)

you sorely overestimate the skill level of your typical enterprise boomer

good morning sir

>Second, the you replied to said you write the implementation first, not the function itself. So you can write Add to raise a not implemented exception or hardcode it to always return 0 before you write your tests for it.
But then I am writing interface/dummy function first, not the Tests.

sadly I'm just a white brainlet desperately wanting out of the wage cage industry I've been working in for 10 years

Attached: E9KlwP1VgAIdYCi.jpg (2048x1154, 360.51K)

>dumb wagie
>wants security engineer as his first tech job
lmao you're fucking brainlet indeed
start small with some webshit developement or something, learn javascript, it's well suited for idiots

I have a cert in security. I know how to do security things like deploy and operate a siem, but I have very little actual work experience. By contrast I don't know any java script.

Attached: usagi computer.gif (784x792, 614.48K)

So your argument is just pedantry? Sure, you have to exist to write tests, so the first thing you should do in TDD is be born.

>Don't get an enterprise job early on. Seriously. It will skew your entire career.
>For security you need to pick Linux or Windows and then do relevant certs for either.
>If you only have limited experience, then you cannot reasonably expect to break the typical wage curve.
>Security is a lifestyle and you need to be doing whatever you can during your free time.
>For interviews, stay humble, even if you know more than your interviewer. STAR is your friend.
>People skills dominate your field unless you are a super autist with verifiable contributions to the field.
In short, don't pick security unless you were destined for it.

You might call it pedantry, but it's plainly misleading to say "write tests first before code" and it makes the entire TDD idea look dumb.
Also only in a perfect world you know the exact specification of the needed methods/interface. In real world it can change a lot during implementation and cooperation with other programmers so this whole idea of "write tests first lmao" is stupid and unrealistic as fuck.

Already did, no pussying out now. My people skills are poor but I am probably going to have to focus on star first. I've been on this shithole for over way over 10 years and I obviously don't have the natural self esteem to ace STAR. one of my wage cage managers recommended coming up with a bank of star templates based on my previous experiance. It wont be easy to do that but I probably should at least squeeze out 10 right?

Attached: anon-female.1632547229235.kobayashi-lurks.jpg (1920x1080, 1.4M)

No it's really autism pedantry. Interfaces are trivial pieces of code that you write in 3 minutes after having done the design work. Jesus Christ user how dumb are you?

Then it's DESIGN and write Interface first then Tests, not write Tests first. You're fucking dumb if you don't see the difference.

>just write tests first test first lmao
>no no no actually design interfaces first
>after you're done with design work write the interfaces in 3 minutes
>then write functions to raise a not implemented exception or hardcode it to always return 0 before you write your tests for it
>then write test ofc, are you dumb?????
fuck off retard

This is a big problem in tech; everything is a fucking acronym. It is insane the amount of time you have to spend backtracking definitions while reading documentation.

Our tech lead with 20+ years of experience in industry doesn't understand the difference between count++ and ++count. And a senior software developer didn't understand why classes shouldn't have verbs as name. The incomptence in this industry is rampant, yes.

Attached: 1616094842248.gif (230x230, 1.54M)

You shouldn't write code with ++x anyway.

It's just what people in tech do. Something like this:
>LFM 2 DPS SSC/TK MS/OS +1 PST
is commonplace in world of warcraft, and every other person I've met playing that game works in tech.

>This is a big problem in tech
I think it's American thing in general.

It's really not, because writing interfaces first will lock you into specific design. TDD is useful when it's language agnostic as a way to support requirement analysis instead of development.

>And a senior software developer didn't understand why classes shouldn't have verbs as name.
W-why?

>TDD
Also knows as
Terribly Dumb Development

It's good and should be done more to gatekeep morons like you.

>Also only in a perfect world you know the exact specification of the needed methods/interface.
You should have a good general idea of what a method/function should do before you implement it.
For example, even if you have no idea how to decode a png and haven't written the implementation, you should still know that your decoder function should return a type representing an image or fail if the encoding is bad. If you change your mind on what the arguments and return value should be later, the test is still there and you wouldn't change much.
Can you provide a real world example of when you had no fucking idea what something should do and were therefore unable to write a test?

>gatekeeping by wasting time
Sorry troon but programming is not the arcane art you think it is.

the tests are supposed to fail.

so before you've even written the "add" method, you're supposed to write

def test_add():
assert add(1, 1) == 2
assert add(2, 2) == 4
assert add(3, 2) == 5

def test_add_large_number():
assert add(10**10, 10**10) == 10**10*2


etc. and then run them and they should all fail. after that, you're supposed to make them pass by actually writing the method.

it's fucking stupid and results in bad code

>what do you do when you have programmers on your team who routinely try to merge in things that break the build and dont accomplish what the task is asking?
"having tests" is the solution to this

not TDD.

brainlets love to gatekeep
while intelligent people have better things to do than make things unnecessarily difficult for themselves, you idiots want to use the miniscule amount of knowledge you have to appear smarter than others

>"having tests" is the solution to this
>not TDD.
True, but for me personally writing tests before implementation feels less cumbersome than writing them after, and helps break up a project into smaller tasks (pass test 1, then 2, etc.). Which is mostly psychological, I'll admit.

yes
behavior driven development is king though
and anyone who says otherwise has never had a real jon

Attached: static-assets-upload9362411387001596778.jpg (680x763, 33.41K)

Sorry I only use real programming languages (strongly typed static ones) so I can't do bullshit like this.

Attached: gigachad.jpg (912x1024, 71.21K)

good morning sir

I'll admit having the tests written beforehand would be easier - but writing the tests beforehand isn't easier imo, and I've seen it result in shitty tests more often than not

you literally don't know what you're talking about.

That sounds based. Here, have a (You), king.

Attached: 8hzyvrkgzk981.jpg (320x180, 5.67K)

Hai guys, what's going on in this thread?

Attached: 1643474377960.jpg (320x180, 8.79K)

Your tests will not compile in any static language you moron.

This, as a ESL I can confirm I have got problems understanding all the acronyms you use.

>look at this image of this fatass eating
>think of buffalo wings
>check local wingshop
>6 wings for 11 bucks
>close tab

Attached: 1637585760889.jpg (700x630, 33.66K)

He said "code should be self documenting so classes should tell what they do" and got angry when every single junior told him otherwise. Didn't budge. That equally retarded tech lead was just yes yes makes sense happy to have good seniors who know what they are doing.

only midwits use acronyms frequently. you’re better off actually learning the language properly so you can accurately choose words to express your intent or meaning.

>the tests are supposed to fail.
the code not compiling is the tests failing, you moron.

>Test-Driven Development?
Lol that's it? Why do normalfaggots always have to invent stupid terms like this for basic concepts?

Attached: 4chan faggot account.jpg (400x500, 45.86K)

if you have an "add" method that matches, they will. they'll just fail.
unless you're going for some fucking stupid "HURR NO STATIC LANGUAGE USES PYTHON SYNTAX" point, in which case, no shit.

>a senior software developer didn't understand why classes shouldn't have verbs as name
???

Imposter syndrome. None of them are as smart as they believe their position dictates they must be.

You're probably right

>position required an understanding of end to end testing
>talked extensively about it during interview and behavioral driven development as well
>join team
>no end to end testing or regression testing is done whatsoever
>all unit tests are solely to get past quality gate
>real testing is manual creation of test plan spreadsheets

Attached: tumblr_3209a80d7dad8725d002ba2673188501_086491fb_640.jpg (623x665, 66.21K)

It's also an americanoid thing, they seem to shorthand and make everything into an intialism probably cause they're all lazy pigs

>I've seen it result in shitty tests more often than not
That's why you don't let the devs write their own tests. They always end up testing the implementation instead of the behavior/interface.

public Class ThingDoer{
private final ThingIDependOn thing;
}

this is exactly how things work. I get filtered because I haven't actually done any e2e but neither do the companies I'm interviewing for

how do you TDD a crud app? I can't wrap my head around it. You mock your database? Doesn't that just turn it into masturbation?

>this kills the TDDranny

>be it wizard with company for 11 years doing everything IT and lots of development
>everything is a complete clusterfuck of duct tape and bailing wire
>company gets bought out by billion+ annual revenue company
>welp, I guess I'm gonna be replaced
>they figure out that I'm vaguely competent
>get brought into main IT engineering group
>finally get to see the guts of parent company's IT
>it's a complete clusterfuck held together by duct tape and bailing wire
Our environment somehow manages to be less of a disaster than theirs.

It's like that in every giant corporation I've worked in. Only time I've seen semi-competently made IT systems was in small companies, it looks like the more people work on a system the probability of it being clusterfuck approaches 1.

This place just grew way, way too fast. Somehow they got themselves a huge chunk of cash and started buying up companies like crazy. It's not really one company, its 180 little companies that are just throwing all their IT resources into one Azure tenant without any standardization. Currently paying just short of a quarter million a month for 4 gigantic SQL Server instances with about 700TB of attached storage. No Availability Groups, no HA, no replication. Just big standalone SQL boxes they keep attaching more and more storage to because no one can identify what most of the data is, where it came from, or what should be done with it.

Wrap data related tests in transactions that rollback

You don't write tests for the boundaries of your application. Testing SQL queries and testing REST endpoints is fucking stupid. You test the internal parts of your applications that are free of side effects. You try your best to separate your code out into testable units so that only 5% of your code involves a database or API route while the other 95% is just pure domain logic.

I'd qualify what this user said by saying that you don't write Unit Tests for that. Integration Testing is a completely different animal and should belong more to Operations then Development.

sounds like you got an interview with a tech person instead of management
keep the buzzwords to a minimum around people that do actual work or you'll have the rug pulled from under you before you can get moving
they're not welcome

testing REST endpoints is valid if you work somewhere with lots of micro services, it would be retarded not to

Time division duplex

While I dislike Django, its builtin testing framework, which wraps Python's standard unittest library, will stand up and tear down a dummy database. It's as simple as
MyTest(TestCase):
def test_comment(self):
self.client.post('url', 'hello')
self.assertEqual(Comment.objects.count(), 1)

Sounds insane. Mind telling what kind of IT system you guys provide?

Post it.

Hey retard, youre supposed to program to an interface, not the concrete implementation

Attached: BD780D0F-417B-4742-BFCE-7E90085ABBEA.png (1106x830, 689.8K)

> why classes shouldn't have verbs as name
It should if the class is just a function with state :^)

I'd say having good integration tests is more important than unit tests. Especially since most developers create fucking dumb unit tests that are useless, only because they have to create them to meet the acceptance criteria of their tasks. Integration tests at least validate the real flow of the system.

dumb frogposter

i am going to post it

Integration tests are a crapshoot. We have an integration test suite here but it's broken. They're usually finnicky and often timeout for one reason or another.

I see value in them but I'd use them sparingly.

Zoomer here, let me guess:

Looking for match, need 2 characters with high damage per second, shit shit cunt/team kill Microsoft/operating system +1 Pacific Time Zone

Post code.

Unit tests are supposed to test the interface which then tests the concrete. Thats what people get wrong - they test the concrete and then when code changes its a crapshoot.

The big fucking huge insurance system at my company has 50k unit tests and 99% of them are pointless and tell us nothing about the state of the system. Every release is a bug ridden disaster anyway. But management loves those unit tests and refuse to hire more testers and just tells us to write more unit tests.

you're an FRFR. (fucking retard for real)

run tests in parallel transactions
testing elixir/phoenix projects is a breeze thanks to this

I know many such people too. They all get paid a lot of money (more than me).

Attached: 1643242721269.webm (460x460, 1.09M)

>went to Glassdoor and found highest paying jobs
>I’ll take one please

Just apply for unemployment OP.

What really annoys me is that ++ behavior is now considered confusing and is sometimes either omitted from a language, banned with a popular linter, or has reduced functionality.
In Rust, there is no ++. In Go, there is only ident++, not ++ident, and it is not an expression, only a statement (e.g. x = y++ doesn't work).
I fucking hate the verbosity == readability meme.

For once a post made by someone who isn't a faggot. Everything written here is true, I would listen to this user.

t. sec engineer - 7 YoE

Most likely what happened:
>Hey, our testing is just manual creation of test plan spreadsheets
>Let's hire an expert on e2e testing to shake things up!
Seen this a lot even at my current job [spoiler]oh god please send help it sucks here[/spoiler]

I read this in a design pattern book as well.

Trans-Driven-Dickery

>Let's hire an expert on e2e testing to shake things up!
yes and then this usually happens
>we can't change our process because not enough resources/time
or
>we can't change our process because that's how we do things

Mutts love to use acronyms to sound smart

Welcome aboard