![Page 1: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/1.jpg)
Parrot Instant Messenger
![Page 2: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/2.jpg)
System overview
•UML diagram
![Page 3: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/3.jpg)
Alpha Version•Features implemented
▫GUI▫Tabbed window▫XMPP protocol▫Chatbot▫Profile System▫Chat Log▫Adding, deleting, and blocking buddies▫Changing user status▫Sorted buddy list
![Page 4: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/4.jpg)
Difference from previous documents•Functional Requirements
▫Move Chat log to alpha version▫Avatar display is now in beta version
•Non-functional requirements▫Takes 30 MB to 50 MB of RAM▫Takes up to 5 MB on the hard drive, was
expected to be up to 20MB•Has 8000 lines of code, 2000 lines less
than previous prediction
![Page 5: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/5.jpg)
Quality Assurance: testing•Junit•Integration Testing•User Acceptance Testing
![Page 6: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/6.jpg)
Unit Test casepublic void testRemoveFriend() { GoogleTalkUserData e1 = new GoogleTalkUserData("Horton", "tim", "away"); GoogleTalkUserData e2 = new GoogleTalkUserData("Star", "Bucks", "Busy"); ad2.addFriend(e1); ad2.addFriend(e2); assertTrue(ad2.removeFriend(e2)); assertTrue(ad2.removeFriend(new GoogleTalkUserData( "Horton", "tim", "away")));
}
• There was a failure with this unit test, because the actual method was not dealing very well with objects.
![Page 7: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/7.jpg)
Integration test• public void checkFriendAddition() throws Exception {
• // Ensure that adding a friend makes changes to both the
• // model and the database.
• FriendTempData foundFriend = null;
• controller.removeFriend(friendUserID);
• assertNull(model.findUserByAccountName(friendUserID));
• db = new DatabaseFunctions();
• for (FriendTempData f : db.getFriendListByAccountName(userID)) {
• assertTrue(!f.getUserID().equalsIgnoreCase(friendUserID));
• }
• controller.addFriend(friendUserID);
• assertNotNull(model.findUserByAccountName(friendUserID));
• db = new DatabaseFunctions();
• for (FriendTempData f : db.getFriendListByAccountName(userID)) {
• if (f.getUserID().equalsIgnoreCase(friendUserID)) {
• foundFriend = f;
• break;
• }
• }
• assertTrue(foundFriend.getUserID().equalsIgnoreCase(friendUserID));
• return;
• }
![Page 8: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/8.jpg)
error in the integration test
• java.lang.NullPointerException: Name is null• at java.lang.Enum.valueOf(Unknown Source)• at
org.jivesoftware.smack.packet.RosterPacket$ItemType.valueOf(RosterPacket.java:268)
• at org.jivesoftware.smack.PacketReader.parseRoster(PacketReader.java:697)• at org.jivesoftware.smack.PacketReader.parseIQ(PacketReader.java:582)• at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:275)• at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)• at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
![Page 9: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/9.jpg)
User Acceptance Testing• 1. We asked 10 users to try and run our software. • 2. We asked them to do the following tasks while one of the team
is loggin with [email protected] • a) Register with your GoogleTalk account • b) Add [email protected] • c) Send cmpt275testing a message • d) Wait for a message coming for cmpt275testing • e) (cmpt275 will sign out) send a message to chatbot and ask him
"What is your name?" and "What is up!" and wait for his respond • f) block cmpt275testing (cmpt275testing will sign again and he
should not find user) • g) delete cmpt275 testing • h) log out
![Page 10: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/10.jpg)
Demo
![Page 11: Parrot Instant Messenger. System overview UML diagram](https://reader036.vdocument.in/reader036/viewer/2022081805/56649b47550346318e8bdc23/html5/thumbnails/11.jpg)
Questions