Regression testing is very important for the delivery of high quality product. It helps to simulate a suite of critical test cases periodically and helps to identify if introduction of any new features or any source code change has adversely affected the software quality or functionality. As a result, regression testing cannot be ignored from the software testing life cycle (STLC). But just doing a regression testing cannot be beneficial until it is accompanied by automation testing. Automated regression suite not only saves time and cost by re-running test scripts again and again but it also provide the confidence that all the critical test cases has been covered, providing more confidence in the quality of the product and increasing the ability to meet schedules. IT has an ability to explore the whole software every day without requiring much of manual effort. Current software is going through continuous development which requires testing again and again to check if new feature implementation has affected the existing functionality. In addition to this, it is facing issue in validation of the installation at client site and requires availability of testers to check the critical functionality of the software manually. This paper came up with the solution of creating automated regression suite for the software. The current research will provide guidelines to the future researchers on how to create an automated regression suite for any web application using open source tools.
Automated Testing: An Edge Over Manual Software Testingijtsrd
Software Testing is a process of finding errors while executing a program so that we get a zero defect software. It is aimed at evaluating the capability or usability of a program. Software testing is an important means of accessing quality of software. Complex systems are being built and testing throughout the software development cycle is valid to the success of the software. Testing is very expensive process. Manual testing involves a lot of effort, Measured in person per month. These efforts can be reduced by using the automated testing with specific tools. Jyotsna | Mukul Varshney | Shivani Garg | Abha Kiran Rajpoot"Automated Testing: An Edge Over Manual Software Testing" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-1 | Issue-4 , June 2017, URL: http://www.ijtsrd.com/papers/ijtsrd2232.pdf http://www.ijtsrd.com/computer-science/computer-security/2232/automated-testing-an-edge-over-manual-software-testing/jyotsna
The document describes a test plan for a Waste Management Inspection Tracking System (WMITS) software. It includes:
1. An overview of what must be included in a test plan such as the test specification, test procedures for unit, integration, and validation testing.
2. A case study of testing the WMITS software requirements specification, which aims to automate waste management inspections and minimize time/paperwork.
3. Details of the testing strategy including unit testing of individual modules, integration testing by running the software at the client's location, and validation testing to verify requirements.
LusRegTes: A Regression Testing Tool for Lustre Programs IJECEIAES
This document summarizes a tool called LusRegTes that was developed to automate regression testing of Lustre programs. Lustre is a synchronous data-flow language used for safety-critical applications. The tool represents Lustre programs as operator networks and generates regression test cases by comparing paths between program versions. It aims to select an optimal minimum set of tests to validate changes while reducing testing costs. The approach was implemented in a tool to automate the regression testing process for Lustre programs.
SRGM Analyzers Tool of SDLC for Software Improving QualityIJERA Editor
Software Reliability Growth Models (SRGM) have been developed to estimate software reliability measures such as
software failure rate, number of remaining faults and software reliability. In this paper, the software analyzers tool proposed
for deriving several software reliability growth models based on Enhanced Non-homogeneous Poisson Process (ENHPP) in
the presence of imperfect debugging and error generation. The proposed models are initially formulated for the case when
there is no differentiation between failure observation and fault removal testing processes and then this extended for the case
when there is a clear differentiation between failure observation and fault removal testing processes. Many Software
Reliability Growth Models (SRGM) have been developed to describe software failures as a random process and can be used
to measure the development status during testing. With SRGM software consultants can easily measure (or evaluate) the
software reliability (or quality) and plot software reliability growth charts.
This document discusses software reliability and fault discovery probability analysis. It begins by defining software reliability as consisting of error prevention, fault discovery and removal, and reliability measurements. A beta distribution model is proposed to analyze the probability of discovering faults during software testing. The document evaluates different parameter estimation methods for the beta distribution model like variance, sum of squares, and maximum likelihood estimation. It analyzes the performance of these parameter estimation methods using sample programs. The document concludes that estimating failure rates from different faults under different testing measures can provide a prior evaluation of a model's parameters and predict testing effort required to achieve quality goals.
Developing software analyzers tool using software reliability growth modelIAEME Publication
The document discusses developing a software analyzer tool using a software reliability growth model to improve software quality. It proposes an Enhanced Non-Homogeneous Poisson Process (ENHPP) model to estimate software reliability measures like remaining faults and failure rate. The ENHPP model explicitly incorporates a time-varying testing coverage function and allows for imperfect debugging and coverage changes over testing and operation. It is validated on real failure data sets and shown to provide better fit than existing models. The goal is to enhance code reusability, minimize test effort estimation and improve reliability through the testing phase of the software development life cycle.
This is the chapter 2 of ISTQB Advance Test Automation Engineer certification. This presentation helps aspirants understand and prepare content of certification.
This is chapter 2 of ISTQB Advance Test Manager certification. This presentation helps aspirants understand and prepare the content of the certification.
Automated Testing: An Edge Over Manual Software Testingijtsrd
Software Testing is a process of finding errors while executing a program so that we get a zero defect software. It is aimed at evaluating the capability or usability of a program. Software testing is an important means of accessing quality of software. Complex systems are being built and testing throughout the software development cycle is valid to the success of the software. Testing is very expensive process. Manual testing involves a lot of effort, Measured in person per month. These efforts can be reduced by using the automated testing with specific tools. Jyotsna | Mukul Varshney | Shivani Garg | Abha Kiran Rajpoot"Automated Testing: An Edge Over Manual Software Testing" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-1 | Issue-4 , June 2017, URL: http://www.ijtsrd.com/papers/ijtsrd2232.pdf http://www.ijtsrd.com/computer-science/computer-security/2232/automated-testing-an-edge-over-manual-software-testing/jyotsna
The document describes a test plan for a Waste Management Inspection Tracking System (WMITS) software. It includes:
1. An overview of what must be included in a test plan such as the test specification, test procedures for unit, integration, and validation testing.
2. A case study of testing the WMITS software requirements specification, which aims to automate waste management inspections and minimize time/paperwork.
3. Details of the testing strategy including unit testing of individual modules, integration testing by running the software at the client's location, and validation testing to verify requirements.
LusRegTes: A Regression Testing Tool for Lustre Programs IJECEIAES
This document summarizes a tool called LusRegTes that was developed to automate regression testing of Lustre programs. Lustre is a synchronous data-flow language used for safety-critical applications. The tool represents Lustre programs as operator networks and generates regression test cases by comparing paths between program versions. It aims to select an optimal minimum set of tests to validate changes while reducing testing costs. The approach was implemented in a tool to automate the regression testing process for Lustre programs.
SRGM Analyzers Tool of SDLC for Software Improving QualityIJERA Editor
Software Reliability Growth Models (SRGM) have been developed to estimate software reliability measures such as
software failure rate, number of remaining faults and software reliability. In this paper, the software analyzers tool proposed
for deriving several software reliability growth models based on Enhanced Non-homogeneous Poisson Process (ENHPP) in
the presence of imperfect debugging and error generation. The proposed models are initially formulated for the case when
there is no differentiation between failure observation and fault removal testing processes and then this extended for the case
when there is a clear differentiation between failure observation and fault removal testing processes. Many Software
Reliability Growth Models (SRGM) have been developed to describe software failures as a random process and can be used
to measure the development status during testing. With SRGM software consultants can easily measure (or evaluate) the
software reliability (or quality) and plot software reliability growth charts.
This document discusses software reliability and fault discovery probability analysis. It begins by defining software reliability as consisting of error prevention, fault discovery and removal, and reliability measurements. A beta distribution model is proposed to analyze the probability of discovering faults during software testing. The document evaluates different parameter estimation methods for the beta distribution model like variance, sum of squares, and maximum likelihood estimation. It analyzes the performance of these parameter estimation methods using sample programs. The document concludes that estimating failure rates from different faults under different testing measures can provide a prior evaluation of a model's parameters and predict testing effort required to achieve quality goals.
Developing software analyzers tool using software reliability growth modelIAEME Publication
The document discusses developing a software analyzer tool using a software reliability growth model to improve software quality. It proposes an Enhanced Non-Homogeneous Poisson Process (ENHPP) model to estimate software reliability measures like remaining faults and failure rate. The ENHPP model explicitly incorporates a time-varying testing coverage function and allows for imperfect debugging and coverage changes over testing and operation. It is validated on real failure data sets and shown to provide better fit than existing models. The goal is to enhance code reusability, minimize test effort estimation and improve reliability through the testing phase of the software development life cycle.
This is the chapter 2 of ISTQB Advance Test Automation Engineer certification. This presentation helps aspirants understand and prepare content of certification.
This is chapter 2 of ISTQB Advance Test Manager certification. This presentation helps aspirants understand and prepare the content of the certification.
1. The document discusses various types and levels of software testing including manual and automated testing. It describes unit, integration, and system testing which are done at different stages of the software development life cycle.
2. Software testing is explained as a process to ensure software code performs as intended without unexpected behavior. It aims to find defects, gain confidence in quality, and prevent defects. Complete testing of even simple programs is impractical due to the large number of potential inputs and outputs.
3. Economics and human psychology must be considered in testing as it is not possible to test all permutations of a program. Strategies like black-box and white-box testing help address challenges of testing economics.
Chapter 4 - Mobile Application Platforms, Tools and EnvironmentNeeraj Kumar Singh
This is chapter 4 of ISTQB Specialist Mobile Application Tester certification. This presentation helps aspirants understand and prepare the content of the certification.
AN EFFECTIVE VERIFICATION AND VALIDATION STRATEGY FOR SAFETY-CRITICAL EMBEDDE...IJSEA
This paper presents the best practices to carry out the verification and validation (V&V) for a safetycritical
embedded system, part of a larger system-of-systems. The paper talks about the effectiveness of this
strategy from performance and time schedule requirement of a project. The best practices employed for the
V &Vis a modification of the conventional V&V approach. The proposed approach is iterative which
introduces new testing methodologies apart from the conventional testing methodologies, an effective way
of implementing the phases of the V&V and also analyzing the V&V results. The new testing methodologies
include the random and non-real time testing apart from the static and dynamic tests. The process phases
are logically carried out in parallel and credit of the results of the different phases are taken to ensure that
the embedded system that goes for the field testing is bug free. The paper also demonstrates the iterative
qualities of the process where the iterations successively find faults in the embedded system and executing
the process within a stipulated time frame, thus maintaining the required reliability of the system. This
approach is implemented in the most critical applications —-aerospace application where safety of the
system cannot be compromised
The document discusses concepts related to software reliability. It describes how software reliability is modeled using a "bathtub curve" with two phases - an initial high failure rate period and a useful life period with an approximately constant failure rate. The document defines software reliability and discusses factors that influence it like faults in the software and the execution environment. It also outlines various ways of characterizing software failures over time and presents models of failure probability distributions. Finally, it discusses uses of reliability studies and defines software quality in terms of attributes like reliability, correctness and maintainability.
Test Driven Development:Unit Testing, Dependency Injection, Mockingmrjawright
Test Driven Development (TDD) is a software development process that involves writing unit tests before production code. Empirical studies have shown TDD can reduce defect density by 40-90% and increase productivity. Unit tests provide a safety net for changes by verifying new code does not break existing functionality. TDD promotes design principles like dependency injection and mocking to isolate code dependencies for flexible testing. While TDD may increase initial development time, it can save time during maintenance which accounts for 60-90% of a software lifecycle.
Finding Bugs, Fixing Bugs, Preventing Bugs — Exploiting Automated Tests to In...University of Antwerp
With the rise of agile development, software teams all over the world embrace faster release cycles as *the* way to incorporate customer feedback into product development processes. Yet, faster release cycles imply rethinking the traditional notion of software quality: agile teams must balance reliability (minimize known defects) against agility (maximize ease of change). This talk will explore the state-of-the-art in software test automation and the opportunities this may present for maintaining this balance. We will address questions like: Will our test suite detect critical defects early? If not, how can we improve our test suite? Where should we fix a defect?
(Keynote for the SHIFT 2020 and IWSF 2020 Workshops, October 2020)
This is chapter 6 of ISTQB Advance Technical Test Analyst certification. This presentation helps aspirants understand and prepare the content of the certification.
The document discusses automation testing and unit testing with JUnit. It defines automation testing as using a software to test a product by writing scripts to rerun test scenarios quickly. Unit testing tests individual software units in isolation to check for correct behavior. The document also describes Selenium as a tool for automating web application testing and JUnit as the most popular unit testing framework for Java. It notes the benefits of both automation and unit testing as reducing costs and bugs while improving quality.
The document describes a survey conducted on test automation maturity between December 2018 and June 2019. The survey received 151 responses from 101 organizations across 25 countries. The survey aimed to understand the current state of practice regarding test automation processes and maturity. Key findings from the survey include: 1) organizations demonstrated varying levels of maturity depending on the practices adopted; 2) responses showed diverse situations regarding different practices, such as 85% having sufficient skills but 47% lacking guidelines; 3) some practices were strongly correlated or clustered; 4) factors like percentage of automated tests and use of agile/DevOps indicated higher maturity; 5) practitioner roles like QA engineers and consultants showed differing response variations. The survey provides insight into present test automation and opportunities for improvement
Exploring the Efficiency of the Program using OOAD MetricsIRJET Journal
This document proposes a methodology to analyze the efficiency of object-oriented programs using OOAD (Object Oriented Analysis and Design) metrics. The methodology involves compiling a program successively until it is error-free, recording the error rate at each compilation. These results are then compared to determine how many compilations were needed for the program to be error-free, indicating its efficiency. The methodology is experimentally validated on a sample Java program, with results showing the error rate decreasing with each compilation until the program is error-free after the 8th compilation, demonstrating good efficiency.
Static analysis, reliability testing, and security testing are techniques for validating critical systems. Additional validation processes are required for critical systems due to the high costs and consequences of failure. Validation costs for critical systems are significantly higher than for non-critical systems, typically taking up more than 50% of total development costs. The outcome of the validation process is evidence that demonstrates the system's level of dependability.
Chapter 6 - Transitioning Manual Testing to an Automation EnvironmentNeeraj Kumar Singh
The document discusses factors to consider when transitioning from manual to automated testing. It states that traditionally organizations have developed manual test cases, and when deciding to automate, one must evaluate current manual tests and determine the most effective approach to automating these assets. Not all tests can or should be automated. There are criteria provided for determining what types of tests are good candidates for automation, such as frequency of use and complexity. Steps for automating regression tests are also outlined.
Unit Testing to Support Reusable for Component-Based Software Engineeringijtsrd
Unit testing is a practical approach to improve the quality and reliability of software. Unit testing is usually performed by programmers and is the base for all other tests such as integration testing and system testing. Unit Testing can be done manually and or automatically. The automated unit tests are written by the developers after the completion of functionality coding. The number of defects reduced when automated unit tests are written iteratively similar to test driven development. This framework proved that significant portions of windows application can be automatically tested without manual intervention. This reduces the manpower involved in testing each and every unit of the application and increases the quality of the software product. Khin Moe Sam "Unit Testing to Support Reusable for Component-Based Software Engineering" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-3 | Issue-2 , February 2019, URL: https://www.ijtsrd.com/papers/ijtsrd21458.pdf
Paper URL: https://www.ijtsrd.com/engineering/computer-engineering/21458/unit-testing-to-support-reusable-for-component-based-software-engineering/khin-moe-sam
Automation simplifies and speeds up the testing process for large projects. Test automation is crucial to achieve test coverage and speed for large projects. A combination of manual testing and test automation can provide adequate test coverage. Automation testing powered by crowd sourcing provides a cost-effective solution that helps access skilled testing experts and combat challenges in achieving full test coverage. Some benefits of crowd-sourced automation include expert support in creating scripts, script maintenance, ability to test on different devices, and savings in time and money.
Testing is the process of evaluating a system or its components to find whether it satisfies specified requirements. Testing is generally done by software testers, developers, project managers, and end users. There are different types of testing like unit testing, integration testing, system testing, and acceptance testing. Testing is performed at various stages of the software development life cycle to verify that the system is built correctly and meets requirements.
Automation Testing of Web based Application with Selenium and HP UFT (QTP)IRJET Journal
This document compares two automation testing tools: Selenium and HP UFT (also known as QTP). It first provides background on software testing and the benefits of automation over manual testing. It then discusses the aims of the study, related work on automation testing frameworks and the major components of the Selenium tool. The key points are that the document aims to compare Selenium and UFT/QTP for testing web applications and provides background on software testing, the benefits of automation, automation frameworks, and an overview of the Selenium tool and its major components in order to facilitate the comparison.
From previous year researches, it is concluded that testing is playing a vital role in the development of the software product. As, software testing is a single approach to assure the quality of the software so most of the development efforts are put on the software testing. But software testing is an expensive process and consumes a lot of time. So, testing should be start as early as possible in the development to control the money and time problems. Even, testing should be performed at every step in the software development life cycle (SDLC) which is a structured approach used in the development of the software product. Software testing is a tradeoff between budget, time and quality. Now a day, testing becomes a very important activity in terms of exposure, security, performance and usability. Hence, software testing faces a collection of challenges.
Unit testing focuses on testing individual software modules to uncover errors. Integration testing tests interfacing between modules incrementally to isolate errors. Testing objectives are to find errors, use high probability test cases, and ensure specifications are met. Reasons to test are for correctness, efficiency, and complexity. Test oracles verify expected outputs to increase automated testing efficiency and reduce costs, though complete automation has challenges.
1) Testing occurs throughout the software development life cycle and is organized based on the life cycle model used, such as the waterfall or V-model.
2) There are multiple levels of testing including component, integration, system, and acceptance testing. Each level has specific objectives such as verifying components or validating user needs.
3) Iterative life cycle models, like RAD and agile development, involve multiple shorter development phases with corresponding testing activities in each phase.
What is Unit Testing? - A Comprehensive Guideflufftailshop
Software development involves different steps and processes, ranging from writing code and testing every function to debugging and deploying. Unit testing is an important test method used by QA teams to ensure that a software product is free of errors and meets all essential requirements.
The document discusses several software development models including the waterfall model, V-model, iterative models, Rapid Application Development (RAD) model, and Agile development models like Extreme Programming (XP). The V-model uses four test levels - component, integration, system, and acceptance testing. Iterative models deliver functionality in increments with each increment tested at several levels. RAD encourages active customer feedback for early visibility and decisions about future development. Agile models like XP promote generating stories to define functionality and on-site customers for continual feedback.
1. The document discusses various types and levels of software testing including manual and automated testing. It describes unit, integration, and system testing which are done at different stages of the software development life cycle.
2. Software testing is explained as a process to ensure software code performs as intended without unexpected behavior. It aims to find defects, gain confidence in quality, and prevent defects. Complete testing of even simple programs is impractical due to the large number of potential inputs and outputs.
3. Economics and human psychology must be considered in testing as it is not possible to test all permutations of a program. Strategies like black-box and white-box testing help address challenges of testing economics.
Chapter 4 - Mobile Application Platforms, Tools and EnvironmentNeeraj Kumar Singh
This is chapter 4 of ISTQB Specialist Mobile Application Tester certification. This presentation helps aspirants understand and prepare the content of the certification.
AN EFFECTIVE VERIFICATION AND VALIDATION STRATEGY FOR SAFETY-CRITICAL EMBEDDE...IJSEA
This paper presents the best practices to carry out the verification and validation (V&V) for a safetycritical
embedded system, part of a larger system-of-systems. The paper talks about the effectiveness of this
strategy from performance and time schedule requirement of a project. The best practices employed for the
V &Vis a modification of the conventional V&V approach. The proposed approach is iterative which
introduces new testing methodologies apart from the conventional testing methodologies, an effective way
of implementing the phases of the V&V and also analyzing the V&V results. The new testing methodologies
include the random and non-real time testing apart from the static and dynamic tests. The process phases
are logically carried out in parallel and credit of the results of the different phases are taken to ensure that
the embedded system that goes for the field testing is bug free. The paper also demonstrates the iterative
qualities of the process where the iterations successively find faults in the embedded system and executing
the process within a stipulated time frame, thus maintaining the required reliability of the system. This
approach is implemented in the most critical applications —-aerospace application where safety of the
system cannot be compromised
The document discusses concepts related to software reliability. It describes how software reliability is modeled using a "bathtub curve" with two phases - an initial high failure rate period and a useful life period with an approximately constant failure rate. The document defines software reliability and discusses factors that influence it like faults in the software and the execution environment. It also outlines various ways of characterizing software failures over time and presents models of failure probability distributions. Finally, it discusses uses of reliability studies and defines software quality in terms of attributes like reliability, correctness and maintainability.
Test Driven Development:Unit Testing, Dependency Injection, Mockingmrjawright
Test Driven Development (TDD) is a software development process that involves writing unit tests before production code. Empirical studies have shown TDD can reduce defect density by 40-90% and increase productivity. Unit tests provide a safety net for changes by verifying new code does not break existing functionality. TDD promotes design principles like dependency injection and mocking to isolate code dependencies for flexible testing. While TDD may increase initial development time, it can save time during maintenance which accounts for 60-90% of a software lifecycle.
Finding Bugs, Fixing Bugs, Preventing Bugs — Exploiting Automated Tests to In...University of Antwerp
With the rise of agile development, software teams all over the world embrace faster release cycles as *the* way to incorporate customer feedback into product development processes. Yet, faster release cycles imply rethinking the traditional notion of software quality: agile teams must balance reliability (minimize known defects) against agility (maximize ease of change). This talk will explore the state-of-the-art in software test automation and the opportunities this may present for maintaining this balance. We will address questions like: Will our test suite detect critical defects early? If not, how can we improve our test suite? Where should we fix a defect?
(Keynote for the SHIFT 2020 and IWSF 2020 Workshops, October 2020)
This is chapter 6 of ISTQB Advance Technical Test Analyst certification. This presentation helps aspirants understand and prepare the content of the certification.
The document discusses automation testing and unit testing with JUnit. It defines automation testing as using a software to test a product by writing scripts to rerun test scenarios quickly. Unit testing tests individual software units in isolation to check for correct behavior. The document also describes Selenium as a tool for automating web application testing and JUnit as the most popular unit testing framework for Java. It notes the benefits of both automation and unit testing as reducing costs and bugs while improving quality.
The document describes a survey conducted on test automation maturity between December 2018 and June 2019. The survey received 151 responses from 101 organizations across 25 countries. The survey aimed to understand the current state of practice regarding test automation processes and maturity. Key findings from the survey include: 1) organizations demonstrated varying levels of maturity depending on the practices adopted; 2) responses showed diverse situations regarding different practices, such as 85% having sufficient skills but 47% lacking guidelines; 3) some practices were strongly correlated or clustered; 4) factors like percentage of automated tests and use of agile/DevOps indicated higher maturity; 5) practitioner roles like QA engineers and consultants showed differing response variations. The survey provides insight into present test automation and opportunities for improvement
Exploring the Efficiency of the Program using OOAD MetricsIRJET Journal
This document proposes a methodology to analyze the efficiency of object-oriented programs using OOAD (Object Oriented Analysis and Design) metrics. The methodology involves compiling a program successively until it is error-free, recording the error rate at each compilation. These results are then compared to determine how many compilations were needed for the program to be error-free, indicating its efficiency. The methodology is experimentally validated on a sample Java program, with results showing the error rate decreasing with each compilation until the program is error-free after the 8th compilation, demonstrating good efficiency.
Static analysis, reliability testing, and security testing are techniques for validating critical systems. Additional validation processes are required for critical systems due to the high costs and consequences of failure. Validation costs for critical systems are significantly higher than for non-critical systems, typically taking up more than 50% of total development costs. The outcome of the validation process is evidence that demonstrates the system's level of dependability.
Chapter 6 - Transitioning Manual Testing to an Automation EnvironmentNeeraj Kumar Singh
The document discusses factors to consider when transitioning from manual to automated testing. It states that traditionally organizations have developed manual test cases, and when deciding to automate, one must evaluate current manual tests and determine the most effective approach to automating these assets. Not all tests can or should be automated. There are criteria provided for determining what types of tests are good candidates for automation, such as frequency of use and complexity. Steps for automating regression tests are also outlined.
Unit Testing to Support Reusable for Component-Based Software Engineeringijtsrd
Unit testing is a practical approach to improve the quality and reliability of software. Unit testing is usually performed by programmers and is the base for all other tests such as integration testing and system testing. Unit Testing can be done manually and or automatically. The automated unit tests are written by the developers after the completion of functionality coding. The number of defects reduced when automated unit tests are written iteratively similar to test driven development. This framework proved that significant portions of windows application can be automatically tested without manual intervention. This reduces the manpower involved in testing each and every unit of the application and increases the quality of the software product. Khin Moe Sam "Unit Testing to Support Reusable for Component-Based Software Engineering" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-3 | Issue-2 , February 2019, URL: https://www.ijtsrd.com/papers/ijtsrd21458.pdf
Paper URL: https://www.ijtsrd.com/engineering/computer-engineering/21458/unit-testing-to-support-reusable-for-component-based-software-engineering/khin-moe-sam
Automation simplifies and speeds up the testing process for large projects. Test automation is crucial to achieve test coverage and speed for large projects. A combination of manual testing and test automation can provide adequate test coverage. Automation testing powered by crowd sourcing provides a cost-effective solution that helps access skilled testing experts and combat challenges in achieving full test coverage. Some benefits of crowd-sourced automation include expert support in creating scripts, script maintenance, ability to test on different devices, and savings in time and money.
Testing is the process of evaluating a system or its components to find whether it satisfies specified requirements. Testing is generally done by software testers, developers, project managers, and end users. There are different types of testing like unit testing, integration testing, system testing, and acceptance testing. Testing is performed at various stages of the software development life cycle to verify that the system is built correctly and meets requirements.
Automation Testing of Web based Application with Selenium and HP UFT (QTP)IRJET Journal
This document compares two automation testing tools: Selenium and HP UFT (also known as QTP). It first provides background on software testing and the benefits of automation over manual testing. It then discusses the aims of the study, related work on automation testing frameworks and the major components of the Selenium tool. The key points are that the document aims to compare Selenium and UFT/QTP for testing web applications and provides background on software testing, the benefits of automation, automation frameworks, and an overview of the Selenium tool and its major components in order to facilitate the comparison.
From previous year researches, it is concluded that testing is playing a vital role in the development of the software product. As, software testing is a single approach to assure the quality of the software so most of the development efforts are put on the software testing. But software testing is an expensive process and consumes a lot of time. So, testing should be start as early as possible in the development to control the money and time problems. Even, testing should be performed at every step in the software development life cycle (SDLC) which is a structured approach used in the development of the software product. Software testing is a tradeoff between budget, time and quality. Now a day, testing becomes a very important activity in terms of exposure, security, performance and usability. Hence, software testing faces a collection of challenges.
Unit testing focuses on testing individual software modules to uncover errors. Integration testing tests interfacing between modules incrementally to isolate errors. Testing objectives are to find errors, use high probability test cases, and ensure specifications are met. Reasons to test are for correctness, efficiency, and complexity. Test oracles verify expected outputs to increase automated testing efficiency and reduce costs, though complete automation has challenges.
1) Testing occurs throughout the software development life cycle and is organized based on the life cycle model used, such as the waterfall or V-model.
2) There are multiple levels of testing including component, integration, system, and acceptance testing. Each level has specific objectives such as verifying components or validating user needs.
3) Iterative life cycle models, like RAD and agile development, involve multiple shorter development phases with corresponding testing activities in each phase.
What is Unit Testing? - A Comprehensive Guideflufftailshop
Software development involves different steps and processes, ranging from writing code and testing every function to debugging and deploying. Unit testing is an important test method used by QA teams to ensure that a software product is free of errors and meets all essential requirements.
The document discusses several software development models including the waterfall model, V-model, iterative models, Rapid Application Development (RAD) model, and Agile development models like Extreme Programming (XP). The V-model uses four test levels - component, integration, system, and acceptance testing. Iterative models deliver functionality in increments with each increment tested at several levels. RAD encourages active customer feedback for early visibility and decisions about future development. Agile models like XP promote generating stories to define functionality and on-site customers for continual feedback.
SOFTWARE BUILD AUTOMATION TOOLS A COMPARATIVE STUDY BETWEEN MAVEN, GRADLE, BA...ijseajournal
The automated processes will play an increasingly vital role in continuous integration as the pace of
design and development of new software picks up. With the importance of software build automation tools
taking centerstage, the present paper undertakes a comparative analysis of three best available solutions -
Maven, Gradle and Bazel. We aim to evaluate the solutions based on their efficiency and performance in
the context of software build automation and deployment. There are some fundamental differences in the
way each tools approach builds. The aim of this study is also to provide the reader with a complete
overview of the selected build automation tools and, the relevant features and capabilities of interest. In
addition, the paper leads to a broader view on the future of the build automation tools ecosystem.
Introduction to Investigation And Utilizing Lean Test Metrics In Agile Softwa...IJERA Editor
The growth of the software development industry approaches the new development methodologies to deliver the
error free software to its end-user fulfilling the business values to product. The growth of tools and technology
has brought the automation in the development and software testing process, it has also increased the demand of
the fast testing and delivery of the software to end customers. Traditional software development methodologies
to trending agile software development trend have brought new philosophy, dimensions, and processes having
invested new tools to make process easy. The Agile development (Scrum, XP, FDD, BDD, ATDD, ASD,
DSDM, Kanban, Crystal and Lean) process also faces the software testing model crises because of the fast
development of life cycles, fast delivery to end users without having appropriate test metrics which make the
software testing process slow as well as increase the risk. The analysis of the testing metrics in the software
testing process and setting the right lean test metrics help to improve the software quality effectively in agile
process.
The document discusses different software development life cycle models and their implications for testing. It describes the waterfall model, V-model, iterative models like RAD and XP. The V-model uses four test levels - component, integration, system and acceptance testing. Iterative models divide delivery into increments with testing at each stage. Whichever model is used, testing activities correspond to development activities and testers are involved from the start.
International Journal of Soft Computing and Engineering (IJShildredzr1di
International Journal of Soft Computing and Engineering (IJSCE)
ISSN: 2231-2307, Volume-2, Issue-3, July 2012
251
Abstract— In recent years, software testing is becoming more
popular and important in the software development industry.
Indeed, software testing is a broad term encircling a variety of
activities along the development cycle and beyond, aimed at
different goals. Hence, software testing research faces a collection
of challenges. A consistent roadmap of most relevant challenges is
proposed here. In it, the starting point is constituted by some
important past achievements, while the destination consists of two
major identified goals to which research ultimately leads, but
which remains as reachable as goals. The routes from the
achievements to the goals are paved by outstanding research
challenges, which are discussed in the paper along with the
ongoing work.
Software testing is as old as the hills in the history of digital
computers. The testing of software is an important means of
assessing the software to determine its quality. Since testing
typically consumes 40~50% of development efforts, and consumes
more effort for systems that require higher levels of reliability, it is
a significant part of the software engineering
Software testing is a very broad area, which involves many
other technical and non-technical areas, such as specification,
design and implementation, maintenance, process and
management issues in software engineering. Our study focuses on
the state of the art in testing techniques, as well as the latest
techniques which representing the future direction of this area.
Today, testing is the most challenging and dominating activity
used by industry, therefore, improvement in its effectiveness, both
with respect to the time and resources, is taken as a major factor
by many researchers
The purpose of testing can be quality assurance, verification,
and validation or reliability estimation. It is a tradeoff between
budget, time and quality. Software Quality is the central concern
of software engineering. Testing is the single most widely used
approach to ensuring software quality.
(Keywords: SDLC, Software quality, Testing techniq
Technique .)
I. INTRODUCTION
I. Introduction: Software Testing
Software testing is the process of executing a program or
system with the intent of finding errors. Software is not unlike
other physical processes where inputs are received and
outputs are produced. Where software differs is in the manner
in which it fails. Most physical systems fail in a fixed (and
reasonably small) set of ways. By contrast, software can fail in
Manuscript received: on July, 2012
Maneela Tuteja, Department of Information TechnologyDronacharya
College of Engineering, Gurgaon, Haryana,.
Gaurav Dubey, Amity School of Computer Sciences, Amity University,
Uttar Pradesh,India.,
.
many bizarre ways. Detec ...
This document provides information about obtaining fully solved assignments from an assignment help service. It lists the email and phone contact information and requests students to send their semester and specialization to receive help with assignments. It also lists some of the programs and subjects that assignments are available for, including MBADS, MBAFLEX, MBAN2, and PGDISMN.
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
In the past few years, agile software development approach has emerged as a most attractive software development approach. A typical CASE environment consists of a number of CASE tools operating on a common hardware and software platform and note that there are a number of different classes of users of a CASE environment. In fact, some users such as software developers and managers wish to make use of CASE tools to support them in developing application systems and monitoring the progress of a project. This development approach has quickly caught the attention of a large number of software development firms. However, this approach particularly pays attention to development side of software development project while neglects critical aspects of requirements engineering process. In fact, there is no standard requirement engineering process in this approach and requirements engineering activities vary from situation to situation. As a result, there emerge a large number of problems which can lead the software development projects to failure. One of major drawbacks of agile approach is that it is suitable for small size projects with limited team size. Hence, it cannot be adopted for large size projects. We claim that this approach can be used for large size projects if traditional requirements engineering approach is combined with agile manifesto. In fact, the combination of traditional requirements engineering process and agile manifesto can also help resolve a large number of problems exist in agile development methodologies. As in software development the most important thing is to know the clear customer’s requirements and also through modeling (data modeling, functional modeling, behavior modeling). Using UML we are able to build efficient system starting from scratch towards the desired goal. Through UML we start from abstract model and develop the required system through going in details with different UML diagrams. Each UML diagram serves different goal towards implementing a whole project.
Software Development Models by Graham et alEmi Rahmi
Software Development Models - Graham et al Foundation of Software Testing
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
Software Development Models - Graham et al Foundation of Software Testing
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
Testing is not a stand-alone activity. It has its place within a software development life cycle model and therefore the life cycle applied will largely determine how testing is organized.
Selenium - A Trending Automation Testing Toolijtsrd
Selenium is an important testing tool for software quality assurance. In recent days number of websites are increasing rapidly and it becomes essential to test the websites against various quality factors to make sure it meets the expected quality goals. Several companies are spending a lot of bucks for the testing tool while Selenium is available completely free for the performance test. The open source tool is well known for its unlimited capabilities and unlimited reach. Selenium stands out from the crowd in this aspect. Anyone could visit the Selenium website and download the latest version and use it. It is not only an open source but also highly modifiable. Testers could make changes based upon their needs and requirements. Manav Kundra "Selenium - A Trending Automation Testing Tool" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-4 | Issue-4 , June 2020, URL: https://www.ijtsrd.com/papers/ijtsrd31202.pdf Paper Url :https://www.ijtsrd.com/engineering/software-engineering/31202/selenium-%E2%80%93-a-trending-automation-testing-tool/manav-kundra
Software testing automation a comparative study on productivity rate of ope...Conference Papers
This document compares the productivity of two open source automated software testing tools, Robot Framework 3.0 and Katalon Studio 7.0, for testing smart manufacturing applications. Ten subject matter experts tested their productivity using each tool across various stages of the software development lifecycle. Katalon Studio 7.0 was found to be significantly more productive than Robot Framework 3.0 based on statistical analysis of the time taken using each tool. The study provides guidance for selecting automated testing tools to improve productivity for software test engineers working in smart manufacturing.
Testing Throughout The Software Life Cycleelvira munanda
Testing is not a stand-alone activity. It has its place within a software development life cycle model and therefore the life cycle applied will largely determine how testing is organized
DevOps CI Automation Continuous IntegrationIRJET Journal
This document discusses implementing a DevOps continuous integration (CI) automation pipeline for test automation. It involves developing a Java-based test automation framework using Selenium and TestNG. Test cases and framework code are stored in a GitHub repository. Jenkins is configured to automatically build and run tests whenever code is committed to GitHub. This allows for continuous regression testing and helps deliver defect-free software by catching issues early in the development cycle.
This presentation was provided by Racquel Jemison, Ph.D., Christina MacLaughlin, Ph.D., and Paulomi Majumder. Ph.D., all of the American Chemical Society, for the second session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session Two: 'Expanding Pathways to Publishing Careers,' was held June 13, 2024.
How Barcodes Can Be Leveraged Within Odoo 17Celine George
In this presentation, we will explore how barcodes can be leveraged within Odoo 17 to streamline our manufacturing processes. We will cover the configuration steps, how to utilize barcodes in different manufacturing scenarios, and the overall benefits of implementing this technology.
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...EduSkills OECD
Andreas Schleicher, Director of Education and Skills at the OECD presents at the launch of PISA 2022 Volume III - Creative Minds, Creative Schools on 18 June 2024.
Chapter wise All Notes of First year Basic Civil Engineering.pptxDenish Jangid
Chapter wise All Notes of First year Basic Civil Engineering
Syllabus
Chapter-1
Introduction to objective, scope and outcome the subject
Chapter 2
Introduction: Scope and Specialization of Civil Engineering, Role of civil Engineer in Society, Impact of infrastructural development on economy of country.
Chapter 3
Surveying: Object Principles & Types of Surveying; Site Plans, Plans & Maps; Scales & Unit of different Measurements.
Linear Measurements: Instruments used. Linear Measurement by Tape, Ranging out Survey Lines and overcoming Obstructions; Measurements on sloping ground; Tape corrections, conventional symbols. Angular Measurements: Instruments used; Introduction to Compass Surveying, Bearings and Longitude & Latitude of a Line, Introduction to total station.
Levelling: Instrument used Object of levelling, Methods of levelling in brief, and Contour maps.
Chapter 4
Buildings: Selection of site for Buildings, Layout of Building Plan, Types of buildings, Plinth area, carpet area, floor space index, Introduction to building byelaws, concept of sun light & ventilation. Components of Buildings & their functions, Basic concept of R.C.C., Introduction to types of foundation
Chapter 5
Transportation: Introduction to Transportation Engineering; Traffic and Road Safety: Types and Characteristics of Various Modes of Transportation; Various Road Traffic Signs, Causes of Accidents and Road Safety Measures.
Chapter 6
Environmental Engineering: Environmental Pollution, Environmental Acts and Regulations, Functional Concepts of Ecology, Basics of Species, Biodiversity, Ecosystem, Hydrological Cycle; Chemical Cycles: Carbon, Nitrogen & Phosphorus; Energy Flow in Ecosystems.
Water Pollution: Water Quality standards, Introduction to Treatment & Disposal of Waste Water. Reuse and Saving of Water, Rain Water Harvesting. Solid Waste Management: Classification of Solid Waste, Collection, Transportation and Disposal of Solid. Recycling of Solid Waste: Energy Recovery, Sanitary Landfill, On-Site Sanitation. Air & Noise Pollution: Primary and Secondary air pollutants, Harmful effects of Air Pollution, Control of Air Pollution. . Noise Pollution Harmful Effects of noise pollution, control of noise pollution, Global warming & Climate Change, Ozone depletion, Greenhouse effect
Text Books:
1. Palancharmy, Basic Civil Engineering, McGraw Hill publishers.
2. Satheesh Gopi, Basic Civil Engineering, Pearson Publishers.
3. Ketki Rangwala Dalal, Essentials of Civil Engineering, Charotar Publishing House.
4. BCP, Surveying volume 1
Leveraging Generative AI to Drive Nonprofit InnovationTechSoup
In this webinar, participants learned how to utilize Generative AI to streamline operations and elevate member engagement. Amazon Web Service experts provided a customer specific use cases and dived into low/no-code tools that are quick and easy to deploy through Amazon Web Service (AWS.)
Gender and Mental Health - Counselling and Family Therapy Applications and In...PsychoTech Services
A proprietary approach developed by bringing together the best of learning theories from Psychology, design principles from the world of visualization, and pedagogical methods from over a decade of training experience, that enables you to: Learn better, faster!
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
PROPOSING AUTOMATED REGRESSION SUITE USING OPEN SOURCE TOOLS FOR A HEALTH CARE SOLUTION
1. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
DOI: 10.5121/ijsea.2020.11101 1
PROPOSING AUTOMATED REGRESSION SUITE
USING OPEN SOURCE TOOLS FOR
A HEALTH CARE SOLUTION
Anjali Rawat and Shahid Ali
Department of Information Technology, AGI Institute, Auckland, New Zealand
ABSTRACT
Regression testing is very important for the delivery of high quality product. It helps to simulate a suite of
critical test cases periodically and helps to identify if introduction of any new features or any source code
change has adversely affected the software quality or functionality. As a result, regression testing cannot be
ignored from the software testing life cycle (STLC). But just doing a regression testing cannot be beneficial
until it is accompanied by automation testing. Automated regression suite not only saves time and cost by
re-running test scripts again and again but it also provide the confidence that all the critical test cases has
been covered, providing more confidence in the quality of the product and increasing the ability to meet
schedules. IT has an ability to explore the whole software every day without requiring much of manual
effort. Current software is going through continuous development which requires testing again and again
to check if new feature implementation has affected the existing functionality. In addition to this, it is facing
issue in validation of the installation at client site and requires availability of testers to check the critical
functionality of the software manually. This paper came up with the solution of creating automated
regression suite for the software. The current research will provide guidelines to the future researchers on
how to create an automated regression suite for any web application using open source tools.
KEYWORDS
Automation testing, Regression testing, Visual Studio, C#, Selenium Webdriver, Agile- Scrum Methodology,
Health care solution, Visual SVN, Trello
1. INTRODUCTION
The Company was founded in 2002 and is a leading healthcare software consultancy offering real
knowledge and experience of the medical field to shape solutions for diverse industry
requirements. It creates software solutions for health monitoring environments. This company
specialize in systems across 3 markets:
Rehabilitation
Community Health
Occupational Health
The Company is currently developing an Occupational Health Management Solution (OHMS), a
cloud-based occupational health platform designed to help organizations proactively manage
employee health monitoring, pre-employment and wellbeing activities. This solution is built
around Electronic Health Record (EHR). An EHR is a person-centric dataset which provides a
360 degree view of an individual’s health and well-being, as well as relevant clinical episode of
care. It has an ability to capture and manage information such as patient demographics, progress
notes, medications, past medical history, immunizations and laboratory tests. OHMS is going
through continuous development to meet the requirements of multiple clients and therefore
2. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
2
requires testing of software again and again to check if new feature implementation has affected
the existing functionality of the software. Currently to confirm that OHMS has been installed
correctly at client site, tester are send to client’s premises and test the critical functionality of the
software manually. Both these activities need lot of time and manual efforts and therefore this
paper has tried to suggest creation of automated regression suite for OHMS. This suite can be
executed at client site for checking the functionality of the software. In addition to this, this suite
will also help the testing team to validate if the new features which have been added to the
existing software are affecting the existing system or not.
The scope of this project is to create automated regression test suite. This research project report
is organized as follow: Section 2 focuses on the literature review of various studies concentrating
on automation regression. Section 3 is focused on the research methodology for this research
project. Section 4 of this research is focused on project execution results. Discussion to results of
this project is provided in section 5. Section 6 is dedicated
towards the future work recommendations. Finally, in section 7 conclusions to the research is
provided.
2. LITERATURE REVIEW
A thorough study of different research paper has been done before implementing any
methodology or technique for this project. Regression testing has a capability to detect the bugs
caused by software enhancement or bug fix [1]. Evidences regarding advantage of implementing
automation testing which includes saving time by re-running test scripts again and again,
providing more confidence in the quality of the product, increasing the ability to meet schedules
and significantly reducing the manual efforts of the testers are provided on the basis of survey of
115 software professionals [2]. In addition to this, automated regression suite has an ability to
explore the whole software every day without requiring much of manual effort. Also, bug
identification is easier after the incorrect changes have been made [3].
Selenium is one of the most popular open source tools for web based testing and supports all
prominent browsers and operating systems. It supports automation of dynamic web pages where
web elements changes without the page being reloaded [4]. The selection of selenium Webdriver
can be further supported by highlighting the easiness of test suite maintenance using selenium
Webdriver [9]. Creation of automation framework for web application with “Selenium Webdriver
could reduce time for development, increase the return on investments (ROI) and minimize the
risk” (Elior, 2017).
Visual studio (VS) is a fully-featured integrated development environment (IDE) for Android,
iOS, Windows, web, and cloud which is freely available. It supports GitHub. Its functionality and
features can be extended through plug-ins. Number of extensions can be found in the Visual
Studio Gallery for VS [6]. Trello is a free cloud-based project management tool which gives an
overview of what is being worked on and who is working on a particular task. It helps project
leaders in managing large projects, planning programs, and coordinating teams [7].
Scrum methodology is ideal for the software where client requirements are rapidly changing. It
emphasis on incremental development effort which allows early delivery of a portion of the
solution without the entire solution to be 100% complete and hence helps to gain client
confidence over the team. Work estimates are much easier under this methodology [8].
Most of these research papers are confined to the usage of JAVA as the programming language in
their projects, whereas, a large portion of companies in New Zealand still uses C# as a
3. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
3
programming language in their coding. This report has explained how automation can be
achieved using C# with selenium Webdriver. In addition, this paper has explained how the
combination of selenium Webdriver with Visual Studio can help any organization to achieve
regression automation.
3. RESEARCH METHODOLOGY
Research methodology for OHMS Project has been discussed below.
4.1 Proposed Architecture for the project
Proposed architecture for OHMS Project is shown in Figure 1. The whole suite has been divided
into three folder structure. The first folder named as Initial Execution is having a main class in it.
This main class will initialize the scripts for execution. Second folder named as Task Execution
has a Base class inside it which again have two abstract methods namely up and down methods
for creating and deleting entries respectively and the third folder named as Test Scripts have all
the scripts which contain the web elements and the actions which are getting performed on the
OHMS.
Main class calls “Browser start” class, which helps to initialize the Webdriver and later return the
initialized Webdriver to the main class. Classes defined under Test Scripts folder inherit and
implement the base class. Once these two actions are complete, main class start calling test
script’s classes one by one, to perform the actions on the OHMS and displays the results in the
console for each action.
Figure 1. Proposed Architecture for OHMS Project
OHMS
4. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
4
3.2 Project Execution
3.2.1 Testing Phases for Project
Automation testing phase which has been implemented by OHMS project is shown in figure 2. It
shows the different phases involved in the whole testing process along with the different activities
which have been performed in each stage. This project has 6 phases. In first phases requirements
are gathered from the client and a technical analysis of those requirements is done. In this
Company, it needs the involvement of Business Analyst (BA) and product owner (PO) for the
accomplishment of this task. Second phase involves test planning including creation of test
strategy and test plan documents. PO will help the scrum team in identifying the user stories and
will also prioritize the user stories which need to be covered in each sprint. In Third phase
environment is set up. During this phase, Visual Studio has been installed in the local machine,
Selenium Webdriver related jar files and libraries has been imported and Visual SVN is installed
which helped the team to commit the updated code to the central repository. Once the setup was
ready, team starts designing test scripts on the basis of Acceptance criteria mentioned on the user
stories. Traceability matrix is used to make sure that all the requirements have been covered by
the test scripts. In the execution phase, test scripts are executed and once they are passed they are
committed to the central repository. The last phase was the test result analysis phase where the
complete code and the output was reviewed by the scrum team, and team members would suggest
areas of improvement.
Figure 2. Testing Phases for OHMS project
5. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
5
3.2.2 Test Cases
Test cases are the set of steps and conditions which helps to determine whether application
under test works correctly and meets the requirements. Some of the test cases which have been
created for OHMS are shown in Table 1. This table explains what each test case is supposed to
do, pre-requisites which need to be fulfilled, detailed steps which need to be followed to achieve
the expected result. Test cases are helpful in ensuring that all the requirements have been covered
and creates a layout for the automation scripts.
Test
Case ID
Test Case
Description
Pre-
requisites Steps
Expected
Result
Actual
Result
Result
TC_001
As an
Admin, I
should be
able to login
to OHMS
using valid
credentials
URL :
OHMS
website
Username :
“Admin”
Password :
“XXXXXX”
1.Navigat
e to “
OHMS
website”
2.Enter
username
3.Enter
Password
4.Click on
Login
User
should be
logged-In
to OHMS
successful
ly
User is
success
fully
logged-
in
PASS
TC_002
As an
Admin, I
should be
able to
create
person for
Program
manager
(PM) role
Logged-In as
Company
Admin
1.Navigat
e to “My
Company
” tab
2.Go to
“People”
tab
3.Click
New
4.Fill
details
5. Create
A person
should get
created for
home
company
Person
is
success
fully
created
PASS
TC_003
As an
Admin, I
should be
able to
assign PM
role and
valid
credentials
to newly
created
person
Logged in as
Company
Admin
1.
Navigate
to
”Security”
tab
2.Enter
password
3.Click on
“Program
Manager”
role
4. Create
“Program
Manager”
role
should be
assigned
to newly
created
person
successful
ly.
“Progr
am
Manag
er”
role is
assigne
d
success
fully
PASS
6. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
6
TC_004
As an Admin,
I should be
able to logout
as Company’s
Admin
Logged in
as
Company
Admin
1. Navigate to
“Menu”
2. Click on
“Sign-Out”
User should
be logged-
Out
successfully
User is
successf
ully
logged-
Out
PASS
TC_005
As a PM, I
should be able
to login to
OHMS
URL :
OHMS
website
Username
: “PM
HomeCo
mpany”
Password
: “
XXXXXX
”
1.Navigate to
“ OHMS
website”
2.Enter
username
3.Enter
Password
4.Click on
Login
PM should
be logged-In
to OHMS
successfully
PM is
successf
ully
logged
in
PASS
TC_006
As a PM, I
should be able
to create
Client
company
Logged in
as PM
1. Click on
“Client
Company” tab
2.Click on
“New”
3. Fill details
4.Click on
“Create”
Client
Company
should be
created
successfully
Client
Compan
y is
created
successf
ully
PASS
TC_007
As a PM, I
should be able
to create
Client
company Sites
Logged in
as PM
1. Click on
newly created
“Client
Company”
2. Click on
“New”
3. Click on
“New Site”
4.Fill details
5.Click on
“Create”
Sites should
be created
successfully
Sites are
created
successf
ully
PASS
TC_008
As a PM, I
should be able
to create
Client
company
Division
Logged in
as PM
1. Click on
newly created
“Client
Company”
2. Click on
“New”
3. Click on
“New
Division”
4.Fill details
5.Click on
“Create”
Divisions
should be
created
successfully
Division
s are
created
successf
ully
PASS
7. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
7
TC_014
As a PM, I
should be able
to create
Client admin
for the client
company
Logged
in as
PM
1.Navigate to
newly created
“Client
Company”
2.Go to
“People” tab
3.Click New
4.Fill details
5. Create
A person
should get
created
for client
company
User is
successf
ully
logged
in
PASS
TC_015
As a PM, I
should be able
to assign role
and valid
credentials to
client admin
Logged
in as
PM
1. Navigate to
”Security” tab
2.Enter
password
3.Click on
“Client
Admin” role
4. Create
Person
should be
assigned
“Client
Admin”
role
“Client
Admin”
role is
assigned
successf
ully
PASS
TC_016
As a PM, I
should be able
to logout from
OHMS
Logged
in as
PM
1.Navigate to
“Menu”
2.Click on
“Sign-Out”
User
should be
logged-
Out of
OHMS
successful
ly
User is
successf
ully
logged-
Out
PASS
TC_017
As a PM, I
should be able
to revoke
provider role
from home
company
nurse
Logged
in as
PM
1. Navigate to
“My
Company” tab
2.Go to
“People” tab.
3. Search for
the nurse
4.Navigate to
“Security” tab
5.Uncheck
“Provider”
role radio
button
6. Save
Provider
role
should be
revoked
from the
nurse
successful
ly
Provider
role is
revoked
successf
ully
PASS
TC_018
As a PM, I
should be able
to delete
Nurses from
home
company
Logged
in as
PM
1. Navigate to
“My
Company” tab
2.Go to
“People” tab.
3. Search for
the nurse
4.Click
“delete” tab
5.Delete
Nurse
should be
deleted
successful
ly
Nurse is
deleted
successf
ully
PASS
8. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
8
TC_022
As a PM, I
should be able
to delete client
admin from
client company
Logged
in as
PM
1. Navigate to
“client
Company” tab
2. Search for
the client
company
3. Search for
the client
admin
4.Click
“delete” tab
5.Delete
client admin
should be
deleted
successfully
client
admin
is
deleted
success
fully
PASS
TC_023
As a PM, I
should be able
to delete
employees of
client company
Logged
in as
PM
1. Navigate to
“client
Company” tab
2. Search for
the client
company
3. Search for
the Employee
4.Click
“delete” tab
5.Delete
Employee
should be
deleted
successfully
Emplo
yee is
deleted
success
fully
PASS
TC_024
As a PM, I
should be able
to delete client
company
Divisions
Logged
in as
PM
1. Navigate to
“Client
Company” tab
2. Search for
the client
company
3. Search for
the Division
4.Click
“delete” tab
5.Delete
Division
should be
deleted
successfully
Divisio
n is
deleted
success
fully
PASS
TC_025
As a PM, I
should be able
to delete client
company Sites
Logged
in as
PM
1. Navigate to
“Client
Company” tab
2. Search for
the client
company
3. Search for
the Site
4.Click
“delete” tab
5.Delete
Site should
be deleted
successfully
Site is
deleted
success
fully
PASS
9. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
9
Table 1. Test cases for OHMS
3.2.3 Traceability Matrix
Traceability matrix is a critical part of testing as it ensures that the product delivered to the client
is meeting all the stated requirements. Traceability matrix shows the mapping of the requirements
with the test cases and ensures that all the critical requirements of the application have been
covered by the test cases. It is a way to tie all the testing artifacts together from the starting to the
end to ensure that the end product align with the goals and objectives of the project. The matrix in
Table 2. shows the number of test cases which has been created in order to give full test coverage
to the particular requirement.
One great benefit of this matrix is the ability to access the impact of any requirement change.
When the requirement changes midway during the development of the software, this matrix helps
the tester to track the number of test cases which has been affected by that particular requirement
change.
TC_026
As an Admin,
I should be
able to revoke
PM role
Logged
in as
Company
Admin
1. Navigate to
“My
Company”
2.Go to
“People” tab.
3. Search for
the PM
4.Navigate to
“Security” tab
5.Uncheck
“Program
Manager” role
radio button
6. Save
“Program
Manager”
role
should be
revoked
successful
ly
“Program
Manager”
role is
revoked
successfull
y
PASS
TC_027
As an Admin,
I should be
able to delete
newly created
program
manager
Logged
in as
Admin
1. Navigate to
“My
Company” tab
2.Go to
“People” tab.
3. Search for
the PM
4.Click
“delete” tab
5.Delete
PM
should be
deleted
successful
ly
PM is
deleted
successfull
y
PASS
10. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
10
Requirement ID Requirement
Description
Test Case ID Status
RID _ 001 Login functionality of the OHMS TC_001
TC_005
Pass
RID_002 Company Admin rights which involves
:
TC_002
TC_003
Pass
Pass
RID_003 Program Manager rights which
involves :
TC_006
TC_007
TC_008
TC_011
TC_012
TC_013
TC_014
TC_015
TC_019
TC_020
Pass
Pass
Pass
Pass
Pass
Pass
Pass
Pass
Pass
Pass
RID_004 Program manager rights TC_009
TC_010
TC_017
TC_018
Pass
Pass
Pass
Pass
RID_005 Logout functionality of the OHMS TC_004
TC_016
Pass
Pass
Figure 2. Traceability Matrix
3.2.4 Solution Structure for OHMS Project
Complete structure in which OHMS automation scripts have been managed inside Visual Studio
is shown in Figure 3. All the test scripts are categorised on the basis of the type of action they are
performing. The structure consists of three folders namely: Initialize Execution, Task Manager
and Test Scripts. There is a separate section named as “Dependencies” which consist of all the
selenium libraries and packages which have been installed in visual studio for carrying out the
automation.
Initialize Execution: It has the main class which helps to initialize the web driver by
passing URL and credentials to Browser Start class.
Task Manager: It has the base class which consists of two methods namely : Up method
( for the creation of data) and Down method ( for the deletion of created data). It need to
be implemented by all the classes of “Test Script” folder.
11. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
11
Test Scripts: This folder have the test scripts, which contains web elements, their xpath,
selenium and C# commands for carrying out the execution on the OHMS.
Figure 3. Solution structure for OHMS Project
a) Task Manager Folder
This folder contains the Base class which has two abstract methods namely Up and Down
under it. This base class is inherited, and methods are implemented by the classes of
“Test Scripts” folder. Up method is used to create new entries in the OHMS and down
method is used to delete the same entries at later stage.
Figure 4. Task Manager
12. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
12
b) Initialize Execution folder
This folder contains the main class. This main class is the starting point of the execution and
calls all other classes for performing different tasks. The first action performed by the main
class is to pass driver name to the “browser start” class. Depending upon the passed
parameter, “browser start” class will initialize the driver of the same browser and later will
return the initialized driver back to the main class. Main class with the help of that driver will
navigate to OHMS official site and later will call other test scripts to perform next actions.
The code which has been used to create main class is shown in Figure 5.
13. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
13
Figure 5. Main class
c) Test Scripts Folder
This folder contains the test scripts which consist of all the web elements, their xpaths and the
actions which are need to be performed on the OHMS. Each class under “Test Scripts” folder
is named as per the task they are performing. Below is the brief explanation about the
functionality of each script:
14. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
14
Brower Start: Script to initialize the browser and to navigate to OHMS website.
Authenticate: Script which will help the user to get logged-In to the OHMS and later to
get logged-Out.
Creating Program Manager for Home Company: Script to create a person for the
home company and later to delete this person from the system.
Assigning Program Manager Role to Home Company person: Script to assign
Program Manager Role to the newly created person and to generate credentials and later
to revoke the assigned role from the same person.
Creating Nurse for Home Company: Script to create a Nurse for the home company
and later to delete the nurse from the system.
Assigning Provider Role to Home Company Nurse: Script to assign Provider role to
the newly created nurse and to generate credentials and later to revoke the assigned role
from the same person.
Creating Client Company: Script to create client company.
Creating Client Company Sites: Script to create sites for client company and later to
remove these sites from the client company.
Creating Client Company Divisions: Script to create divisions for client company and
later to remove these divisions from the client company.
Creating People for Client Company: Script to create employees,client admin and
company manager for the client company and later to remove these people from the client
company.
Assigning Roles to Client Company people: Script to assign admin role and company
manager role to the concerned people and later to revoke the assigned role from the same
people.
d) Selected Tool
Below are few of the code snippets which have been created for OHMS using C# and selenium
Webdriver. Appendices can be referred for the code snippets of all scripts.
Start browser class: It has implemented the three major drivers namely: Chrome, Firefox and IE.
Depending on the user requirement, user passes a driver name from the main class. Once the
driver name gets passed, the driver gets automatically initialized in the “Start Browser”. After
initializing the driver, “Start Browser” returns the driver to the main class and now main class use
this driver to execute the actions on the OHMS. The complete code for this class can be seen in
Figure 6.
15. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
15
Figure 6. Start Browser Class
Authenticate Class: The test scripts which is created for the login credentials and then for logout
is shown in Figure 7. The main class calls this authenticates class and at the same time passes the
driver and the login credentials to this class. This class receives the parameters and at the same
time inherited Base class so that it can implement the up and down methods. In up methods, the
script is trying to login to the OHMS using valid login credentials and once all the entries are
made, it finally logout from the OHMS using down method.
Figure 7. Authenticate class
16. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
16
4. RESULTS
The results of the test scripts execution are shown in Figure 8. The snippet shows what all test
scripts has been executed along with their execution result. The first half of the results have
covered the scenarios related to login as an Admin in the OHMS, creating PM followed by
creation of the client company and employees for that company and then assigning different roles
to these people according to their profile.
The second half of the result is about revoking the different roles assigned to the people, deleting
the created entries and finally getting logged-Out from the OHMS. Deletion of these entries was
critical for this project as Company had limited database storage. And also, earlier these entries
were getting deleted manually by the database admin which was again a time consuming activity.
Hence by automating the deletion process, testing team has saved a lot of effort and time.
Figure 8. Test script execution result for OHMS
17. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
17
5. DISCUSSION
This paper main focus was to create automation test scripts for OHMS based on the client
requirements and later to create a suite which will be used for regression testing later. Creation of
automation regression suit is accomplished by using Visual studio and selenium Webdriver with
C# programming language.
The major issue Company was facing was the amount of manual efforts which were used to test
the whole application manually again and again whenever a change is introduced to the
application. These midway changes were getting introduces because of various reasons which
includes change in client requirement, defect fix or feature enhancements. Another bug challenge
for the company was the need of physically going to client location to validate the correct
installation of OHMS in client premises. Research papers and the requirements of this project
helped to determine the need of going for regression automation testing. Moreover, budget
constraint for OHMS suggested the team to go for the open source tools. These are not only free
but also have a huge community support.
Due to involvement of diverse clients, the company was not having a clear definition of the
requirements therefore it was practically impossible to make an estimation of the time and costs
that would be involved in this project. As a result, this paper suggested adopting scrum
methodology. It is flexible and adaptable in nature. In addition to this, Client feel more involved
as they have the option to see a project’s progress throughout its lifespan—not, giving them an
opportunity to collaborate and watch the project move from start to finish. In addition to this there
are many research papers which support the use of Scrum methodology for a successful delivery
of a product.
There were few issues which were faced during this research. One of them was having limited
amount of database for OHMS. As a result, it was important to delete the data whenever a new
entry is made in OHMS. Another issue was the data which was getting entered into the
application was getting linked to the other database following primary-foreign key concept.
Hence it was impossible to delete the primary keys without first deleting the linked foreign keys.
To resolve the above mentioned issues, this paper suggested the idea of creating a deleting
mechanism as well for the scripts. So, for every entry which has been made in the application
there was a connected delete mechanism and hence the need of up and down method came into
the picture.
One more issue which was found during the research was related to the web elements. Web
elements are the critical part for any web automation testing. These are the interactive elements
on which the action is actually performed. There were few web elements available in the
application that were not assigned unique id or name and were changing the values dynamically
which made their detection quite difficult. To overcome this problem, it was decided that testing
team need to make a list of all these types of web elements and need to ask developers to assign
unique ids. In places where giving unique ids were not possible, relative Xpath have been used.
6. RECOMMENDATIONS
On the basis of the issues which were faced during this research, below are the few
recommendations:
Introducing automation testing in the early phase of software development is not advised.
Automation tested should only be approached once the critical functionalities or features
of the application have been stable and freezed. OHMS is still in its early development
18. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
18
phase and new features are still getting added to this application. Continuous change in
these critical functionalities will require rework in the automation scripts, affecting the
time and effort of the testers.
Before going for the automation testing, product should be thoroughly tested manually.
At time absence of manual testing or investing less time in manual testing adversely
affect the time required for automation testing. The same issue was faced while
automating OHMS. Many a time while creating scripts, there were few critical bugs
which were found. As a result, creating scripts for those particular functionalities was
getting on hold until the issue is fixed hence impacting the time frame which has been
assigned for automation.
It is also recommended to use framework like TestNG for easy maintenance of test
scripts and for reporting purpose. Currently console output has been used to reflect the
test script execution results. TestNG is very helpful for unit testing, it upholds parallel
testing and group testing, and gives a user-friendly reporting experience.
It is also recommended to use defect reporting and tracking tool. A bug tracking tool not
only helps in reporting and tracking of bugs but also ensures that the flaws are removed
and bugs are fixed. It helps the testing team to recognize the repetitive issues and come
up with a permanent solution. Since bug tracking software helps to segregate high and
low priority issues, development team can focus on the high priority stuff, instead of
wasting time on the minor issues.
7. CONCLUSION
This paper focuses on creation of automated regression suite for OHMS using open source tools.
This paper have tried to help the company in overcoming its two main problems which include
too much of manual efforts in the execution of same test cases again and again and the time and
cost required to validate the correct installation of the software in client premises. The frequency
of OHMS builds to meet frequently changed requirements mean that certain tests must be run
over and over again to ensure that changes to software applications have not impacted the
integrity of OHMS. Automated Regression suite will verify that existing software performs
correctly even after it has been updated. By creating automation regression suite, now team can
validate if the application is working fine with just one click and can execute the suite as many
time as needed to check the critical functionality of the application. It also helped the team to
ensure if any major or minor changes which has been made at later stages due to client
requirement has impacted the critical functionality of the application. This report has also
highlighted few issues which have been faced during the testing and the alternatives taken by the
team to tackle these bottlenecks. For issues related to the database constraints, testing team came
up with the idea of creating deleting mechanism, which would run automatically once all the
entries have been created. The current research will provide guidelines to the future researchers
on how to create an automated regression suite for any web application with the help of open
source tools namely Visual Studio, Selenium Web driver and Trello.
19. International Journal of Software Engineering & Applications (IJSEA), Vol.11, No.1, January 2020
19
REFERENCES
[1] Shai Fine, S. U. (2004). Probabilistic regression suites for functional verification. In Proceedings of
the 41st annual Design Automation Conference (DAC '04) (pp. 49-54). New York, NY, USA: ACM.
[2] Dudekula Mohammad Rafi, K. R. (2012). Benefits and limitations of automated software testing:
systematic literature review and practitioner survey. In Proceedings of the 7th International Workshop
on Automation of Software Test (AST '12) (pp. 36-42). USA: IEEE Press, Piscataway.
[3] Stanislav Stresnjak, Z. H. (2011). Usage of Robot Framework in Automation of Functional Test
Regression. The Sixth International Conference on Software Engineering Advances.
[4] Prakash, K. S. (2017). A Comparative Study of Testing Framework with Special Emphasis on
selenium for financial applications. International Journal of soft computing , 148-155.
[5] Elior Vila, G. N. (2017). Automation Testing Framework for Web Applications with Selenium
WebDriver: Opportunities and Threats. In Proceedings of the International Conference on Advances
in Image Processing (ICAIP 2017) (pp. 144-150). New York, NY, USA: ACM.
[6] Jamshaid G. Mohebzada, G. R. (2011). SRP-plugin: a strategic release planning plug-in for visual
studio 2010. Proceeding of the 1st workshop on Developing tools as plug-ins - TOPI '11 (pp. 36-39).
New York, NY, USA: ACM.
[7] Johnson, H. A. (2017). “Trello.”. Journal of the Medical Library Association : JMLA , 209–211.
[8] M. Mahalakshmi1, D. M. (2013). Traditional SDLC Vs Scrum Methodology – A Comparative
Study. International Journal of Emerging Technology and Advanced Engineering , 3(6).
[9] Maurizio Leotta, D. C. (2013). Comparing the maintainability of selenium WebDriver test suites
employing different locators: a case study. In Proceedings of the 2013 International Workshop on
Joining AcadeMiA and Industry Contributions to testing Automation (JAMAICA 2013) (pp. 53-58).
New York, NY, USA: ACM.
AUTHORS
I am Anjali Rawat, QA lead in Born Digital, New Zealand. Before this I was working
with Wipro Limited, India as a Test Analyse where I get an opportunity to work with
clients like Vodafone, Cisco and Bharti Airtel. I had experience in Networking,
database testing, regression testing, manual testing and automation testing. I am
passionate about testing and love to deliver quality product to the customers.
Dr. Shahid Ali is a senior lecturer and IT program leader at AGI Education Limited, Auckland, New
Zealand. He has published number of research papers on ensemble learning. His expertise and research
interests include ensemble learning, machine learning, data mining and knowledge discovery.