|
I don't think I made my question very clear. I'm not testing a UI or program, I am testing a physical system. Due to the complexity of the system, a system is needed to generate input, record output and compare to the expected results. Let's say I pick python. Embedding python into the application is straightforward. Then what?
Based on my reading, it appears I have to develop an API for the real application that exposes functionality/services to python via an extension (written in C++ most likely). Am I groking this correctly?
"I have heard of quite a few other projects that also support Python" - Julie, any specific projects? I'll continue my search.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Then you have no choice but to expose an interface of sorts. If it's an API, first thing you need to decide of what type of bindings are you going to use.
If it were me, I'd toss a tiny web server on the machine and knock out some rest APIs. Even routers have a webserver on them, and they don't have much processing power. So, it's not like it'll take beefy hardware for one or two automating users. You can find a stripped down tiny one or just cook one up in Node (my favorite, it's faster) or Python on the machine itself.
But this way, your interface/gateway would be language agnostic. Just as long as it can send and receive web requests, which is most languages.
Jeremy Falcon
modified 10-Oct-23 13:17pm.
|
|
|
|
|
Oh this is an excellent idea, embedding a web server. The system we're building already has more than enough capacity to handle something like that.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
charlieg wrote: I am testing a physical system
ah...ok.
charlieg wrote: Based on my reading, it appears I have to develop an API for the real application that exposes functionality/services to python via an extension
The specifics do in fact depend on the target.
But yes other than that the idea would be correct.
Although I would look more closely into who will be writing those tests also.
I created a system that allowed QA testers to write Word docs which contained individual Test Cases. Between me and the QA testers we came up with a specific form that the Test Cases would follow.
The system tested a phone service box (can't remember the general name but back then companies would buy one of these and stick it in a closet to provide phone/internet.)
The system consisted of the following
1. Various helper libraries/tools. In particular to run two different SSH tools (two were needed because two instances of the same would not work correctly at the same time.) Those were used both to test and drive the hardware.
2. A third party tool called AutoIt. Which still exists. It was used to drive the the UI.
3. The parser/interpreter for the Word docs. Written in perl.
The parser would emit code for AutoIt. I think maybe AutoIt drove everything.
Long time ago.
Only interesting bit is that the hardware did not support IP directly. The UI talked via IP but via a tunneling protocol on one of the other channels. The IP rate was something like 40 bytes a second. (Not meg, not k.))
Worked well because of the two testers one could not program at all. The other could get by but from the QA role using the Word as the source made it much easier to document what was being accomplished for the customer.
-----------------------------------------------
I have done quite a few other solutions with dynamic user driven code. But not for hardware.
I have done it both in C# and Java. For the second the dynamic code was Java. For the first the code was both C# and VB.
At least for Java and C# both support a native API interface.
I worked on one system in C++ which used a knowledge base solution (when those were big) which had its own language. The knowledge base would produce C++. Then I wrote APIs for the difficult pieces which the knowledge base rules would call. One problem with that system is that it did not account for the size of the rule base that we were using (or perhaps the person doing that didn't read all of the docs.) It ended up producing C++ methods that were too big for the compiler to handle. (I had to hack a solution to refactor those those before handing off to the compiler.)
--------------------------------------------------
The problems with such systems.
1. How are programming errors handled? What and how will the user see such problems?
2. How are execution errors handled? When it runs it fails so then what?
3. The people writing the tests will need to some non-trivial programming skills. And this impacts the next part.
People do not tend to excel even if it is possible for them to do so. They just want to get it done. Nothing wrong with that. And for the most part it is better since trying to achieve perfection is seldom worth it.
That however means that, based on the programming skills, they will do things that your system might not be expecting. And that can cause problems.
For example spinning up threads. Or making http/rest/tcp calls to external systems but not doing error handling correctly. Or even silly things like doing a set look up by using a for loop but doing in thousands of times in one execution.
Then they will want you to explain why it isn't working. Or why it is slow.
That is a problem if you did not expect that and plan for it. So you need to plan and I would suggest explicitly document the following
1. Limitations of the system
2. Who is responsible for failures.
3. Escalation process.
As for those external APIs that you might need I would suggest that you also collect plenty of stats:
1. The time it took to execute.
2. When it was called
3. Parameters to it.
4. Return result. At a minimum did it return success.
|
|
|
|
|
Wordle 838 4/6
⬛⬛⬛🟨⬛
⬛⬛🟩🟩🟩
⬛🟩🟩🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 838 4/6
⬜⬜⬜⬜🟨
⬜⬜🟨⬜⬜
⬜🟩🟩⬜⬜
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 838 3/6
⬜🟩⬜⬜⬜
⬜🟩🟩⬜⬜
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 838 3/6
⬜⬜⬜⬜⬜
🟨⬜⬜⬜🟨
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 838 6/6
⬜🟩⬜⬜⬜
⬜🟩⬜⬜⬜
⬜🟩🟩⬜⬜
⬜🟩🟩⬜⬜
⬜🟩🟩🟩🟩
🟩🟩🟩🟩🟩
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
Wordle 838 3/6
⬜🟩⬜🟨⬜
⬜🟩🟩🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 838 X/6*
⬜⬜⬜⬜⬜
🟨🟨🟨🟨⬜
⬜🟩🟩🟩🟩
⬜🟩🟩🟩🟩
⬜🟩🟩🟩🟩
⬜🟩🟩🟩🟩
Happiness will never come to those who fail to appreciate what they already have. -Anon
And those who were seen dancing were thought to be insane by those who could not hear the music. -Frederick Nietzsche
|
|
|
|
|
Wordle 838 6/6
⬜⬜⬜⬜⬜
⬜🟩🟩⬜🟨
⬜🟩🟩🟩🟩
⬜🟩🟩🟩🟩
⬜🟩🟩🟩🟩
🟩🟩🟩🟩🟩
Close! Far too close ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
At least you made it! Have a cigar!
Ok, I have had my coffee, so you can all come out now!
|
|
|
|
|
🟨⬜⬜🟨⬜
⬜⬜⬜🟨⬜
🟨🟨🟨⬜⬜
⬜🟩🟩🟩🟩
🟩🟩🟩🟩🟩
Too many possibilities
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 838 4/6
🟨⬛⬛🟨⬛
⬛🟩🟩🟩🟩
⬛🟩🟩🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 838 4/6
⬛⬛⬛⬛⬛
🟨⬛🟨⬛⬛
⬛🟩🟨⬛⬛
🟩🟩🟩🟩🟩
Ok, I have had my coffee, so you can all come out now!
|
|
|
|
|
Wordle 838 5/6
🟨⬛⬛⬛⬛
⬛⬛⬛🟨⬛
⬛🟩🟩🟩🟩
⬛🟩🟩🟩🟩
🟩🟩🟩🟩🟩
Made a Super Mario Bros level out of it.
Jeremy Falcon
|
|
|
|
|
#Worldle #621 2/6 (100%)
🟩🟩🟨⬜⬜➡️
🟩🟩🟩🟩🟩🎉
https://worldle.teuteuf.fr
had to use map
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
DIMM modules have 288 pins
I count...
- 64 Address pins
- 64 Data pins
That adds up to 128
288 - 128 = 160
What are those extra 160 pins used for ?
I can imagine, +Volts, Ground, and perhaps clock signals, and perhaps a few other tricks of the trade that I've never heard of before.
But, 160 of them ? Duh.
Searching on the internet, I found this gang called JEDEC, as well as a zillion other firms.
I have so far been unable to find a clear, concise, and simple description of what the pins are for.
Interesting Observation: I was unable to find the expansion of the acronym "JEDEC" on their own website. They don't even say what their name is. Duh. Perhaps when I get $6,500.00 they will tell me.
|
|
|
|
|
|
The complete list is here: DDR4 SDRAM R[^] - pinouts start on page 5.
You'll notice that there are a lot of VSS and VDD pins: these can be thought of as power and ground respectively, and there are probably a lot of 'em because the traces leading to them are so thin and the voltages so low - but that's just a guess.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I would speculate, the remaing pins are 'ground' to seperate noise.
But only speculation
[Edit]
Or more likely differentially signal lines
[Edit01] ChatGPT, take care..
Yes, this is indeed related to differential signals. In DDR4 memory modules, many signals are transmitted as differential signals. This means that the information is not transmitted as single voltages (as with unidirectional signals), but rather as the difference between two voltages.
Differential signal transmission offers several advantages, including better noise rejection and higher immunity to electromagnetic interference (EMI). This type of signal transmission is particularly important at high data transfer rates, as is the case with DDR4 memory modules.
Therefore, many of the additional pins on a DDR4 DIMM module are reserved for differential signal pairs to ensure reliable and fast data transmission. The ground lines we mentioned earlier also play an important role in providing a stable reference for these differential signals.
modified 4-Oct-23 16:14pm.
|
|
|
|
|
JEDEC is something like "Joint Electron Devices Engineering Council", a very old industry standards body.
JEDEC - Wikipedia[^]
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
no driver updates for Artesia M200 ... using VLC equalizer working. but sound murky.
better player than VLC ? possible interaction with Logitech g431 software ?
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
|
|
|
|
|
I'm not sure what you're asking for exactly.
But, I did have problems with "murky sound" a good while ago, when I had my old SoundBlaster X-Fi (USB) hooked up in such a way that it went through a USB2 connection rather than USB3.
Changing connections so I knew (for sure) it was going through USB3 fixed the problem. Which makes very little sense, since the device itself predates USB3. I rather strongly suspect this is because it went through a long chain of hub going through hub going through hub, and USB2 perhaps couldn't carry the amount of data from all devices that were all competing for bandwidth.
In other words: Try hooking up your G431 headset so it goes through a shorter USB3 path...?
|
|
|
|