Reliable Code Coverage Technique In Software Testing

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

Abstract

E-Learning has become a major field of interest in recent year, and multiple approaches and solutions have been developed. Testing in E-learning software is the most important way of assuring the quality of the application. The E-Learning software contains miscommunication or no communication, software complexity, programming errors, time pressures and changing requirements, there are too many unrealistic software which results in bugs. In order to remove or defuse the bugs that cause a lot of project failures at the final stage of the delivery.,this paper focuses on adducing a Reliablecode coverage technique in software testing, which will ensure a bug free delivery of the software development. Software testing aims at detecting error-prone areas. This helps in the detection and correction of errors. It can be applied at the unit of integration and system levels of the software testing process, and it is usually done at the unit level. This method of test design uncovered many errors or problems. Experimental results show that,the increase in software performance rating and software quality assurance, increases the testing level in performance.

Key Words: E-Learning, Performance testing, Regression testing, Verification and Validation.

INTRODUCTION

Software testing is one of the essential processes in the software development life cycle. Software testing faces a collection of challenges especially in the E-Learning arena. Testing is an investigation conducted to provide stakeholders with information about the quality of the product or service in the test. The main purpose of software testing is to maintain and deliver a quality software product to the client. Each software is expected to meet certain needs. So, when software is developed it is required to check whether it fulfills those needs. Testing plays a vital role in E-Learning to fix the bug found during the execution process. It consumes effort, expensive and even has a fifty percent chance of creating a new defect because of rework. The rework may contain new lines of code and these lines may introduce new defects. Consequently, a main goal of software testing is to identify the known errors in the software before the user finds them. As a result, bugs have become a substantial topic in high-end testing. In order to reduce the errors, software development involves a developing software against a set of requirements. A software testing is needed to verify and validate that the software that has been built to meet these specifications. Testing can never completely identify all the defects within the software. Instead, it furnishes a criticism or comparison that compares the state and behavior of the product against oracles principles or mechanisms by which someone can recognize a problem. In our conceit, we took E-Learning, it refers to the use of computer network technology, primarily via the internet, to deliver information and instructions to individuals. Due to its access flexibility and just-in-time delivery, E-Learning is emerging as a popular approach to learning in organizations or workplace settings. Despite the ever- increasing practice of using E-Learning in the workplace, most of the applications perform poorly in motivating employees to learn. In [3], test suites can be generated to test software applications against both E-Learning specifications and their derived application profiles. XML schema-based application profile may initially be partitioned into the following basic categories.

XML well-formedness testing

XML schema testing

Non-XML schema testing

Figure. 1 The General Conformance Testing Process

The figure 1 depicts the telcert tools represent an application profile as an XML document detailing the modifications made against the base specification. From these modifications, a new XML schema can be derived which incorporates these modifications. The tools support the following tasks

Development of an application profile from a base specification

Generation of a localized schema based on the application profile

Creation of new content/modification of existing document instances based on localized schemas

Testing derived test content for conformance.

In E-Learning poorly documented code is tough to maintain and the modified code that is badly written results in bugs. Many organizations management provides no incentive for programmers to document their code or to write clear, understandable code. This code coverage provides a software testing those tests that tests the functionality of an application as opposed to internal structures or working. A specific knowledge of the application code have internal structure and programming knowledge is unnecessary. The test cases are built around the requirements and specifications i.e., the application aresupposed to do. Test case uses external descriptions of the software, including requirements, specifications, and designs to derive test cases. These tests can be non-functional, functional or though usually functional. The testing in E-Learning is designed to check if the software is working satisfactorily as per as the requirements. This is a process designed to prove that the program is error free.

The remainder of this paper is organized as follows. Section 2 gives a deliberation on the related work. Section 3 presents the proposed approach to code coverage in software testing. Section 4 presents the experimental results and Section 5 concludes the paper with pointers to future work.

RELATED WORK

Some of the notable research efforts have been made in previous research works. A pattern language to capture this knowledge in software development, human computer interaction (HCI), and the application domain given in [1]. A formal, domain-independent definition of design patterns allows for computer support without sacrificing readability, and pattern use is integrated into the usability engineering Lifecycle. As an example, experience of building an award-winning interactive music exhibit was turned into a pattern language, which was then used to inform follow-up projects and support HCI education. Many researches [4, 5, 6] have been applied Web services to E-Learning systems to deliver appropriate learning resources. These Web services focused on selecting and combining the learning contents. They have been implemented in an adaptive learning environment and some architecture has been proposed for scalability and re-usability of the contents. The authors [8], described an Extreme E-Learning Experience (xLx). A xLx embodies a personalized learning platform that offers hands-on experience in terms of practical exercises, language specific or algorithmic aspects of a particular field, covering a wide range of concepts. The uses of xLx to make the grading process more efficient, mainly for complex exercise types such as programming exercises. Following the paper [7], described about the intelligent semantic E-Learning framework is presented to address semantic information processing, learning process support and personalized learning support issues in an integrated environment. The authors [15], described a conceptual framework architecture of an E-Learning system used to prepare students for an educational testing service. The system used to provide learners with more flexibility and to reduce their preparation time for the ETS exam by allowing them to navigate through materials and exam based on their academic profile from various access points. Adaptive Educational Hypermedia (AEH) aims to deliver personalized and appropriate learning materials to each learner is given in [3]. These materials can be adapted to a multitude of variables, such as a learner’s background knowledge, personal preferences, learning styles or grade scores. E-Learning with dynamically adapted digital content is an effective medium for personalized learning is given in [20]. Personalized learning advocates that the learning should not be restricted by time, place or any other barriers and should be tailored to the continuously modified individual learner’s requirements, abilities, preferences, background knowledge, interests, skills. A distributed, service-oriented architecture for learning content management systems (LCMS) is given in [12]. Web services are used as wrappers around reusable granules of learning content as well as around modules of the LCMS. Web-service- LOs come in one package with content and functions which can extract, manipulate, or present learning content. Consequently, administrators do not have to care about the format or standard that is used for storage, as long as all services provide consistent interfaces. In [19], E-Learning personalization based on ontology and information exchange is maintained by web services based on Service-oriented architecture. So, the learning process is enhanced by providing personalized learning content to the learners in an effective and dynamic intelligent way. Moreover, the authors [17], described a web service and it provides a common interface between various components leading to platform independence and interoperability between learning systems. These services provided a common interface between various components to the delivery of learning resources for learners. In [13], semantic web-based model for E-Learning system, it focuses on the RDF data model and OWL ontology language. Moreover, it can help a developer or an instructor to develop a learning sequence plan by helping the instructor understand the learning process. The authors [2] described a number of ontology-centered research has increased dramatically because popular ontological languages are based on web technology standards, such as XML and RDF (S) therefore, its share and reuse in any web-based knowledge system services. Moreover, technical feasibility of partially automating the definition of educational courses and the generation of corresponding E-Learning and other course-ware content with exploiting the emerging technology of the semantic web given in [16]. Ontology’s can readily be converted into standardized courseware learning objects, which can either be used directly by students and teachers or can be of assistance to authors in designing and building complex course-ware material.

A framework based on reusable course-ware components, or learning objects, is considered and a practical system for automating the development of simple components. The embedding quality in E-Learning implementation through evaluation have proposed in [9], which describes an integration of evaluative approaches in the development of E-Learning in order to enhance and assure the quality of the E-Learning implementation. The developmental aims of the evaluation process adopted for this E-Learning implementation can be summarized as follows:

Enabling more effective decision-making processes

Achieving widespread buy-in and growth of the initiative

Fostering cross-university collaboration

Creating opportunities for research and publication

Building greater capacity for evaluation within the organization.

The authors [18], described an OntAWare, which provides an environment comprising a set of software tools that support learning content authoring, management and delivery. This scheme exploits an opportunity provided by the emerging technologies of the semantic web movement. Standard course-ware elements are produced by the application of graph transformations to these ontology’s. Instructors can configure the delivery environment either to offer strictly sequenced presentations to students, or to allow also varying degrees of free student navigation, based on the run time incorporation of domain ontologies. Students in turn can take the generated courses on the reconfigured delivery environment, and this delivery is dynamically customized to the individual student's preferences and constantly monitored learning track. An intelligent semantic E-Learning framework is presented to address semantic information processing, learning process support and personalized learning support issues in an integrated environment. Traditional web-based E-Learning systems use a web browser as the interface. Through run-time learning environments users could access the learning objects, which are directly linked to multimedia learning resources such as lecture video/audio, presentation slides and reference documents proposed in [11] to the existing learning information flow, three new components are introduced to bring in more intelligence in E-Learning. These components are a semantic context model, intelligent personal agents and conceptual learning theories. In [14], a model-driven framework for integrating human interface engineering with software engineering. In the usage-centered process, some form of user and task modeling is common to most user-centered approach, usage-centered models are distinctive in the use of abstraction and simplification to focus accurately on matters most essential for informing the design process. The authors [10] described a study of student characteristics and computer-mediated communication reveals that personality may influence academic success in unanticipated ways. Therefore, to achieve the best performance in learning and teaching, especially in self-directed or instructor led E-Learning, it is essential to be aware of the learners aptitude and personality in context.

PROPOSED WORK

Software testing, depending on the testing method employed, can be able to be implemented at any time in the development process. Although most of the test effort traditionally occurs after the requirements have been defined and the coding process has been completed. Software testing often includes examination of the code as well as execution of that code in various environments and conditions as well as examining the aspects of code.

3.1 Testing Approach for E-Learning Application

E-Learning application presents a new challenge that involves response time, accuracy of information or ease of use, a student is compelled to click another web site and shift to different application provider. It is critical due to short cycle time, constantly changing technology, and huge number of users or inability to control the user’s environment. The critical issues while testing or handling the student’s query, student volume in terms of assignments, payment system for fees, security of the student’s account details and effectiveness of learning method. The choice is with the tester to use complete or partial verification, unit or integration and black box or white box testing depending on the nature of learning application and the profile of the student. The major testing techniques in this area are as follows.

3.2 Testing Levels

Figure 2 illustrates the software testing phase. Main level of testing during the development process as integration, unit, and system integration testing that are distinguished by the test target without implying a specific process model.

3.2.1 Unit Testing

Unit testing usually written by developers as they work on code (white-box style), ensure that the specific function is working as expected. The unit testing alone cannot verify the functionality of a piece of software, rather is used to assure that the building blocks the software uses work independently of each other.

3.2.2 Integration Testing

Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. Progressively larger groups of tested software components corresponding to elements of the architectural design are integrated and tested until the software works as a system.

3.2.3 System Integration Testing

A system integration testing verifies that a system is integrated to any external or third-party systems defined in the system requirements.

Figure. 2 Overall Flow of Proposed Model

3.3 Testing Process

3.3.1 Agile Model

In agile model, unit tests are written first. Certainly these tests fail initially, in that case as code is written it passes incrementally larger portions of the test suites. Test suites are continuously updated as new failure conditions and corner cases are discovered, additionally they are integrated with any regression tests that are developed. The unit tests are maintained along with the rest of the software source code and generally integrated into the build process. The ultimate goal of this testing process is to achieve continuous integration where software updates can be published to the public frequently.

3.4 Software Verification and Validation

3.4.1 Verification

Verification is the process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.

To ensure that the product is being built according to the requirements and design specifications. In other words, to ensure that work products meet their specified requirements.

3.4.2 Validation

Validation is the process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.

To ensure that the product actually meets the user’s needs, and that the specifications were correct in the first place. In other words, to demonstrate that the product fulfills its intended use when placed in its intended environment.

In this software verification and validation process, the test plan, test design and automated test script are completed. Stress performance testing plans are also completed at this stage. When the development team is proceeding with a unit code, the testing team is required to help them in testing that unit code whether it reports any bug in the product. Integration testing and bug reporting is done in this phase of software testing.

3.5 Testing Cycle

Even though variations exist between organizations, there is a typical cycle for testing.

3.5.1 Requirement Analysis

Testing should begin in the requirements phase of the software development life cycle. Through the design phase, testers work with developers in determining what aspects of a design are testable and with what parameters those tests work.

3.5.2 Test Planning

Test strategy, test plan, tested creation. A plan is required during testing process for its efficient outcome.

3.5.3 Test Execution

Testing is done to find out the top level failures and bugs are reported immediately to the development team to get the required workaround. Test reports have to be documented properly and the bugs have to be reported to the development team.

3.5.4 Test Reports

oncethe testing has been completed, testers generate metrics and make final reports on their test effort and whether or not the software tested is ready to release.

3.5.5 Test Result Analysis

Defect Analysis, be done by the development team along with the client, in order to decide what defects should be assigned, fixed, rejected or deferred to be dealt with.

3.5.6 Regression testing

Regression testing focuses on finding defects after a major code change has occurred. Particularly, it seeks to uncover software regressions, or else old bugs that have come back. In such regressions occur whenever software functionality that was previously working correctly stops working as intended. Normally, regressions occur as an unintended consequence of program changes, the newly developed part of the software collides with the previously existing code. The Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged. Depth of testing depends on the phase in the release process and the risk of the added features. Testing can either be complete, used for changes added late in the release, consisting of positive tests on each feature.

3.6 Bug Tracking

Bug tracking is one of the important Phase in testing a software. The Defect profile Document (DPD) has to be updated for letting the developers know about the defect.

After this test cases and test scenarios are prepared the test execution is done by QC.

A comprehensive report of bugs is prepared by the testers and a review or verification by QC/QA/testing head takes place. Before handing over this report to development team there is a thorough review of bugs List by Test Manager and in case of any clarification required on a bug submitted, the testing head discusses the bugs with the assigned tester.

Release of bug report by QC Team to development Team.

Discussion/simulation of bugs by QC with development team if development team requires and time required for fixing the bugs should be made clear by the development team at this stage.

Feedback from the development team on reported bugs with the stipulated time frame required to fix all bugs.

Any changes in the software being made in respect to fix these bugs should be made clear to the QA team by the development team.

Testing team then retests or verifies the bugs fixed by the development team.

Submitting the retesting bug report to the Test manager and after this the step 5 to step 10 are followed until the product has reached a stage where it can be released to the customer.

Criteria for ending the testing should be defined by management or test manager like when all major bugs are reported and fixed.

3.7 Reporting and Rework

Software testing is an iterative process. Effective bug that is reported and fixed by the development team, has to undergo the testing process again to assure that the bug found has been resolved. Regression testing has to be done. The testing in E-Learning is designed to be establish that the software is working satisfactorily as per as the requirements. This is a process designed to prove that the program is a error free. Once the quality analyst assures that the product is ready, the software is released for production. Before the release, the software has to undergo one more round of top-level testing. Consequently, the testing is an ongoing process.

3.8 Final Testing and Implementation

This phase focuses on the remaining levels of testing, such as acceptance, load, stress, performance testing. Software performance testing is in general executed to determine how a system or sub-system performs in terms of receptiveness and stability under a particular workload. It can also serve to measure, investigate, validate or verify other quality attributes of the system, reliability, resource usage and scalability. A load testing is primarily concerned with testing that the system can continue to operate under a specific load that be large quantities of data or a large number of users. It is generally referred to as software scalability. Effective related load testing activity of when performed as a non-functional activity is often referred to as endurance testing. The volume testing is a way to test functionality. The stress testing is a way to test reliability under unexpected or rare workloads. Stability testing checks to see if the software can continuously function well in or above an acceptable period.

The effective application needs to be verified under specified conditions with respect to the software requirements specification. Various documents are updated and different matrices for testing are completed at this stage of software testing.

EXPERIMENTAL RESULTS

In order to test the results of our adduced work, we organized several executions on the synthetic sequence of tasks. We proposed the methodology with the model of code coverage in software testing. Figure 3 Depicts the performance analysis of our proposed work with technical dimension. In performance explicitly software systems not all have specifications. Though every system will have implicit performance requirements. A software should not take infinite time or infinite resource to execute. In performance bugs sometimes are used to refer to those design problems in software that cause the system performance to degrade.

Figure. 3 Performance Analysis with Technical Dimensions

In this performance rating, the software generally executed to determine how a system or sub-system performs in terms of receptiveness and stability under a particular workload. It can also serve to measure, investigate, validate or verify other quality attributes of the system, reliability, resource usage and scalability. The related load testing activity of when performed as a non-functional activity is often referred to as endurance testing. The volume testing is a way to test functionality. The stress testing is a way to test reliability under unexpected or rare workloads. Stability testing checks to see if the software can continuously function well in or above an acceptable period. In this performance testing, usability and interaction increase than technical support.

The figure 4 shows the quality metrics, measurement enables the organization to improve the software process, assist in planning, tracking and controlling the software project and assess the quality of the software thus produced. It’s the measure of such specific attributes of the process, project and product that are used to compute the software metrics. Metrics are analyzed and they provide a dashboard to the management of the overall health of the process, project and product. Usually, the validation of the metrics is a continuous process spanning multiple projects. The kind of metrics employed generally account for whether the quality requirements have been achieved or are likely to be achieved during the software development process.

Figure. 4 Feasibility Vs Propriety

In feasibility, Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design, and coding. Software testing is the process of testing the functionality and correctness of software by running it. Even though there are close links with SQA, testing departments often exist independently, and there may be no SQA function in some companies.

The figure 5 shows the software quality factor is a non-functional requirement for a software program. It can be understood if the purpose of the product is clear without any customer contract. This goes further than just a statement of reason , all of the design and user documentation must be clearly written so that it is easily understandable.

Software reliability testing is the probability that software will work properly in the specified environment and in a given time.

Probability = Number of cases when we find failure / Total number of cases under consideration

Figure. 5 Optimization Rate for Various Factors

In navigation testing confirm that all internal and external links are working properly. There is no any broken link or orphan page in the application. Functional, integration, system, regression, performance and load testings come under black box testings. Functional, integration testing is done in white box also. Navigability is advanced while comparing through others optimization rate.

CONCLUSION

In this paper, we derived an adept methodology for software testing in E-Learning to elucidate problems regarding bugs. We invoke a testing in E-Learning and is designed to be establish that the software is working satisfactorily and the requirements. This is a process designed to prove that the program is error free. With these the guidelines, one would tend to operate the system in a normal manner to see if it works and one would unconsciously choose such as normal or correct test data as would prevent the system from failing. Besides, it is anyway not possible to certify that the software has no errors because it is almost impossible to detect all the errors. A novel code coverage technique that removes or defuse the bugs at an early stage of development that minify the cost of fixing bugs. It reduces the time consuming process like rework and re-testing. This ensures the development of bug free delivery of the software.

In future work code coverage is prone to some limitations like. It check the same path multiple times so the probability to find a defect is lower than in a manual test. Ability of automated tests to detect defects depends on the design and implementation quality of the tests and requires qualified software developers. Automation of specific test case can decrease the cost of its execution, but will not improve its ability to detect defects. Automated tests are very sensitive to software changes. Automated test does not have common sense - it can fail on a minor change in software behavior or pass when major error is reported in unexpected ways. Automatic tests don't handle unexpected behavior well. These drawbacks have to be overcome to achieve even higher performance in the future.



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now