Software Testing and Cost Challenges

Section I: Introduction and Overview

Introduction:

Software developers have begun to increase investment in the software testing concerning the quality of software model. Sometimes testing costs will be up to 60 % to 80% of the total cost of the software. Given that software testing can result in test team busying testing the product rather than producing new or doing maintenance to the older version to match new demands and requirements, this approach can cause severe redundancies, especially in a small and medium organization. The ample investment for some small and medium enterprises is not realistic due to which enterprises are facing a crisis of survival. As such, given the increasing demand for reliable, optimization, user efficacy, and interactive system in contemporary software environment characterised by complex codes and rapid evolution draw concern whether PaaS solve the problems associated with software development and testing.

The aim of the project:

The purpose of this project is to create a java application and test it in different cloud environments namely Google cloud platform, Microsoft Azure. After testing in the cloud environments evaluate the features of them from the acquired results.

The objective of the project:

In an attempt to aim to address the creating java application and testing in difference PaaS platforms, this study was driven by the following objectives:

1. To critically evaluate the concepts and findings related to software development, testing, Cloud computing, PaaS, and challenges faced as outlined by previous studies

2. To create an application, test in different cloud computing services namely Microsoft Azure and storing the code in the repository by conducting push, pull, and commit in the Git hub on Google cloud platform, Azure.

3. To evaluate the features of a cloud environment related to the development and testing software by stating the advantages and disadvantage of the results obtained from the testing performed on the software.

4. To draw a conclusion on the results from creating, testing, and storing java application on cloud platforms highlight its viability, reliability, user-efficacy, and optimization

Section II: Research

Background Research:

Over the past decade, software especially mobile applications are increasingly developed to closely relate to people's lives, such as transportation, finance, health sector, business, construction and building, defence, and so on (Peizhang and Dewei, 2017). Since the development of standardized programming languages in 1950s into higher-level and easily understood by human programmers, software has risen into integral part of daily industrial and business operations. Similarly, for the same period, human-computer interaction (HCI) though increased rapidly resulting in enhanced usability and user experiences. As pointed by Shneiderman et al. (2016) and Preece et al. (2015), under HCI, users were able to interact directly with sophisticated computers system. The consequence of this repaid expansion saw not only more attention given to quality of software products but also reducing significantly the size of computers reaching out to less experienced users. As a result, the development in software and HCI expanded to incorporate multiple disciplines that include human-factors engineering, cognitive science, and computer engineering. Essentially, the evolution of software from machine languages has been rooted on need to enhance user experience over increasing levels of both simplicity and complexity. Before the rise of HCI, the computers were essential accessible to academicians, professionals, and other few hobbyists with limited users’ base.

Whatsapp

Software Evolution:

The term software engineering was coined in the 1960s with aim of averting the ‘software crisis’ that emanated from difficulty in writing useful and efficient software and computer programmes largely attributed to the complexity and power magnitude of computers (Jalote, 2012; Mall, 2018). Regular developing, maintaining, and updating software has ushered in inevitable software evolution leading to the introduction of major changes that include security changes, adding or removing some equipment, environmental changes, optimization, and requirement changes (deleting components perceived obsolete). Modification of this software to correct faults and enhancing the functionality of the system has become common practice among the users primarily business entities. Researchers and scholars have grounded the arguments grounded on Lehman’s laws alluding that maintenance is evolutionary and its decision is based on the need to understand the system and software over time (Skoulis et al., 2014; Yu, and Mishra, 2013). Such concepts code refactoring that involves a process of restructuring existing code (software) without affecting its external behaviour but improving non-functional attributes and code readability can significantly reduce complexity as software evolve. Nevertheless, with the rapid development of the scale of software advancement and software structure being more complicated, this results in increasingly challenging to ensure the quality concerning the software.

Testing Evolution:

Currently, small and medium-sized projects have increasingly adopted extreme programming methodology to counter rapid changing software requirement. Research has demonstrated that software failure is traceable to the ineffectiveness of the testing system. In an attempt to counter challenges emanating from ineffective testing, studies have recommended having regular testing done by competent programmers. Although test-first approach aids in nailing down precisely the behaviour of the system while considering the specification and functionality of the software before been written, such test-driven development relying on repetitive testing that can be extremely difficult in testing especially in situations where full functional tests in determining the failure or success of a system. Coupled with challenges associated to end-user needs and demands (short schedule, zero deficit, and high performing products) and hardware demand, fixing enormous errors and bugs during the development process is perceived as a crucial stage. Due to the complexity and interactive nature of software, manual testing with real-time requirements are perceived unreliable, if not impossible.

Cloud Computing Environment:

Corporations are frequently embracing the Cloud platforms toward developing also deploying SaaS-based applications. As noted by the authors (Goessling, and L. Jackson, 2018) and (Wong & Goscinski, 2013) this approaches of using the third party provided software and hardware tools provide a resilient and optimized environment for development process in addition to enabling the developers to focus on creation and running applications rather than maintenance underlying infrastructure and services. Primarily, the PaaS eliminates the capital expenses traditionally invested in developing hardware and services in addition to offering accessible and resilience. The concern of service outage, provider lock-in, and infrastructure disruption affecting significantly productivity and reliability has been raised. Mushtaq et al. (2017) asserted that cloud computing environment is mainly authorized via the virtualization technology where the host system is said to operate the application known as the hypervisor. The latter would end up generating one or even more virtual machines while trying to simulate the physical computers. Mushtaq et al. (2017) further noted that such simulations give room for operations of any software linked to the operation system as well as the end user application. Physical devices, in this context, are not limited to the processors, hard drives and processors that are introduced in the data centres. Effective management of the cloud computing environment resides with the servers and a perfect combination of the management layer, the virtualization layer as well as the software layer. In addition, the cloud computing environment constitutes the cloud computing architecture characterized by cloud basic characteristics, cloud deployment models, cloud security and cloud service model.

Cloud computing with Software Testing:

Krutz and Vines (2010) conducted a research in software testing and noted that the cloud framework has always been a subject for programming testing. Most of the organizations would go ahead and do all the testing for the purposes of guaranteeing conveyance of superb administration Sullivan (2015) took note of the testing cloud applications meant for Google Cloud and Azure. Sullivan (2015) asserts that the Google Compute Engine is known best for performance but run short of the list of services meant for testing, coding as well as deployment. The appeal made by most of the software developers entail inclusion of such services like cloud monitoring, cloud trace, Google deployment manager and the cloud security scanner. However, Sullivan (2015) insists that the testing cloud applications provide the opportunity of collecting the performance data while performing the unit tests. For instance, Google’s cloud monitoring is known for generating alerts as well as populates the performance dashboards within the production environment. Notably, small changes would frequently execute the code thereby generating an impact on the overall performance. The cloud traces services embedded in the Google App Engine is known for collecting performance data via a remote procedure. The same is passed on to the App Engine Services that supports the process of identifying the long running as well as inefficient operations. Besides, the cloud security scanner could also identify the vulnerabilities which include cross site scripting as well as mixing of the HTTP and the HTTPS traffic. Furthermore, testing cloud applications could also be extended to Microsoft Azure (Riungu et al. 2010). The latter facilitates testing as well as deployment tools meant for cloud applications. Notably, the visual studio online is regarded as a software development platform said to manage the application code as well as the tracks developer tasks. It equally supports the agile development models substantiated by continuous integration, bug-tracking tools as well as planning. The visual studio application gives room for the preview mode believed to emerge as the monitoring as well as cloud testing services (Sullivan 2015). The application paves way for developers as well as the cloud administrators to essentially monitor the ASP.NET and the relevant java applications said to be running in Azure. It should be noted that tools are never the absolute requirement meant for cloud application testing. However, developers need clearly defined procedures. This also supports the fact that majority of the cloud providers would endeavour releasing new service in the market. Some of them include monitoring tools, code management and operational support among other services.

Java EE and Java applications:

Notably, Java EE is said to be the mainstay of the known server side software and is dominantly applied in many software platforms. However, there are no cloud-centric standards or specification in the latest Java version. Java applications are believed to have been seen as enterprise applications that would run on a dedicated server infrastructure. In case an enterprise set up a Java application, then there would be a likelihood of setting up the requisite hardware infrastructure (Livshits and Lam 2005). Java started appearing in almost every cloud or hosting solution before it became widely used with supported languages via the cloud. The Java platform is said to have staged better scores when compared to the close counterparts such as Ruby, Python and PHP among others. This is due to a number of reasons including the fact that Java is more robust, distributed, and scalable and bears different applications.

Literature review:

Broadly, this chapter covers the findings, discussion, and inferences drawn from existing studies related to the research topic, aim, questions, and objectives. Driven purposely to highlight and critically review the ideas, conclusion, concepts, and theorised views of researchers and theorists, it develops knowledge gaps by analysing current knowledge that includes substantive findings and theoretical contributions associated to cloud computing, software development, management, testing, and updating, and software architectural attributes. Therefore, it encompasses such concepts and discussion of code refactoring, test-first, Lehman’s theory, waterfall model, modelled around software development and testing. White box testing technique is applied in this project as the code structure is known to the tester.

Linkage to aims:

The initial stages of this research project were to identify the research topic and objectives. This was followed by reviewing the existing literature with the aim of linking the current knowledge bundled within concepts, theories, findings, and conclusion of other researchers and research problem. The current step is the creation of an application developed using Eclipse IDE software. After completion of development of the application, it will be transferred to a cloud platform for testing and storage then followed by data collection and analysis.

Section III - Methodology

Methodology:

Based on the description outlined by Bryman (2016), research method outlines the process and tools followed in data collection and analysis to discover new information or understanding existing better. In this case, the research focused on creating java application and testing in cloud computing aimed to capture various features that include advantages, disadvantages, and applicability within user efficacy and developers’ optimization of a given software. It adopts inductive research approaches grounded on through observation then pattern drawn that subsequently used to come up with results-based inferences. In this project, the waterfall method is used/performed, a linear-sequential life cycle model which extensively concentrates on the development of the project and quality of the project rather than speed. Figure 1: The Phases of waterfall model as shown in the below image. Some of the advantages of using waterfall method are Everyone gets up to speed quickly, Timescales are kept, Testing is made easy, The outcome of the project is crystal clear, Deals with issues in the design, Result acquired is as planned.

dissertationhomework

A research method can be described as a strategy, a process or even a technique applied in data collection or even evidence analysis for the purposes of uncovering either new information, or provides a better understanding. In this context, the project aids creation of a java application and test it in different cloud environments. Thereafter, the process would be followed by testing the application in the cloud environments evaluate the features of them from the acquired results (Balaji and Murugaiyan 2012). Therefore, the project does not deviate from software development process which deploys a number of methods. Some of the methods include the agile software development in which the requirements as well as solutions revolve around the interplay of the self-organized and cross-functional teams. Waterfall development, on the other hand, is regarded as a sequential development approach that constitutes a number of phases ranging from software requirements specification to maintenance (Mahalakshmi and Sundararajan 2013). Other methods include offshore development and spiral development. In this project, as mentioned earlier, waterfall method is more suitable for this project. A few features of this method make it convenient for creating the java application and testing it on a cloud platform. First, the method divides the project into sequential phases. Secondly, the method puts more emphasis on planning, target dates, budgets, schedules, and implementation among other items. Lastly, the method addresses the concerns of tight control, which needs to be maintained over a given life of a project through an extensive written documentation (Bassil 2012). The prime advantage the waterfall method has over other methods includes the fact that the results of the project can be obtained as planned.

Data collection/Project design

The Waterfall method has been regarded as the most convenient method that would serve the objectives of this project as regards creation of java application and testing it on cloud computing platforms. However, this project goes beyond the development of the software and verification of its use. Behind the waterfall model, there is an extra ingredient referred to as the Software Development Life Cycle (SDLC). The latter forms the most convenient technique for project design. The method is regarded as a process, at the same time, and applies most in designing, developing as well as testing the high quality software (Mahalakshmi and Sundararajan 2013). Notably, SDLC aims at producing quality software side meet as well as exceed customer expectations. SDLC was picked, among other choices, because it covers what the Waterfall model offers and does project design in an extensive manner. Various advantages of SDLC include the capacity and ability of handling complex projects as regards software development. Secondly, SDLC avails a common framework that can easily be understood by the developers (Radack 2009). Besides, SDLC defines the expectations noted within the business areas while ensuring a written approval. Lastly, this technique of project design can accommodate teams that are involved in different phases of project development. However, SDLC can rarely be applied to either evolutionary or simple projects with limited resources. This is due to the fact that the method can be a bit expensive for lighter projects.

Criterion

The criterion for data collection obeys the simple procedure provided by the waterfall SDLC model. The criterion provides a continuous process that starts from the decision to work on a project to the time the full project is introduced into the market. The following stages shall be incorporated in this project.

i. Planning and the requirement analysis: The project will engage significant definition of the requirements of the system. This also entails briefing the relevant teams on the requirements. Question and Answers are allowed at this stage but this should only happen among the team members.

ii. Designing and development of the project architecture: This is the second phases where developers are engaged in designing the relevant architecture. It is recommended that the developers should define the most relevant technologies that would be applicable, the team load, the budget, the timeframes and limitations.

iii. Development and programming

This is the actual development phase where developers and programmers work on the source code while keeping in mind the requirements. The administrators would be engaged in adjusting the software environment while the front end programmers would work on the user interface. Mini-stages engaged at this phase include

a. Algorithm development: It can be a pseudo

b. Source code writing: Depending on the language such as Java or PHP

c. Compilation: In case of modules

d. Testing and debugging

iv. Testing: This phase is regarded as a subset of other stages. At this point, the code flaws felt absent during the development phase can be detected, documented and channelled back to the developers or programmers. The testing process can take several iterations up to the time critical issues are sorted in the software workflow.

v. Deployment: Once the product is fully tested, it will be ready to be deployed. However, this also opens room for maintenance and operational requirement depending on the plans. However, the deployment in this context shall be served in small scale as preferred against industrial-based application.

Order Now

Tools and technologies:

This project employed the use of both hardware and software tools, which facilitated the development of Java application and subsequent it is testing and storage. Hardware comprises of personal computer and router (internet connector) whereas the software includes Eclipse IDE. The latter is applicable in computer programming and mostly applied by the Java developers. It constitutes the base workspace and the plug-in system. Importantly, it makes use of cloud platforms for testing and storage that include Git hub on Google cloud, Microsoft Azure.

Justification and support of Choices

The project has picked on various methods and tools seen relevant is making software development a success. Three key items are thought to define the research process in this context. These include the waterfall software development method, the SDLC project design and waterfall SDLC criterion. The choice of the waterfall method came after checking on its properties, which defines a step-wise approach that moves from one phase to another. Waterfall method has the capacity of handling complicated projects such as the ones that entail software development process. The SDLC was seen to be more convenient because of the vast coverage of the project design and the sense of applicability. Lastly, the waterfall SDLC criterion provides a procedural process that guides the developers through each phase.

Ethical issues and risk management:

Although this research project did not involve human participants during data collection, it ensured ethical considerations were and risks associated with software development, the authenticity of research, and reliability of the data and information. As such, it strived on ensuring the data and information collected were accurately represented and references. Importantly, factors surrounding user interface, system modifications, and testing were considered during the development and testing process.

Section 3: Planned work

Project Plan:

The following tasks are the scheduled project plan stages

Review of existing literature

Drafting data collection methods and analysis

Development of an application

Testing in Cloud providers

Data collection

Data analysis

Discussion and conclusion

Discover additional insights on Role of Digital Communication Platforms by navigating to our other resources hub.
Bibliography

6.Mall, R. (2018). Fundamentals of software engineering. 5th ed. IIT Kharagpur: PHI Learning Pvt. Ltd., pp.2,3.

9.Sarna, D.E., 2010. Implementing and developing cloud computing applications. Auerbach Publications.

10. Shneiderman, B., Plaisant, C., Cohen, M., Jacobs, S., Elmqvist, N. and Diakopoulos, N., 2016. Designing the user interface: strategies for effective human-computer interaction. Pearson.

9.Skoulis, I., Vassiliadis, P. and Zarras, A. (2014). Open-Source Databases: Within, Outside, or Beyond Lehman’s Laws of Software Evolution. In: Jarke M. et al. (eds) Advanced Information Systems Engineering. CAiSE 2014. Lecture Notes in Computer Science, vol 8484. Springer, Cham, pp.379-393.

12. Radack, S., 2009. The system development life cycle (sdlc) (No. ITL Bulletin April 2009). National Institute of Standards and Technology.

13. Bassil, Y., 2012. A simulation model for the waterfall software development life cycle. arXiv preprint arXiv:1205.6904.

14. Mahalakshmi, M. and Sundararajan, M., 2013. Traditional SDLC Vs Scrum Methodology–A Comparative Study. International Journal of Emerging Technology and Advanced Engineering, 3(6), pp.192-196.

15. Balaji, S. and Murugaiyan, M.S., 2012. Waterfall vs. V-Model vs. Agile: A comparative study on SDLC. International Journal of Information Technology and Business Management, 2(1), pp.26-30.

16. Livshits, V.B. and Lam, M.S., 2005, July. Finding Security Vulnerabilities in Java Applications with Static Analysis. In USENIX Security Symposium (Vol. 14, pp. 18-18).

17. Krutz, R.L. and Vines, R.D., 2010. Cloud security: A comprehensive guide to secure cloud computing. Wiley Publishing.

18. Riungu, L.M., Taipale, O. and Smolander, K., 2010, November. Research issues for software testing in the cloud. In 2010 IEEE Second International Conference on Cloud Computing Technology and Science (pp. 557-564). IEEE.

19. Banzai, T., Koizumi, H., Kanbayashi, R., Imada, T., Hanawa, T. and Sato, M., 2010, May. D-cloud: Design of a software testing environment for reliable distributed systems using cloud computing technology. In 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing (pp. 631-636). IEEE.

20. Mushtaq, M.F., Akram, U., Khan, I., Khan, S.N., Shahzad, A. and Ullah, A., 2017. Cloud computing environment and security challenges: A review. International Journal of Advanced Computer Science and Application, 8(10), pp.183-195.

Sitejabber
Google Review
Yell

What Makes Us Unique

  • 24/7 Customer Support
  • 100% Customer Satisfaction
  • No Privacy Violation
  • Quick Services
  • Subject Experts

Research Proposal Samples

It is observed that students are not able to pull out the task of completing their dissertation, so in that scenario, they prefer taking the help of the Dissertation Writer, who provides the best and top-notch Essay Writing Service and Thesis Writing Services to them. All the Dissertation Samples are cost-effective for the students. You can place your order and experience amazing services.


DISCLAIMER : The dissertation help samples showcased on our website are meant for your review, offering a glimpse into the outstanding work produced by our skilled dissertation writers. These samples serve to underscore the exceptional proficiency and expertise demonstrated by our team in creating high-quality dissertations. Utilise these dissertation samples as valuable resources to enrich your understanding and enhance your learning experience.