1,785
18
Essay, 7 pages (1800 words)

Software testing an overview computer science essay

Umar FarooqVirtual University Pakistanms120400007@vu. edu. pkAbstract—Software testing is an activity or set of activities which evaluates the system’s attributes and properties and it makes sure that system is build according to the specifications defined in the analysis phase. There are many different methods and approaches to test the software. In this paper the scope and limitations of automated testing will be discussed in relation to Box testing types. Keywords— Software Quality Assurance, Testing, documentation, Automated TestingIntroductionSoftware testing is a set of activities which are related to finding errors in the software. It also confirms that there are some errors/exceptions in the software or not. The software testing also ensures that the software is performing according to the specifications and it executes in its intended environment. Testing is very closely related to software Quality assurance. The IEEE definition of testing is ” the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements or to identify differences between expected and actual results.” [1]. The software testing depends on the size and complexity of the software as the size and complexity grows, testing also takes more time and effort. Manual testing is basically done by humans so it is prone to errors and exceptions, that is why the need of the automatic and computer aided testing is increasing day by day. Testing mostly takes 40-50% of the development time and as the complexity of the system increases the testing effort also increases. As the frequency of maintenance and upgrade in the existing systems grows, the testing work to check the changes will also increase [2]. Formal methods have also played an important role in software reliability and verification but testing still is the main tool for checking the system before putting it in to production. Software testing measures the quality of the software developed, basically the intention of software testing is to execute the program for finding the errors or exceptions. Following are major techniques used for software testing. Black Box TestingBlack box testing is the technique in which you don’t need to know the internal structure of the software; you only need to know the functionality and requirements of the software. The tester only uses the system interface to check the inputs and outputs of the software. Black box testing can be functional or non functional. The tests included in the black box testing are as follows. Equivalence partitioningEquivalence partitioning shows that all the inputs and outputs of the component can be divided into classes and the class treat them similarly. Boundary Value AnalysisThe boundary value test analysis tests the values of the software components at the boundaries. The basic idea is to check that how system behaves on a range of boundary values of valid partitions. Cause and Effect GraphingThe cause and affect diagram helps to identify, sort and check the possible root causes of the errors. White Box TestingWhite box testing is a process in which the tester has the complete knowledge of the code and internal functions of the software. White box testing is also named as the open box testing. The test design techniques includeControl flow testingThe control flow testing check the improper use of data in the programs. The risky areas related to data can be found using this technique. Data flow testingData flow testing is mainly concerned with the variable lifecycle which is used in the program. Branch TestingIt is the structured type of technique which checks the flow of control from one statement to another. Path testingPath testing is the technique in which it is tested that every path of the system is traversedGrey Box testingGrey box testing is the testing process in which the tester has the incomplete knowledge of the internal working, code and functionality of the software. Matrix testingMatrix testing groups the tests which are equivalent. Regression TestingRegression testing is any type of software testing which finds new bugs. Pattern TestingVerifies the application for its design, architecture and patterns. The following diagram shows a comparison of the three box type testing. [3]The three techniques are compared in the table given below. Comparison of testing techniquesSr. #Box Testing TechniquesBlack BoxWhite BoxGrey Box1The tester does not need to know the internal workings of the software. A sound knowledge of internal workings of the software required. A medium knowledge is required regarding the internal working of the software. 2It is performed by end users, testers and software developers. It is usually done by the software developers and testers. Testers, developers and end users are involved in such type of testing. 3The main purpose of this type of testing is to check the external features and working of the software. The tester has detailed knowledge of the system so the level of this type of testing is extensive and detailed. High level of testing is performed with the help of the design diagrams. 4Time consumption is low. Extensive scheduling is required because this type of testing requires a lot of time. More time consumption than the black box testing. 5This type of testing is not good for the algorithm testing. Perfect for algorithm testing. Not good for algorithm testing. 6The method used in this type of testing is trial and error. Internal and data boundaries are tested in detail. Internal and data boundaries can be checked. Related WorkDifferent people have worked on Black Box testing and White Box testing regarding the techniques used within both of the test types. If the data from various types of black-box test methods as required input and the results are well organized then in result the planning and performance of software testing can be improved. [4]. Both Black Box and White Box testing do not contradict each other instead they complement each other and the testing process should be start with Black Box testing and end with White Box testing at the end.[5] Black Box Testing only relates to the outputs of the system and it refers to the compliance of the system in relation to the functional requirements.[6] White Box testing shows whether the code works as expected by using different test cases.[7] White Box Testing methods can be made more efficient by giving weights to segments of code according to their structure and execution times.[8]Automation of testing somewhat speeds up the testing process and make it more efficient. Traditional testing methods are not efficient for Object Oriented based systems so randomize generation of test data and genetic algorithm is used for more flexibility and efficiency. [9] A new strategy to improve testing is to generate flow-graph from the software specifications and then relate it to the white box testing strategies. [10]Automated testingAutomation of software testing makes the testing more efficient, less time consuming and more objective. Automation of testing becomes more powerful and effective when the testing tool not only can work on the GUI of software but can also access the internal modules and procedures of the software. This is where you can automate the White Box testing. In testing the most laborious and time consuming task is to generate test cases for all types of inputs and out puts which is solved in the automated systems where test cases are generated automatically and more objectively. The automated testing environments provide testing on both the virtual system and then on the production system. The automated testing system also provides the graphs and percentages regarding the testing results. The testing results can be shared with others in form of XML. The changes in the source code does not go unnoticed, it is marked and rerun for testing. The automation of testing matures in a structured way. Initially the tools and automation procedures are provided to the test engineers then a systematic approach is gained regarding automation of testing. This enables an organization to use the automation system optimally. Automated testing also needs some inputs from the organization in scope. This includes a dedicated and trained team which will run the automation, the commitment and planning at the higher management’s end and budget and schedule to run the automation project. Automated testing also brings some issues along with its implementation. If the complexity of the software increases the test generation using the automated tools also becomes complex. Testing the distributed systems also becomes more complex as many other components are also involved while testing. Complex GUI based systems also make the testing more complex. Whatever the issues, shortcoming or disadvantages the automated testing may have but it surely increases the productivity and efficiency of a testing team. By using and practicing software automated tool will help the testing team to master it and minimize the issues which can be resulted by using the automated tools. Testing TOOLSThere are many testing tools which are being used for automated testing. We will discuss few of them which are related to the White Box and Black Box testing. PEX and MOLES is used as White box Testing tool for Microsoft . NET framework. PEX helps in testing right from the . NET code editor and MOLES helps in unit testing. [11]A view of pexforfun. com [16]Testing-Anywhere makes the Black Box testing more efficient and less time consuming and in result the testing time reduces. This is a powerful tool which helps to automate the Black Box testing completely. [12]Clover is White Box testing tool used for Java related code and helps to optimize the testing. Clover integrates with your Java development IDE and provides easy management.[13]Semantic Designs provides the test tools for many procedural languages like C, C++, Java, PHP etc.[14]Sleuth is a web application testing tool regarding security and functionality. It tests functionality of the application, so it relates to Black Box Testing. There is wide range of different type of testing tools for both White Box testing and Black Box testing, what will you use will depend upon some certain circumstances e. g. Organization, Budget , Language and expertise etc. Automated Testing VS Manual TestingWe have already discussed in detail that what the benefits of automated testing are and how the automated testing can give an edge to the software testing team. Automated testing can increase the output of the software testing team if the team is properly trained in the testing technique and the software in consideration. Secondly the support both morally and monetary by the higher management is required for a successful automated testing setup. Thirdly human resource management can be optimized by using the automated testing. Manual testing is less efficient and more time consuming which leads to schedule mismanagement. Secondly manual testing is less reliable and leads to errors which can be avoided by using automated testing. Manual testing needs more human resources than the automated testing. Manual testing needs more human resources so the investment increases. ConclusionsWhat type of testing you use depends on the environment, software complexity and its functionality but most of the time a combination of software testing techniques is used e. g. if deep level of testing is needed then White Box testing is used and if you only need to check the functionality of the application then Black Box Testing will be used. Secondly the automation of testing by using some testing software increases the efficiency, accuracy and reduces the time of the testing. On the other hand the automated testing needs budget, trained staff and some dedication from the higher management in order to be successful. AcknowledgmentI acknowledge my respected teacher who will be supervising this project and helped me to remove any shortcomings or improve the paper.

Thank's for Your Vote!
Software testing an overview computer science essay. Page 1
Software testing an overview computer science essay. Page 2
Software testing an overview computer science essay. Page 3
Software testing an overview computer science essay. Page 4
Software testing an overview computer science essay. Page 5
Software testing an overview computer science essay. Page 6
Software testing an overview computer science essay. Page 7
Software testing an overview computer science essay. Page 8

This work, titled "Software testing an overview computer science essay" was written and willingly shared by a fellow student. This sample can be utilized as a research and reference resource to aid in the writing of your own work. Any use of the work that does not include an appropriate citation is banned.

If you are the owner of this work and don’t want it to be published on AssignBuster, request its removal.

Request Removal
Cite this Essay

References

AssignBuster. (2021) 'Software testing an overview computer science essay'. 17 November.

Reference

AssignBuster. (2021, November 17). Software testing an overview computer science essay. Retrieved from https://assignbuster.com/software-testing-an-overview-computer-science-essay/

References

AssignBuster. 2021. "Software testing an overview computer science essay." November 17, 2021. https://assignbuster.com/software-testing-an-overview-computer-science-essay/.

1. AssignBuster. "Software testing an overview computer science essay." November 17, 2021. https://assignbuster.com/software-testing-an-overview-computer-science-essay/.


Bibliography


AssignBuster. "Software testing an overview computer science essay." November 17, 2021. https://assignbuster.com/software-testing-an-overview-computer-science-essay/.

Work Cited

"Software testing an overview computer science essay." AssignBuster, 17 Nov. 2021, assignbuster.com/software-testing-an-overview-computer-science-essay/.

Get in Touch

Please, let us know if you have any ideas on improving Software testing an overview computer science essay, or our service. We will be happy to hear what you think: [email protected]