publicmain / pe

0 stars 0 forks source link

Didn't handle for invalid format #5

Open publicmain opened 1 week ago

publicmain commented 1 week ago

image.png if there are no space between address and t\friends, this product will consider t\friend will be part of the address, but apparently its not, this product should check whether if tag is exist or not or sth

soc-pe-bot commented 1 week ago

Team's Response

Screenshot 2024-11-17 at 3.35.30 PM.png As per the CS2103T website, one can observe that deliberate sabotage is not considered to be a functionality bug. More specifically,

such mistakes should not crash the app, corrupt the data, or make it unusable

The application does not become unusable, the data is still correctly stored as the user input it, and the application does not crash.

Furthermore, the command templates provided should the user click on the GUI buttons already includes the space, as do all mentions of relevant commands in the UG and all example commands provided in the UG, in the help menu of the application, in the manual testing instructions in the DG and the error messages for those commands in the application.

Additionally, the constraint of tP is mentioned on the CS2103T site to be:

Following from the Constraint-Typing-Preferred, if the app is optimized for the target user (graded under the product design criterion), a user who can type fast should be able to accomplish most tasks faster via a command line interface (CLI), compared to a hypothetical GUI-only version of the app

So it would be reasonable to assume that this application should be following the standards of a command-line application. And in many widely used and acclaimed command line systems, including but not-limited to Linux, Unix, POSiX and other similar systems, along with their respective command shells such as but not limited to ZSH, Bash or even Windows Powershell/Command Prompt, it is widely accepted that whitespaces are used as a delimiter between command arguments. For example, in the following document:

POSIX.1-2024 is simultaneously IEEE Std 1003.1™-2024 and The Open Group Standard Base Specifications, Issue 8, Section 12.1

available from https://pubs.opengroup.org/onlinepubs/9799919799/ One can see the following excerpt:

Option-arguments are shown separated from their options by characters, except when the option-argument is enclosed in the '[' and ']' notation to indicate that it is optional. This reflects the situation in which an optional option-argument (if present) is included within the same argument string as the option; for a mandatory option-argument, it is the next argument. The Utility Syntax Guidelines in 12.2 Utility Syntax Guidelines require that the option be a separate argument from its option-argument and that option-arguments not be optional, but there are some exceptions in POSIX.1-2024 to provide for continued operation of historical applications

Thus, it would be reasonable, both from reading the UG and from command line application standards, to assume that whitespace can serve as a delimiter, and not introducing that whitespace between arguments can lead to unexpected behaviour. In this instance, the unexpected behaviour is not something that causes catastrophic failure of the application or corruption or loss of user data, and thus we believe that it is out of scope

The 'Original' Bug

[The team marked this bug as a duplicate of the following bug]

Address constraint is incorrect

Screenshot 2024-11-15 at 4.28.40 PM.png

Above: User guide says address cannot be blank Below: I managed to add a contact leaving address field blank Screenshot 2024-11-15 at 4.28.34 PM.png


[original: nus-cs2103-AY2425S1/pe-interim#1708] [original labels: severity.Medium type.FunctionalityBug]

Their Response to the 'Original' Bug

[This is the team's response to the above 'original' bug]

It was already specified in the UG that: User guide says that address field cannot take in \ and all the relevant command formats in the UG (such as for add and edit commands) include obvious spacing, for instance: Screenshot 2024-11-17 at 2.57.56 PM.png

Screenshot 2024-11-17 at 2.57.32 PM.png

\ is rather unlikely to be used in the addresses of individuals or contacts, especially not physical addresses. The only 'addresses' that commonly use \ would be file paths, but the target users of the application are highly unlikely to be storing contacts (of people) with \ in their address.

And on the topic of spacing, Screenshot 2024-11-17 at 3.35.30 PM.png As per the CS2103T website, one can observe that deliberate sabotage is not considered to be a functionality bug. More specifically,

such mistakes should not crash the app, corrupt the data, or make it unusable

The application does not become unusable, the data is still correctly stored as the user input it, and the application does not crash.

Furthermore, the command templates provided should the user click on the GUI buttons already includes the space, as do all mentions of relevant commands in the UG and all example commands provided in the UG, in the help menu of the application, in the manual testing instructions in the DG and the error messages for those commands in the application.

However, we recognise that this can still be used in rare situations and could cause slight inconvenience to those users, and hence would believe it is a low severity bug.

Items for the Tester to Verify

:question: Issue duplicate status

Team chose to mark this issue as a duplicate of another issue (as explained in the Team's response above)

Reason for disagreement: Dear Testing Team,

Thank you for your response to the bug I reported. However, I believe it is necessary to further discuss this issue and provide stronger evidence to demonstrate that it is a functional defect that needs to be addressed.

  1. User Error is Not Deliberate Sabotage

Firstly, categorizing this issue as a result of deliberate sabotage is inaccurate. Users inadvertently omitting a space between the address and the tag is a common mistake, not an intentional act. According to the CS2103T guidelines, if an issue arises from an unintentional user error (e.g., missing a space between two parameters), the application should handle it gracefully rather than allowing the error to propagate.

  1. Data Parsing Errors Affect User Experience

While the application does not crash and the data is stored as entered by the user, the core issue lies in the incorrect parsing of the data. Users expect "t\friends" to be recognized as a tag, but the application erroneously includes it as part of the address. This incorrect parsing leads to data inconsistency, undermining user trust and negatively impacting the overall user experience.

  1. Lack of Clear Error Feedback

Good software design should include input validation and provide clear feedback when a format error is detected. In this case, the application should notify users that they may have missed a necessary space rather than silently accepting the incorrect input and producing an inaccurate output.

  1. Documentation and User Guides Lack Clear Warnings

Although you mentioned that all command templates and examples include spaces, there is no explicit warning in the user guides or the application itself that omitting a space will lead to significant parsing errors. Users should not be expected to infer the strictness of input formats, especially when it is not clearly stated.

  1. Command-Line Standards Do Not Justify Poor Error Handling

Even in command-line applications, parameter parsing errors typically result in error messages. For example, in Linux command lines, incorrect parameter formats prompt the system to return error messages. Referencing POSIX standards does not justify ignoring user input errors; instead, it emphasizes the importance of correctly handling inputs.

  1. Applications Have a Responsibility to Handle Common Errors

According to best practices in software engineering, applications should be capable of handling common user errors rather than only functioning correctly under ideal conditions. Ignoring these errors can lead to issues during actual usage, reducing user satisfaction.

  1. Importance of Data Integrity

Incorrectly parsing and storing user data affects not only the current operation but can also have negative implications for subsequent data processing and business logic. Maintaining data integrity is a fundamental requirement for any application.

  1. Alignment with Module Learning Objectives

The CS2103T module emphasizes developing robust, user-friendly applications that can gracefully handle errors. Addressing this issue aligns with course requirements and contributes to improving the overall development standards of the team.

  1. Reference to Course Policy

According to the CS2103T defect severity guidelines, functional defects include:

Situations where the input format is correct but leads to incorrect results. User errors should not cause severe consequences in the application. In this case, missing a space is a user error that the application should handle appropriately without leading to incorrect data parsing.

Conclusion

In summary, this issue does not stem from deliberate user sabotage but from the application's failure to correctly handle common user mistakes. To ensure data accuracy and a positive user experience, I recommend treating this as a functional defect that needs to be fixed.