philip1304 / pe

0 stars 0 forks source link

Adding weight and age values that are strictly, scientifically (to our current understanding) impossible, is possible #11

Open philip1304 opened 1 week ago

philip1304 commented 1 week ago

When adding or updating user data, you can set your weight and age values to very unrealistic if not impossible values. This will affect the information and advice the program gives to the user and for a health-related program could be very dangerous.

Screenshot 2024-11-15 at 5.25.41 PM.png

nus-se-script commented 4 days ago

[IMPORTANT!: Please do not edit or reply to this comment using the GitHub UI. You can respond to it using CATcher during the next phase of the PE]

Team's Response

First of all, it has to be mentioned that we do safeguard against invalid input such as negative or exorbitantly high (beyond known records) weight and height values. (0 < height(cm) < 270) and (0 < weight(cm) < 650). However, as the bug reporter correctly pointed out, we accept scientifically impossible personal specifics.

This was a conscious decision since we did not want to formulate a lower and upper limit within the range of reasonable value because this would have put us in a position to define what the exact limits are that make measurements impossible. In the face of possible sicknesses such as anorexia, we did not want to make a statement in this domain for two reasons. Firstly, because as CS students we have no experience in this domain. But more importantly, because it could be interpreted to contain ethical implications. To avoid this and focus on technical functionalities, we decided to put upper and lower boundaries at slightly wider points within the scope of unreasonable values instead, therefore making clear that we refrain from making assumptions about reasonable and unreasonable weight entries.

This might not be an ideal solution for a system in production, but for the TP it still appears to be a reasonable compromise. Especially, since it has no downstream consequences for any user.

Items for the Tester to Verify

:question: Issue response

Team chose [response.NotInScope]

Reason for disagreement: [replace this with your reason]