-
Notifications
You must be signed in to change notification settings - Fork 0
Deliverable 2: EnDe and Test Cases
[Download the PDF version HERE]
Since testing actual encryption and decryption methods of EnDe would be a larger, and more daunting task, we decided that one of the first things we want to test is the compatibility of EnDe with various web browsers and HTML interfaces. One method of testing, or automating these tests is through a “browser-based regression automation” system called Selenium. It comes with a Web driver, for making the browser work the way it is supposed to, and an IDE to create quick bug reproduction scripts as needed. This way, we could launch a browser and attempt to recreate bugs much quicker than manually recreating each one as we find them. Selenium can be found here: http://www.seleniumhq.org/
One of the secondary options for major phases of testing is what was previously mentioned, encryption and decryption. We should be able to tell how accurate it is (can it be replicated), and if the information decrypted will be the same as the information decrypted regardless of the browser interface. Again, Selenium will help with this process, but again, this is secondary to testing browser interface, as encryption and decryption methods are well known, and not easily re-written (ie: most methods already in place are the best at what they do)
September 30 - October 22: Design and build an automated testing framework
October 23 - November 12: Complete implementation of testing framework
November 13 - November 24: Inject faults into code to fail 5 tests, analyze results
November 25 - December 1: Complete all tests by December 1st deadline
We will need various platforms to test EnDe on. For a time, “Chromium” was the web browser of choice for Linux users who wanted to use Google’s “Chrome” browser. It was not official, but the closest thing to Chrome Linux users could obtain. That in mind, we will need Linux, Windows, and OSX for various tests. Each web browser that is on various operating systems acts differently based on the system it runs on. Currently, the official Linux build for Chrome is “stable” but does not contain all of the features that Chrome on a Windows or Mac operating system would have. This applies for each browser on these operating systems, including Mozilla Firefox, Apple Safari, Microsoft Internet Explorer, and SeaMonkey, as well as the previously mentioned Chrome browser.
RAW Hardware/Software Requirements:
- Compatible Mac, Windows, and Linux operating systems
- Mozilla Firefox, Apple Safari, Microsoft Internet Explorer, SeaMonkey, and Chrome web browsers
- Machines capable of running each of these softwares either on 64 bit or 32 bit architecture (whichever is made more widely available by the browser developers)
Running the tests will automatically generate a report of which tests pass and which fail.
An example of a test checking both the user interface and the encoded output using python and selenium
First off, in our testing Chrome has already had issues with EnDe. We have tested with various other browsers such as Firefox and IE (yes, it’s terrible, we know), and issues occur in both Chrome and IE, both dealing with security detecting scripts as either malicious, or simply not running them. It may be a protective feature; however, it inhibits EnDe from fully functioning.
The current errors found in Google Chrome, all seeming to stem from cross origin errors
Secondly, since Chrome is more unstable on Linux, it will not install on some distributions of Linux, and must be tested to the best of our ability. Ubuntu is currently having issues installing Chrome, and we have already had the web browser crash twice on launch. For now, we are sticking to testing it on Windows 7 and Mac OSX. We have found that in both operating systems, EnDe has a similar bug generated by Chrome. Disabling security features all together fixes the issue, but is obviously not a complete fix. We are still in the process of going through each security feature, and noting which one causes the bug or crash of the system.
Since a large majority of the HTML runs JavaScript, we can test the JavaScript code itself or we can test how well it is implemented in the different web browsers.
Section | Description |
---|---|
Test Case # | 1 |
Summary | Verify that the base64 encoding works through the EnDe interface |
Prerequisites | Web browser can properly load EnDe suite (currently, not Chrome) |
Procedure | 1. User enters encoding text into the Encoding Text area |
| 2. User hovers over 'Base-N' option in left-hand pane
| 3. From the pop-up menu the User selects the 'base64' option
Test Data | Encoding Text: Euro
Oracle | Decoded Text: RXVybw==
(found using python's base64 algorithm, not EnDe's)
Section | Description |
---|---|
Test Case # | 2 |
Summary | Verify EnDe's morse code encoding |
Prerequisites | Web browser can properly load EnDe suite (currently, not Chrome) |
Procedure | 1. User enters encoding text into the Encoding Text area |
| 2. User hovers over 'Symbols' option in left-hand pane
| 3. From the pop-up menu the User selects the 'Morse' option
Test Data | Encoding Text: SOS
Oracle | Decoded Text: ... ___ ...
Section | Description |
---|---|
Test Case # | 3 |
Summary | Verify that the hexidecimal conversion works through the EnDe interface |
Prerequisites | Web browser can properly load EnDe suite (currently, not Chrome) |
Procedure | 1. User enters decimal value into the Encoding Text area |
| 2. User hovers over 'Straight' option in left-hand pane
| 3. From the pop-up menu the User selects the 'Octal' option
Test Data | Encoding Text: 2345
Oracle | Decoded Text: 929
Section | Description |
---|---|
Test Case # | 4 |
Summary | Verify that HTML escaping works through the EnDe interface |
Prerequisites | Web browser can properly load EnDe suite (currently, not Chrome) |
Procedure | 1. User enters SQL code into the Encoding Text area |
| 2. User hovers over 'Escape Characters' option in left-hand pane
| 3. From the pop-up menu the User selects the 'HTML' option
Test Data | Encoding Text: <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
Oracle | Decoded Text: <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
Section | Description |
---|---|
Test Case # | 5 |
Summary | Verify that the ROT13 encoding works through the EnDe interface |
Prerequisites | Web browser can properly load EnDe suite (currently, not Chrome) |
Procedure | 1. User enters encoding text into the Encoding Text area |
| 2. User hovers over 'Coding' option in left-hand pane
| 3. From the pop-up menu the User selects the 'ROT13' option
Test Data | Encoding Text: [email protected]
Oracle | Decoded Text: [email protected]
As mentioned before, we’ve had issues with Linux and Chrome. Other web browsers are not having as much of an issue, but due to the lower user count of Chrome on Linux distributions, Google does not have it on their top priority to fix. We will either have to wait for a patch, or find “work-arounds” ourselves. This will affect our time constraints, and we will have to worry about fixing Chrome for Linux just to test what we already have. However, Chrome works flawlessly on other operating systems, and there should be no issue there.