Action Research Paper

Posted by Winnie Melda on November 2nd, 2018

Iteration 1: Requirements Gathering and Documentation

Plan

The iteration entails the gathering of the necessary requirements that will act as the basis for approaching the improvement on the calculator. The requirements to be gathered during this phase include those about the programming, project development, project management, system testing, and system documentation. All those elements are aimed at helping the researcher to get to understand the project at hand better before embarking on its development.  Therefore, the researcher plans to first of all come up with the research objectives because without having an objective it is hard to accomplish given tasks in an effective way. These objectives serve as the road signs in the research so that it is easy for the researcher to check from time to time if he is on track.

The researcher plans to carry out secondary research using the available literature because this research is aimed at doing an intense research and getting insight into the area of Java development. Therefore, doing own research will help the researcher to acquire specific problem-solving skills. The researcher plans to have an understanding of the specific Java programming skills that are in the requirement to accomplish this project, the system analysis skills, the project development skills, the system testing skills among other relevant skills. The next thing that the researcher plans to do after understanding the skills requirements is to document the system requirements both the functional and non-functional requirements. The researcher plans to use various methods and techniques to document the system (the system being the calculator) requirements. The deliverable for the system requirements documentation includes the declarative requirement statements, the use cases, the data models, the process models, and the business rules.  The researcher plans to integrate all these deliverables in a way that they can present a single overall view of the system requirements.

Action

Before the researcher embarked on doing intense research into the area of understanding the system as well as the skills requirements for the project at hand, he had to formulate the objectives that would guide the entire iteration.  The researcher then came up with the schedule for the entire iteration involving the requirements gathering and documentation. After that, the researcher then embarked on serious business towards gaining an understanding of the requirements. The researcher began with performing a search on the Web with the intention of getting the sites that would highlight in detail the Java developer requirements. The researcher typed on the Web the keywords “Java developer skills requirements” and got several sites with relevant information.

 All these sites highlighted indispensable skills requirements for Java developers including the soft skills and the hard skills. They also incorporated problem-solving skills, frameworks, other script languages, and various techniques that can help one to be competent as a Java developer. The researcher noted those skills and would be documenting them shortly.

The researcher then learned the specific skills about project development including the programming skills, the analysis skills, the system testing skills, and the entire project development life cycle. The researcher also learned about the things that should be in place before embarking on developing the project which is an improvement to an existing Java calculator development project. The user also examined various platforms including the Android platform as well as the Windows platform to name a few. The other requirements that were identified during this search were the soft skills; the communication skills.

The last thing that the researcher did during this iteration was to document the system requirements. The deliverable that were used in the documentation of the system requirements included the declarative requirement statements, the use cases, the data models, the process models, and the business rules. All these system requirement documentations were combined since there is no one single format that is complete in representing all the requirements. Because systems are required to do many things, the way requirements are also documented ought to vary.  The use of multiple formats/deliverables to support the various types of system requirements can result in the overlap of potential redundancy thereby making it necessary to integrate multiple deliverables in a manner that they represent the overall view of all requirements in entirety.

Observation

It was observed that a Java developer is required to have various skills both technical and soft skills. Many developers only focus on the technical skills without paying attention to the soft skills thinking that soft skills are unnecessary. The soft skills are also as necessary as the technical skills because they make the developer complete. "A Java developer ought to be well versed with the Core Java Concepts including object oriented programming concepts and patterns; file I/O and serialization; abstract classes and interfaces; and multithreading and synchronization. The others include generics; exceptions; constructs; Java Virtual Machine and memory management; Java keywords and much more" (Crocker, 2003). When the Java developer is hired to participate in the development of web-based applications, they should have knowledge of various platforms and technologies. These include JSP/servlets, web frameworks like Spring/Struts, markup languages like JSON and XML; service oriented architecture or web services; and Web technologies such as CSS, JavaScript, HTML, and Jquery.

It was also observed that the Java developers are supposed to have skills on with other related areas of application development. Java developers ought to have database knowledge and the related issues including SQL queries, stored procedures, cursors, and triggers. “Java developers should also be able to work long hours and have code optimization techniques. They should be well versed with the project and system development lifecycle” (Shavor et al., 2003). It is also required for a Java developer to be a team player and have the ability to work independently but ensure integrity and reliability. The Java developers should also have the ability to establish as well as maintain productive working relationships when they work with multi-disciplinary teams. The researcher also observed that Java developers also ought to be quick learners with the ability to learn new technology and skills from scratch.

The various formats for presenting the requirements that are, declarative requirement statements, the use cases, the data models, the process models, and the business rules were very informative. The researcher observed that various formats are integrated so as to present all the features and requirements for a given system. The declarative statements are those that present what the system must or must not do; that is, they talk about the solution rather than the system (Xie, Dai, & Poh, 2004). The use cases demonstrate the interaction between the system requirements; the data models define the data that is the requirement for a given system to utilize or control, and the process models show the workflow of processes for a system.  Lastly, “the business rules define or constrain particular aspects of the business. They are intended to assert the business structure or influence the business behavior” (Wolf, 2012).

Reflection

The iteration on the gathering of the requirements and documenting them turned out to be successful based on various things that went on well as planned. For one, the time was well used in that although it was limited, the researcher managed to accomplish all the required activities in the right time. Using the specific keywords to search for the information helped the researcher to gain access to the specific information to which he wanted to have the access. That also meant that much time would not be lost in searching for the information. It is also indispensable to note that resources that were used for reference most of them contained useful, reliable information as they were peer reviewed and scholarly. Tackling the whole research activity alone helped the researcher to acquire the problem-solving skills as he had to directly face the problems at hand without getting assistance from any expert.

It is though this iteration that the researcher also got to appreciate the role of Java developers in any organization. They are involved in creating useful applications and systems that can solve the problems that the society is facing. Time management is a useful skill that was acquired during this iteration while the researcher tried to work and make sure that every deliverable is produced at the right time with all the deliverable requirements. The researcher also got to understand the essence of formulating the research objectives and having to follow them to the letter. Through the skills gained from this iteration, the researcher will be able to work independently but make sure that the requirements are made even without any supervision. As the researcher got to manage the research single-handedly, he could also be able to manage any project effectively in the future.

Working alone cannot be said to be a Holy Grail idea. The researcher must have missed out vital skills that he could have gained had he worked with other experts in this area. The researcher has planned to work with the Java developer experts in the future so as to make sure that he acquires as many skills as possible. The researcher will make sure that he invites some experts who will help to impart crucial skills during the subsequent iterations. The researcher also did not adequately cover the documentation of the system requirements, especially the requirement format types. The researcher, therefore, plans to ensure that he creates more time for such vital activities so as to acquire more knowledge in the area he is doing research. However, in overall the iteration went on very well as it had been planned.

Iteration 2: Acquisition of Skills Specific with the Calculator App Development

Plan

In this second iteration that entails the acquisition of skills, the researcher will be involved in getting trained with the aim of understanding how to make a calculator so that it will be easy during the project development iteration to come up with the calculator.  During this iteration, the researcher plans to invite three expert Java developers so that they can impart him with the specific skills on how to make a calculator using the Java technology. The application is intended to run on the Android platform because Android is a popular platform as many people use the cell phones that run on this platform. The researcher plans to set the project objectives and then send formal invitations to those expert Java developers who will then confirm their availability before the schedule could be drawn.

The iteration is intended to run for two weeks, and throughout this period the researcher will collaborate with the resource persons to make sure that he thoroughly comprehends how to make a calculator so that it will be easy to analyze and improve the already existing calculator during the subsequent iterations. After the resource persons confirm their availability and schedule, the researcher plans to search the Web with the aim of getting to understand the various steps that are involved in planning through to designing, developing, testing and deploying the new system. The researcher then plans to gather the requirements including a working computer, a drive to learn, and Android device, and an operating system such as Linux OS. Setting the platform ready will help to avoid the last minute rush that may cause issues.

Action

The first thing that the researcher had to do so as to have him better prepared to take up this task of skills acquisition was to ensure he made formal applications informing the three resource persons about the training and confirming their availability. The researcher after confirming the availability of these three senior Java developers who will be the resource persons, the researcher conducted a search on the Web to understand the steps that are in requirements to accomplish the development of the project at hand. The researcher came up with ten steps that he believed would be crucial during the training with the expert Java developers. The iteration would take two weeks and these weeks were enough to learn everything that would be necessary to accomplish the project.  The researcher then collected everything and made it ready including the downloading of the Java Development Toolkit (JDT).

The training took place from one of the resource person’s company’s halls as that was the most convenient place from where the training was to take place. The resource person then arrived on the first day; they had some brainstorming with the researcher with the aim of understanding what the project was about before commencing the training. The training started with the guide on how to download the Android Software Development Kit (SDK) so as to provide the needed tools that are necessary for the training. Those tools included the AVD manager, various plug-ins to be used in the background, and the Eclipse development environment. The experts then assisted the researcher to set up the AVD (Android Virtual Device) and left it starting since the booting seemed to take a lot of time.

The experts then helped to set up the Eclipse environment so as to get the team started on programming this Android calculator application. The researcher then received the training on how to create both the input and output text views for the layout as these were necessary for using the Android calculator application. The Java experts then trained the researcher on how to design and create buttons as they are necessary for the application. The Java developers then trained o how to set up the main activity file that was created earlier. That code formed the background code for the program, and it also allowed the text views and buttons to function properly. They then trained on how to make the buttons to function correctly using the Java activity file. The results were confirmed, and testing was performed to find any defects in the application before deploying it. All the training took place manually as the experts also showed some videos to show each step.

Observation

It was observed that the training was very much involving because of the practical tasks that were involved.  It was observed that any project requires the developers to be aware of the software development life cycle. The researcher observed that all the steps of the typical sequential software development methodology were leveraged during the training.  He also observed that the expert developers, Mr. Kimsen. Mrs. Sheila and Mr. Harrison were well versed with the techniques for developing the Java applications from the way they handled the application without any difficulty.  It was also observed that calculator development is a stepwise process that entails a series of steps right from the setting up the environment through to development and running the application. The researcher also observed that setting up everything ready before the actual development saved much time.

Android is a mobile OS that is similar to Symbian, Windows Mobile, iOS, and others (Butler, 2011). It was observed that the Android SDK offers a rich set of tools such as the debugger, libraries, documentation, sample code, and handset emulator. Android applications are easily developed with Eclipse (the official development platform for Android) with the help of a plug-in known as Android Development Tools (ADT). The ADT helps to leverage the rich feature found in Eclipse including a content assist, open resources, JUnit integration, Java search, and other different views as well as perspectives for the Android app development (Batyuk et al., 2009). It was also observed that Android’s wide array of widgets helps to facilitate the creation of rich user interface for the application. Additionally, the detailed Javadoc simplifies the development process. In essence, android is a powerful app development framework for mobile apps and the coding Java technology integrated with the Android Development Tools for Eclipse thereby making it easily adaptable by beginners.

Reflection

The iteration was very much enriching as the researcher got to learn the way to approach and accomplish the development of a calculator application on the Android operating system. The knowledge acquired during this iteration will be imperative in not only during the project development but also in the researcher’s entire career path. The researcher got to learn how to us the various tools provided by the Android mobile platform and how they help in accomplishing the task of developing a Java application on Android. The researchers availed themselves and this made the training a success since without their help it would have been hard to learn all the things that the researcher learned during this iteration. Also, the trainers went at the pace of the researcher thereby making it easy to understand every step of the calculator app development.

The iteration was very enriching with the Java development skills about the development of a calculator. However, there are things that ought to be improved in the future as the researcher observed that they did not go very. For one, the trainers began with the technical tasks while ignoring some simple tasks because they assumed that the researcher had some background knowledge. However, they assumed many things including those that would have been crucial to the researcher. The researcher intends to make sure that he conducts intense research with the intention of acquiring any additional skills that he feels were missed out during the training session. The researcher also feels that the time was limited for accomplishing all the tasks and activities involving the training.  The researcher plans to take more of his free time so that he can revisit the skills acquired and also learn any new things he feels left out.

Iteration 3: Analyzing Existing Calculators

Plan

This iteration about the analysis of the existing calculators will involve working with other experts who are skilled with analysis skills so that they can help to guide the researcher on how to go in ensuring that the analysis is done well and the defects with the current calculators identified so as to identify the room for improvement. The analysis of systems helps to judge if a system meets the user’s needs. That is because every system is created to solve the needs of the user community. The analysis of the current calculators win the market built on the Java platform will be analyzed with the aim of identifying the problems that should be dissolved through the improvement of the current system.  The analysis is planned to take eight working days through which as detailed information regarding the current systems will have to be gathered from the user community so as to be well informed about the current system.

The researcher plans to work with the resource persons with the aim of ensuring that he acquires the knowledge on what grounds to analyze a system and what the approach should be. Nevertheless, the researcher intends to carry out this iteration in four steps that will help to transit from the less complex task to the most complex concerning the analysis of the current systems. First, the researcher intends to start with the understanding of the user's community or the key stakeholders of the calculator, then capture the stakeholder requirements, categories the requirements; and lastly interpret and record those requirements. The current calculators will be analyzed by how they meet the user requirement and what additional features are in requirement so as to make them solve more problems and be applicable in more industries.

Action

The researcher met with Mr. Johnson, Mr. Bram, and Mrs. Belinda with the aim of concerning the analysis of the current calculator and identifying any features of functionality that ought to be improved so as to make them carry out more useful tasks to the user community. The resource person came from renowned companies, and they had a good experience in participating in major projects in their companies. The researcher collaborated with the experts to come up with the project objectives that were similar to the rough draft that had been prepared by the researcher. The analysis then commenced with the analysis of the various users for the calculator including the businesses, schools, and scientists among other users who use these calculators for various purposes centered on calculations.

The next thing that followed was to capture the stakeholder requirements. The researchers decided to request the user to meet the user community of the calculator and ask them the experiences they have had with the current systems and what they would like improved in the new calculator system. The researcher used various methods to get the feedback from the user community before rejoining the resource persons after two days with the data gathered so that it could be analyzed.  The researcher used stakeholder interviews and focus groups, and use cases. The information was then brought to the table, and with the help of the expert analysts led by Mr. Bram, the data was analyzed and then a mock-up prototype was build with the intention of giving the users an idea of what the new calculator will look like.

The next thing in the line that was done during this iteration was the categorization of the user requirements. To make the analysis work easier, it is of paramount importance to categorize the user requirements into various categories (Mrs. Belinda, Personal Communications, July 4, 2016).  They were grouped into four categories including the functional requirements, the operational requirements, the technical requirements, and the transitional requirements. After the gathering and categorizing the requirements was accomplished, the team then had to interpret and record those requirements and determine the ones that are achievable and how the new calculator system would deliver them.

Observation

There are several observations that were made during this iteration. First, the researcher got to understand the essence of collaborating with the user community for the purpose of understanding the system project requirements. Even if this was not included in the researcher’s earlier objectives, the expert's analysts incorporated it into the list of objectives and made sure that it was effectively accomplished even with the limited time. The user input is every important because the new system is tailored to meeting their needs (Wieringa et al., 2006). In understanding the stakeholders for a given system, the first step entails identifying show the stakeholders are, the next step involves working out their power, interest, or influence, and the last step entails developing a good understanding of the stakeholders who are most important so that the researcher can know how they respond and then win their support.

In capturing the stakeholder needs it was observed that using as many techniques as possible can help to gather as many requirements as possible. The stakeholder interviews, for instance, allow the researcher to understand each’s specific needs and views (Chung & do Prado Leite, 2009). Using focus groups helps one to understand the way the information flows between various divisions and helps to eliminate unnecessary requirements. The researchers also observed that the use of use cases to understand the stakeholder requirements enables the researcher to walk through the entire system or processes in a stepwise manner as a user. Through the use cases, the researcher can understand how the system will work (Sommerville & Sawyer, 1997). The mock-up prototypes also help to give the users the idea of the system they are expecting.

In categorizing the requirements, they fell into four categories including functional, operational, technical and transitional. The functional requirements define the way the product works from the user’s view while the operational requirements define the operations that should be performed in the background to ensure the product functions over a period (Robertson & Robertson, 2012). The technical requirements also define the technical issues involved in creating the product, and transitional requirements entail the steps required to implement the developed product or process seamlessly. It was also observed that to interpret the requirements correctly, it is crucial to make sure they are defined precisely, they are properly prioritized, the impact of change is analyzed, and the conflicts are resolved.  The feasibility should also be analyzed to find out if the project objectives are achievable.

Reflection

Analyzing the current calculators in the market so as to understand the things that should be improved in the current calculators was a crucial iteration.  The resource person that were invited to assist with the analysis of the current calculator product all of them turned up without fail. The time was also well utilized in that the iteration was completed within the allotted time and each deliverable was produced at the right time. Also, working with the resource persons to revise the project objectives helps to make sure that crucial items were included thereby helping to accelerate the success of the project. The stepwise process that was also used to analyze the requirements helped to make sure that each and every item was adequately addressed and consequently this made it possible to understand the project requirements.

The research during this iteration also faced some issues that the researcher intends to improve on in the future. For instance, the expert analysts told the researcher during the research to carry out a crucial gathering of requirements from the end users of the product being analyzed; that is, the calculator. That resulted in not getting enough information as many respondents were not willing to participate because they were not informed earlier enough so that they can create time for the same.  Conducting a survey is not something one wakes up one day and then begins to do, but rather one ought to opt adequately prepare for the same and inform the respondents in good time so that they can create time for the same. For that purpose, the researcher plans to make sure that in the future such a mistake will not be repeated.

Iteration 4: Project Execution

Plan

The purpose of this iteration on project execution is to implement the project in light of the requirements that have been collected. The items to be improved had been identified in the previous iteration, and the essence of this iteration is to implement those requirements by developing a better calculator that serves some more functions. The researcher plans to use the consultancy services of one Java developer who will be acting as the point of contact to assist with the necessary advice where stuck.  During this iteration, the researcher also plans to revisit the things that were learned during the training session as they would be helpful in this case. The project will go through the system development lifecycle phases that include planning, design, implementation, testing and deployment.  The calculator is intended to run on the Android platform because of its wide applications, but it can also be modified a little bit to run on PCs and other platforms.

The researcher first intends to download the SDK and the JDK as they are a must for accomplishing the Java project like the one in this research. The researcher then plans to leverage the available knowledge from the already developed projects to design the calculator as he also adds up a few functionalities as identified during the analysis process. The researcher then plans to use the design and then code the project as required by all the system specifications I the system specifications document. During the coding, the researcher plans to make necessary consultations with the expert Java developer so as to understand how to go when stuck. Unit testing is also another task that is planned to take place during the coding of the project so as to make sure that the units of the code are working together harmoniously as expected.

Action

Before the researcher did anything regarding this iteration, he had to inform an expert Java developer who was his friend with an experience of over ten years of participating in Java application development. The researcher then documented the system specifications during the planning stage so as to make sure that everything was in place before embarking on the developed. He also checked that the SDK, Eclipse, and the JDK were working properly. The researcher then started with the design of the system in a way that could give the additional functionalities as highlighted in the requirements specifications document. Effective design and implementation of a system can have profound positive impact on the productivity, efficiency, satisfaction, and accuracy in a wide range of environments. The researcher designed the application using the process outlined below.

 The researcher then turned the design of the calculator into a working system via the coding process using the Java programming language. The researcher started with the design of the front-end system, that is, the user interface; he then designed the backend system before combining the two using the index file.  The user also made sure to carry out unit testing of the application so as to make sure that all the various units and components of the applications worked together harmoniously minus any defect. During the coding of this calculator system, the user paid great attention to the additional features required by the users and also consulted the expert developer from time to time to ensure that he did not fall out of track. The researcher completed the prototype and then took to the consultant for scrutiny before he would develop the final product.

Observation

What was observed during this iteration was that an application development task requires that the developer have the user requirements in mind because one has to develop a system in response to the needs of the intended users? To make sure that the user requirements were duly put into consideration in the product being developed, the researcher revised thoroughly the requirements that had been gathered and then combined them into one document the requirements specification document. It was also observed that the most involving task in the project development task is the coding task. The researcher had to spend much time to make sure that each piece of code runs properly before proceeding to the next step. Any simple mistake during coding can be very costly. Therefore the developer had to be proactive in identifying any issues early enough and resolving them before they could escalate and be problematic to address.

The other thing that the researcher observed was that unit testing is crucial during the coding phase and it simplifies the task of the final testing. Unit testing is used to isolate the smallest testable components of the system and verify that they can as desired in isolation and when they are working together (Parkin & Australia, 1997).  However, unit testing does not mean that the whole system is free of bugs; final system testing has to be down after the development is done. Through this coding practice, the unit was also observed that as the technology develops, there is a large burden that is also placed on software developers to develop the software systems that can meet the changing needs of the users. It was observed that Java programming language is very helpful in creating applications that are rich with powerful features and are very interactive.

Reflection

The tasks of building a market-oriented software product are not something easy. However, this project went one very well. Irrespective of meeting many hurdles on the way, the expert developer was available for consultation from time to time. Also being proactive in identifying issues early enough helped the researcher to address issues in a good time before they could escalate and turn out to be very costly in the long run. Also, when the consultant was not available, the researcher turned to the web for help thereby making a good use of the time. There was the acquisition of the problem-solving skills during this project development especially due to the issues that were being encountered during coding. It is the first major project that the researcher had got involved in, and it enriched him with insight that would also play a vital role in his future career.

Implementing this project at hand was a good idea for the researcher because it has helped him to gain some confidence in participating in major projects in the future. The researcher also feels that he is competent enough to take up any related task.  The researcher believes that in the future he will take such projects single-handedly without even having to consult an expert but being consulted himself. However, the researcher also feels that the lack of involving more resource persons of various expertises made him miss some important skills.  This research was mainly aimed at acquiring skills and becoming competent in the area of Java development, and the involvement of as many experts as possible as required by the Action Research methodology would have resulted in the acquisition of many skills. The researcher plans to work more with experts in the future and gain more skills in this area of Java development before venturing into the job market.

Iteration 5: Testing and Deploying the Developed Product

Plan

Software product testing is the investigation that is performed to offer the stakeholders with the information concerning the quality of the software being tested (Beizer, 2003). The aim of this iteration of testing and deployment is to test the developed calculator software and ensure that the product meets the user requirements and it works correctly minus any defect. After the verification, the product will then be implemented in the available platforms ready to be used by the end users. The calculator system developed in the last iteration will be tested with the aim of finding any software bugs and also to verify that it is fit for use.

The researcher intends to leverage various types of tests including static and dynamic testing, white box testing, black box testing, visual testing, grey-box testing, and acceptance testing among other types of testing. The other types of testing that the researcher plans to carry out includes beta testing, continuous testing, destructive testing, development testing, alpha testing, functional/non-functional testing, usability testing, and conformance testing. The researcher also plans to test the developed product on various levels including the unit testing level (already accomplished), the integration testing level, the component interface testing level, the system testing level, and finally the operational acceptance testing level.

The researcher also plans to leverage various tools to carry out automated testing so as to compare the results that were obtained from the manual process with those obtained from the automated process. Of course, it is not every type of testing can be automated. Those tools that will be used for automated testing include the instruction code simulator and the hypervisor. After testing the completely verified product will be implemented or installed.

Action

 The testing started on August 28, 2016, and it would end on September 5, 2016. The researcher decided to carry it out single-handedly because of the knowledge he had acquired previously that he thought was enough to accomplish the testing task alone. The researcher gathered all the requirements so as to avoid wastage of time during the testing process trying to look for missing items. The researcher then began with static and dynamic testing. During static testing the researcher used reviews and inspections while in the case of dynamic testing, the researcher leverages test cases. Using white box testing approach, the researcher tested the internal structure of the system while he used the black box testing to examine the general functionality of the product without putting into consideration the internal workings. Other types of testing were also accomplished including beta testing, gray box testing, functional and non-functional testing among others.

Testing was also done at various levels including the integration testing to verify the interfaces and component interface testing to check the way the calculator system handled data that was being passed between various units and sub-system components. System testing was also done to verify that the developed system met the documented requirement during the planning. Finally, the operational acceptance testing was also done to conduct operational readiness of the product before the product would be implemented. Such testing tools as the program monitors, instruction set simulators, and the hypervisor were also leveraged to automate testing and the results compared with those of manual testing where applicable. After the product had been installed, the final testing was done so as to verify how the system works when installed on the various platforms. Alsop the testing of the product on various platforms helped to ensure that the product was platform independent.

Observation

The testing of a system is conducted with the aim of providing the stakeholders with the information regarding the quality of the system under test (Andrews, Briand, & Labiche, 2005).  It is being done to evaluate the properties of the product under test. It was observed that essentially testing serves six functions including 1) finding out if the system meets the requirements, 2) to find if it responds correctly to inputs, 3) to find out if it performs the required functions within an acceptable time, 4) to find out if it is adequately usable, 5) to find out if it is platform independent, and 6) to find out if it achieves the results desired by the stakeholders. It was observed that the testing of the developed system if one of the most useful phases in the software development. It is the one that determines whether the system will be usable (Beizer, 2003).

Testing of the software product demands that the testing team pay attention to the details of individual components and the general system.  Without the testing, it would be hard to determine that the system works on various platforms, is free of bugs, meets the desired quality requirements, produces the required output, and much more (Patton, 2005). It was also observed that many bugs of defects come up when the software has been installed. That is because the implementation platform is different from the coding or development platform. Testing is a hectic process that entails the actual testing, preparation of the test cases and the review of those cases against the requirements (Beizer, 1995). For that purpose, static testing and dynamic testing are paramount in that while the former is used to verify the software, the latter is used to validate it.

Reflection

The iteration on testing and deploying the application went on well as the results of the testing were achieved. Through the testing, the researcher came to understand how costly the defects in a developed system can be. The task of testing the application was very involving (Myers, Sandler, & Badgett, 2011). But the researcher got to meet the deadline. The approach that the researcher leveraged to software testing helped to make sure that the testing was complete with all the components thoroughly verified and validated. The researcher also got to learn how to handle various issues that can make the system to function properly. The researcher also learned about several tools that can be used to test software products although not all the tools were applicable for the product under test in this case.

Sometimes the developed calculator produced the unintended results and that made the researcher waste so much time in testing it. However, that was worthwhile as it gave the researcher the knowledge and skills on how to deal with such issues in the future. The research could not automate most of the software testing tasks due to the lack of experience on how to use the tools. The researcher plans to address that by ensuring that he studied the software testing products and learned how they function so that if required to use them win future, it will be easy to use. The researcher also did not involve the quality assurance officers to review the testing, but he plans to resolve that in the future by working with experts in every area of research so as to make sure that he garners as much knowledge and experience possible that would make him competent.

References

Andrews, J. H., Briand, L. C., & Labiche, Y. (2005, May). Is mutation an appropriate tool for testing experiments?[software testing]. In Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005. (pp. 402-411). IEEE.

Batyuk, L., Schmidt, A. D., Schmidt, H. G., Camtepe, A., & Albayrak, S. (2009, April). Developing and benchmarking native linux applications on android. In International Conference on Mobile Wireless Middleware, Operating Systems, and Applications (pp. 381-392). Springer Berlin Heidelberg

Beizer, B. (1995). Black-box testing: techniques for functional testing of software and systems. John Wiley & Sons, Inc..

Beizer, B. (2003). Software testing techniques. Dreamtech Press.

Butler, M. (2011). Android: Changing the mobile landscape. IEEE Pervasive Computing10(1), 4-7.

Chung, L., & do Prado Leite, J. C. S. (2009). On non-functional requirements in software engineering. In Conceptual modeling: Foundations and applications (pp. 363-379). Springer Berlin Heidelberg.

Crocker, D. (2003). Perfect developer: a tool for object-oriented formal specification and refinement. Tools exhibition notes at formal methods Europe.

Myers, G. J., Sandler, C., & Badgett, T. (2011). The art of software testing. John Wiley & Sons.

Parkin, R., & Australia, I. V. V. (1997). Software Unit Testing. The Independent Software Testing Specialists, IV & V Australia.

Patton, R. (2005). Software testing. Sams.

Robertson, S., & Robertson, J. (2012). Mastering the requirements process: Getting requirements right. Addison-wesley.

Sommerville, I., & Sawyer, P. (1997). Requirements engineering: a good practice guide. John Wiley & Sons, Inc.

Wieringa, R., Maiden, N., Mead, N., & Rolland, C. (2006). Requirements engineering paper classification and evaluation criteria: a proposal and a discussion. Requirements Engineering11(1), 102-107.

Wolf, M. (2012). Computers as components: principles of embedded computing system design. Elsevier.

Xie, M., Dai, Y. S., & Poh, K. L. (2004). Computing system reliability: models and analysis. Springer Science & Business Media

Sherry Roberts is the author of this paper. A senior editor at MeldaResearch.Com in college research paper services if you need a similar paper you can place your order for best essay services online.

Like it? Share it!


Winnie Melda

About the Author

Winnie Melda
Joined: December 7th, 2017
Articles Posted: 364

More by this author