Purpose:
Software testing is done so that bugs can be removed from the program code. Software testing can be classified as unit testing, system testing and integration testing. All these kinds of testing can be done by use of various software testing techniques which include white box testing, black box testing and grey box testing (Khan, & Khan, 2012). In black box testing we are able to test the UI part of the software itself whereas in white box testing, the internal mechanisms and functional parts of the program are tested. Testing software before implementation into use is so important, it will ensure that minimal errors are made during software development process. (Do et al, 2015).Unit testing is usually done during the program development stage. It is done at the end of each module to ensure bugs are not present in the software. It is important because it helps bring up the deformities, defects and mistakes that were made during development. Also, it ensures the customer’s dependability and assures of their requirement fulfillment. Testing improves and guarantees quality on the software.
Testing is normally done when the software vendor require to meet a specific goal, especially if they needed the software to meet the customer requirements and expectations and more so it should be having the best performance for effective management and usage. Therefore software failures should be minimal all time even though software testing is inexhaustible in the fact that all error cannot be removed from the program (Khan, & Khan, 2012). We do testing to reduce the vulnerability of the software.
The report was documented about the phonebook software which was deployed in the cloud service for use. The team has documented this report which explains a deeper understanding and skills of black box testing using agile testing methodology. We had to follow series of steps to ensure that our goal was achieved.
We use a test software management tool called TestRail in order to achieve testing. This is a modern management tool that generates reports that display statistics, charts and visualize the data. With the tool, the reports generated could be private or shared so that all other users in the project can view (Pohl, 2010)
The phonebook software in discussion is open to a number of users and is synchronized with the user’s phonebook so that information added is synchronized both in the website and the phonebook. The user can do different of things in the software, for example they can create an account in the website, insert multiple sheets to the phonebook, every sheet can include information up to 10000 people, log in to the website using their credentials (username and password), share the sheet with their friend by using the email of their friend where that email address is used to log on to the website, provides write access to their friend then the friend can be able to modify any contact information, import information from a CSV (Comma Separated Values) file and vice versa (Khan, & Khan, 2012). This information is going to be saved to a certain selected sheet, and finally the user can also export information to a sheet in a CSV file.
Description:
Since we encounter the presence of bugs in every other software which includes our phonebook software. Therefore there is need to do software testing to ensure that everything is done correctly to meet customer requirements and expectations (Luo, 2011). This bugs can be fixed by the programmers. The bugs which were found were not removed during unit testing. However there are risks of deploying the software in a cloud service because the benefits from the agility and scalability that cloud services offer, there are issues of security and privacy of personal data.
Agile methodology that we use, provides a step by step procedures where each one of our team was allocated a problem to work on and submit the results within the set deadline. It has proven to be a productive and best practice since testers and developers work together at the same time, testing is not a separate phase and occurs concurrently with development. However, if these tests to the software would not have been done, there could be poor results in the deployment process and a software that is not functional. (Khan, & Khan, 2012).
We had to create test plans during the testing process of our software. The test plan involves the methodology and set of tools to be use in software testing. The technique that we used to carry out the testing of our phonebook software is the black box testing. (Srinivas & Jagruthi, 2012) Black box testing is a method or a testing techniques which involves that the functional parts of the program are tested together with usability without involving the internal mechanisms and structure of the code. During the testing, we used the Test rail software testing tool.
We also identify the test cases, adding sections and sub-sections, adding results, running the tests and integration among others. The processes are long but with the aid of testing tools such as TestRails which is integrated with JIRA. The other thing to consider is the environment and the methodology that one uses during testing. (Loveland et al, 2015)For our case, agile environment proved to be the best since every individual in the team contributes to the testing and this is efficient.
We used TestRail* to write the test cases and scenarios. The modern software management tool has the ability to track and save some of these test cases and then automate them so they can run between iterations. This comes in handy and is a huge boost to agile methodologies, and also helps ensure functionality under pressure. TestRail allowed us as a team to organize and manage milestones and the different projects (Srinivas & Jagruthi, 2012) Using the test tool, our team leader gives tests to different team members and finally tell when the test will be completed based on the data available.
Introduction:
We used black box testing method to implement the different approaches and techniques of black box testing that are used to find errors and bugs in a software. (O., 2012) This type of testing is either direct or indirect to the requirements of software hence it is sometimes known as specification based testing. Our test cases for the nine scenarios as it appears in TestRail are as below: (Pintner, 2008).
- Case 1 access mode- The software was able to allow the users to access specific features within the software according to the privileges provided by the admin to its users.
- Case 2 Account synchronization -where the program is able to arrange all the users following a certain criteria. Upon registration the software was able to arrange all the users in a particular order and also will be able to link with other applications
- Case 3 create accounts –users are able to create accounts and are able to login with their credentials after registering as users
- Case 4 create multiple sheets-the software is able to allow users to create multiple sheets on it for data storage
- Case 5 Create sheets-the software allow the users to create a worksheets where they can edit their data
- Case 6 export data- the application is created in such a way that it will be able to transport sheets of specific formats to other applications
- Case 7 import information- the program allow users to import particular information of specific format to be imported into it.
- Case 8 login. The users are able to login to the system and use it as needed.
- Case 9 share sheets. It allow users to share sheets with their friend through other applications such as emails and Bluetooth (Do, Elbaum & Rothermel, 2015).
Figure 1
The figure below shows how the black box testing method works. It does not involve the technical part. The users do not see the internal part of the software. They only input the requirements and the user gets the desired results and then finally generates the final report. (Thomas, 2012).
Figure 2
One advantage that is there with using TestRail is that we can easily integrate it with JIRA plugin. It is an amazing feature because it allows users of the software to easily push bug/ error reports (Khan, & Khan, 2012). The users can also check the status of the issues regarding the software and error reports without logging out of the Test Management tool; TestRail. It also allows users to work regardless of the methodology they have used because it is a lightweight application.
Figure 3
Figure 4
Working in an agile environment helped us to encounter huge accomplishment in meeting the quick paced difference in client needs and specifications. This because agile offers an iterative way to deal with the improvement of the software. It also allowed us to detect changes and non-functionalities so that we could improve the software before we deliver it to the market. The agile environment enables groups like ours to break the extensive prerequisites, construct, and test stages down into manageable small portions, at last deploying a working software at a lesser time to its target users. (Khan, & Khan, 2012).
As shown below, the modern management tool enhanced our testing of the software because it provided the run results and reports which includes graphs and charts. (Srinivas & Jagruthi, 2012).
This the sort of testing where the execution of the phonebook software was tried to check the pressure and how the product will interface with different applications. The product was tried on how it tends to be coordinated with others and will make it keep running without introducing bugs to the clients. (Thomas, 2012).
Unit testing was done after each module amid the coding procedure of the software. Amid unit testing the software engineer guarantees that upon the fulfillment of each development stage, there are no errors inside the program code. The principle motivation behind why we did unit testing was to decrease the time wastage since bugs may get collected and will make it hard to test the system.
Literature Review
The tester or the user does not require a deeper understanding of the inner working of the software and only requires some information about its inner functionalities. This is the reason why black box testing was preferred. Because the software is built to save the name, address and phone number of users to the app and website, it should be user friendly and take care of security and privacy of the data. Several test could be performed on the program to check on its functionality (Burman, 2014). First, quality assurance must be made of the program. The expectations or the user requirements should be met without compromise. The feedback from the user will help determine the usability of the software. The software is integrated with other programs and should be able to run in different browsers with the same level of responsiveness. The program should not have problems when in different operating systems.
We also performed stress testing, load testing, volume testing. By adding 9 test cases, test plans and data for the three types of data for multiple persons which include Name, Phone and Address (Thomas, 2012). We added results and tested if the software works under stress or volume.
We also added multiple users in the test who can add data, delete data, share data by inviting their friends and also import and export the information of their choice as shown below
Figure 6
Discovery testing otherwise known as black box testing has turned out to be of incredible help amid the testing of the product (Burman, 2014). It did not just aid in checking the execution of the program but also investigated its usefulness as well. For future programming, these testing devices will be utilized by my group. Hence we justify the need to have used the two since they are subsequently the best.
Conclusion
For one to do an effective software testing, they should be able to choose a tool that is convenient and modern to aid simulate the testing environment. Agile environment allows a team to code at the same perform testing. This allows them to fix bugs easily when they arise. Software testing is a broad area and should be done with a lot of keenness. Web applications are best tested with the Black box security scanners due to their agility in checking vulnerability in security in web applications. Its security vulnerabilities must be taken care of to reduce the issue of security and privacy concerns. Nevertheless, the application must undergo all the testing from its interface to its compatibility.
References
Burman, P. (2014). A comparative study of ordinary cross-validation, v-fold cross-validation and the repeated learning-testing methods. Biometrics, 503-514.
Do, H., Elbaum, S., & Rothermel, G. (2015). Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Software Engineering, 405-435. Retrieved from, https://dl.acm.org/citation.cfm?id=1089928
Khan, M. E., & Khan, F. (2012). A comparative study of white box, black box and grey box testing techniques. Int. J. Adv. Compute. Sci. Apple, 3(6). Retrieved from https://thesai.org
Loveland, S., Miller, G., Prewitt, R., & Shannon, M. (2015). Software Testing Techniques: Finding the Defects that Matter. New Delhi: Charles River Media.
Luo, L. (2011). Software testing techniques. Institute for software research international Carnegie Mellon University Pittsburgh, 1-19. Retrieved from, https://www.isri.cmu.edu/
Pohl, K. (2010). Requirements engineering: fundamentals, principles, and techniques. Springer Publishing Company.
Srinivas N, Jagruthi D. (2012) International Journal of Embedded Systems and Applications Black box and white box testing techniques, 9-12. Retrieved from https://airccse.org/journal/ijesa