CI7900-Reflective Essay Brief Assignment Sample
Introduction
Reflective practice is the capability to reflect on one’s action in order to engage in the process of consistent learning (Bassot, 2015). Reflective practice is important as it is linked with numerous benefits involving enhancing self-awareness and developing a better understanding of the experience. With the help of reflective practice, one can develop creative thinking capability and encourage active engagement in the work task and process (Bolton, 2010).
This reflective essay is based on my own experience working in Srija software solutions as a software test analyst. This paper reflects my personal and professional development and provides evidence of meeting the key objectives of the module. For this purpose, the essay involves the application of the skills and knowledge I have attained in the professional context. Considering the structuring of the essay involves an accurate account of the work activity I performed and a critical reflection on the experience I have acquired. Furthermore, based on the experience, the paper also evaluates my personal and professional development based on the identified skills and weaknesses. The essay reveals the strategies to overcome the weaknesses and action plans to ensure personal development.
Reflective essay
Account of work activity
I started my internship at Srija software solutions on 17th May 2021. I was indulged in the role of software test analyst intern in the company. Thus, I was responsible for carrying out the tasks and roles of a software test analyst. This internship was a dream for me as I always wanted to work in a software company to apply my knowledge base and learnings. In my role, I was responsible for testing the operations of the applications and system under controlled conditions to examine the results. In other words, testing can be said as the process of verifying and validating a program to meet the technical and business requirements.CI7900-Reflective Essay Brief Assignment Sample
I have carried out several work tasks and activities as an intern in the company. Firstly, I have worked in the testing department while developing an automation framework. For this, I used SELENIUM WEB-Driver, a collection of the APIs needed to automate the testing of the web application. I also learned about and used Cucumber-JVM, SOUPUI, Java, Junit, Maven, and Jenkins. I have also developed the BDD model framework. I have learned about this approach during my study, and it is a software development approach that enables the software tester to form test cases in a simple language. My main role was to handle authorization services with rest assured. The authorization services ensure that the person or user is authorized to access specific resources (Barboniet. al. 2021). Another task was collaborating and coordinating with the API developers, architects, and other stakeholders to document scenarios that needed testing and validation.
Apart from this, I have written automated API tests using REST assured and manually tested APIs. This was done by creating an HTTP request and validating the response process. I believe that the best automation framework for Rest API is Rest Assured, as it is easy and simple to use.
Experience of the placement
My journey as a software tester in the company was full of learning and different exposures. Although I was quite hesitant before giving the interview in the company for an internship, the curiosity to learn more about this role has encouraged me. Finally, I have decided to give this internship a try by hoping that my curiosity and interest in the field will help me carry out the tasks effectively. I feel that this overall work experience has helped me in enhancing my knowledge about understanding the software development life cycle. The learnings and theoretical knowledge I gained during the classes and module learning regarding software development life cycle has allowed me to apply it in practice. This is a process that software companies use to design, develop and test high-quality software (Barbosa et. al. 2022). This cycle aims to develop high-quality software that can meet the requirement of the customer expectations within cost and time estimates. I have assessed that there are six main stages of this cycle.
The planning is the first stage to ensuring the quality and identifying key risks associated with it. After the step of planning, I moved toward system analysis and requirements. This is the stage of clearly defining and documenting the product requirements and getting them approved by the client. I learned that while designing the software, the clients’ requirements are to be considered the key priority.
I have done this through the software requirement specification document, which contains various product requirements that are needed to be designed and developed in the life cycle. Developing the product is the next phase of the software development life cycle, and the next is testing, maintenance, and release.
Once the product is developed and tested, it is released formally in the market. After the release of the product, the maintenance is done with a view to satisfying the existing client base (Chelliah et. al. 2020). Furthermore, during my internship experience, I prepared documents for scrum and applied them practically. Scrum testing can be referred to as the type of software testing for performing and checking the software’s capability and further executing the process. Scrum is said to be an agile process used for developing the product and specifically for software development. Scrum theory is based on the concept of empiricism. It asserts that knowledge can be attained from experience. The three pillars which I have learned of scrum in software testing are transparency, inspection, and adaptation. Thus, to maintain transparency, I focused that all the team members must collaborate properly to ensure that everyone is working as per the same vision. The roles in the scrum teams are of the product owner, development team, and scrum master. Hence, it can be said that while interning in this software firm, I have enhanced my team working skills. I was responsible for preparing documents to ensure coordination within the team. Therefore, in a nutshell, my work experience can be summarized as participating in the developmental process, analyzing application requirements, designing documents, and developing testing structures. I was an active participant in the software development process and collaborated with the team during every phase. As I was in the technical field, my duty also required proper communication to not miss out on anything. I was also involved in the software testing process, and this is why I keep working with the software development team. Also, as a test analyst, I was able to read and analyze the application requirement and design the documents. It also required above-average analytical skills (Aljedaani and Javed, 2020). As a test analyst, I should be able to conceptualize the design process to assess the potential problems actively. I have also spent most of my time analyzing and documenting the results. This is the task where I have learned a lot. For this, first, I ran the diagnostic test, analyzed the results, and presented these findings to the key decision- makers. Whenever I found any issues, I met with the software development team in order to address them.
Assessment of skills and their application
Test analysis is a profession that needs more than computer skills (Florea and Stray, 2019). Test analyst is required to be big picture thinkers. Also, they are required to behave the capability to focus on every detail of the aspect. The core skills required to work as per the test analyst are attention to detail, ability to see the bigger picture, planning skills, proficiency in documentation, awareness of software development life-cycle, and critical thinking skills (Molina et. al. 2020). Apart from this, advanced skills can be the deep knowledge of software development experience, coding, and project management skill. Test analysts spend most of their time on a computer, and they have to work on some tools to accomplish their tasks.
The key tools are program testing software, application development software, and development environment software (Huang et. al. 2018).I gathered all this information and capabilities after entering the workplace. On the basis of these capabilities and skill sets, I have identified that I possess some of the key skills and strengths that help me perform my tasks effectively. For example, I feel that I know the software development life- cycle. This is the reason that I was able to apply it to the practice effectively. It is one of the preferable skill sets. The whole structure of this life cycle helped me in understanding the application development task, and this is the reason I was able to plan the testing cycle accordingly and appropriately. Furthermore, having a deep and strong knowledge of this cycle facilitated me in anticipating the complexities of the application. This assisted me in guiding and taking the right measures with time in satisfying the client. Furthermore, I have also learned that another development methodology is scrum.
I feel that this experience has increased my personal as well as professional development because, on personal grounds, I have developed discipline and punctuality in my work.Now I feel that I have become more responsible after working in a corporate business environment and also feel professional. On the other hand, it has increased my professional development because I always want to make my career in the software industry. The exposure I gained as a software test analyst has contributed positively and largely to it.
Another strength that I have identified for myself is automation testing. It was also my role in the company, and by leveraging all the latest technologies, I have learned automation. The complexities in the software industry have been increased. Manual testing cannot take the analyst to the right path (Spillner and Linz, 2021). Therefore, to test the browser’s compatibility, performance, and integration layers, it is required to learn automation skills. It helps in attaining higher accuracy. Correspondingly, I have learned that different types of automation tools completely support the testing and have the features to get the work done effectively and quickly.
Software testing skills can be defined as a mixture of professional and technical aspects.In order to manage both, it is extremely significant for the software tester to be able to take ownership of any project. This represents that the software tester needs to deliver the project after the accomplishment of the testing criteria (Curcio et. al. 2019). This is why learning project management skills will embed the tester’s problem-solving capability. In this regard, the tester will be answerable and accountable for their work. I feel that I have also developed project management skills because I was ready to take a sense of responsibility in the workplace for the work I have done. I was also working in the organization as per the key project management aspects, for example, planning, organizing, executing the task, and implementing them efficiently. With this, I was able to improve the entire testing process and also deliver quality results to the clients. I firmly believe that my numeracy and research skills have been improvised to some extent.
In the field of information technology, technology is evolving and developing rapidly (Florea and Stray, 2018). Similarly, the skills of the software tester are also required to be developed and evolve quickly. While working in the organization, I felt that I am able to understand and work with multitasking because of my time management skills. I was able to multitask and carry out different work roles simultaneously. It is significant for a highly effective software tester to have a plan and the plan ready before any execution activity. The tester should be aware that every system to be tested comes with its own deadline and delivery time. This can pose a challenge to the tester. Hence, I concentrated on identifying and organizing the most important scenario of testing and determining the execution’s effort to multitask. I managed my time and complying it with the deliverables.
Furthermore, my key role was also to create the documents. I feel that I was able to work efficiently within the team. I was responsible for preparing the documents for proper coordination. This is why I cooperated with the team’s requirements, manager, lead tester, information technology, team human resource, and admin. With proper time management and team working skills, I was able to document the testing process, thought process, and official information collected from different departments. The proper documentation has helped me organize and clearly define the explanation of the work for the supervisor and other staff members of the IT team. Apart from this, this experience will positively impact my career as I got an opportunity to apply my management skills as I was managing the whole testing procedure and coordinating with different departments.
Action plan for personal development
While working in Srija software solutions, I also came across some of the key personal skills and weaknesses that I have to work upon to ensure my personal development and become a successful software tester. In ensuring my professional development, I have to work on my communication skills. Testers must communicate with different types of stakeholders both written and verbally (Mohapatra and Rath, 2020). Therefore the communication process of the thoughts and ideas regarding any problem or solution must be very precise and clear. In order to improve my communication skills, I can focus on writing bug reports and providing suggestions and insights for improvement in the team meetings. Another skill set to ensure my personal development is creativity and innovativeness. A good tester can be said as an individual who is curious, creative, and innovative (Zhang et. al. 2020). I need to develop scenarios that can contribute to my professional development. I have to think out-of-the-box and in a progressive manner. In order to build reliable software and for that, I have to keep practicing, and I have to observe others by stepping out of my comfort zone, which will become possible for me. Apart from key technical skills, such soft and managerial skill development is also the requirement. Therefore, I believe that I can build my communication skills within two months and my creativity competency within four months. I can also take feedback from my peers and professors to keep track of my progress.
Strategies to overcome weaknesses and ensure career enhancement
During the placement experience, I assessed that there are several weaknesses that can hamper my success. As I have identified these weaknesses, I can adopt different strategies to enhance them. Working on these will ensure my professional development and facilitate career growth.
Analytical skills:
As a software tester, I am needed to develop my analytical skills while working in a software solutions company. I have come to know that my analytical skills are not that strong, and hence I am required to work on that. Therefore, I must be a critical thinker to examine them and ask questions according to the application requirements. I can develop my analytical skills to become more professional and my role by reading more and gaining more information regarding the testing process and its associated concepts. I can work on my mathematical skills and play brain games. It is also required for me to become more observant and do and learn something new every day.
Knowledge of tools and technologies:
Apart from this, I also need to work on my knowledge of technical tools and methodologies. In the software industry, there are several types of applications focused on different platforms, and this testing process requires different types of tools (Sharma et. al. 2020). An effective tester can be said to be an individual equipped with extensive knowledge of such testing tools. I can gain knowledge about different types of tools using online platforms and different software.
Coding and programming skills:
A highly skilled software tester always prefers to automate the tasks that need to be done repeatedly. This is needed to save time, and resources as well as cost-efficiently in the team (Huang et. al.2018). A software tester must have good coding and automation skills that can help the tester grow their career and take up new responsibilities for the organization. For this, I feel that I must have basic programming knowledge. I am also required to start with small automatic features and then move towards the bigger ones to build my own automation framework. The action plan that I can follow to develop my programming and coding skills are listening to a podcast or working on a real project to become a better programmer. I can find real projects on different freelancing sites. I can also play a coding game that will help me learn in a different way. Futhermore, I can use Robocode for the same.
Moreover, another strategy is to improve my learning method. As a programmer, I feel overwhelmed by similar problem-solving tasks. Hence it is important to include techniques to learn effectively from algorithm puzzles, designing creative applications, and online quizzes. I can read out the developer’s code which is formed by others. I could learn how other developers have written their codes and can make my own judgment on how to add quality to the code. This is one of the biggest ways I can master coding.
Conclusion
The essay can be concluded by stating that the reflective practice contributes to the overall growth and development of the individual by reflecting on the key skills and weak areas. Based on my experience of internship as a software test analyst, I am dedicated to developing my career in this field for this purpose. I have analyzed some key skills that I possess and can also be considered major employability skills. These are a team working, management, numeracy, and professionalism. Some other competencies are software development life cycle framework, project management, and automation testing. On the contrary, I recognized some of the weak areas as the lack of coding skills, analytical competency, and knowledge of tools and technologies. The essay discloses some major actions and strategies to develop these.
References
Aljedaani, W. and Javed, Y., (2020, March). Empirical Study of Software Test Suite Evolution. In 2020 6th Conference on Data Science and Machine Learning Applications (CDMA) (pp. 87-93). IEEE.
Barboni, M., Bertolino, A. and Angelis, G.D., (2021, September). What We Talk About When We Talk About Software Test Flakiness. In International Conference on the Quality of Information and Communications Technology (pp. 29-39). Springer, Cham.
Barbosa, G., de Souza, É.F., dos Santos, L.B.R., da Silva, M., Balera, J.M. and Vijaykumar, N.L., (2022). A Systematic Literature Review on prioritizing software test cases using Markov chains. Information and Software Technology, p.106902.
Bassot, B., (2015). The reflective practice guide: An interdisciplinary approach to critical reflection. Routledge.
Bolton, G., (2010). Reflective practice: Writing and professional development. Sage publications.
Chelliah, B.J., Shreya, K., Raha, A. and Sravya, M., (2020). An optimized and unique methodology for software test case automation strategy. International Journal of Advanced Trends in Computer Science and Engineering (IJATCSE), 9(2).
Curcio, K., Santana, R., Reinehr, S. and Malucelli, A., (2019). Usability in agile software development: A tertiary study. Computer Standards & Interfaces, 64, pp.61-77.
Florea, R. and Stray, V., (2018, May). Software tester, we want to hire you! An analysis of the demand for soft skills. In International Conference on Agile Software Development (pp. 54-67). Springer, Cham.
Florea, R. and Stray, V., (2019). The skills that employers look for in software testers. Software Quality Journal, 27(4), pp.1449-1479.
Huang, A.H., Lehavy, R., Zang, A.Y. and Zheng, R., (2018). Analyst information discovery and interpretation roles: A topic modeling approach. Management Science, 64(6), pp.2833-2855.
Mohapatra, H. and Rath, A.K., (2020). Fundamentals of software engineering: designed to provide an insight into the software engineering concepts. BPB Publications.
Molina, A.S., Calle, W.A.C. and Remache, J.D.B., (2020). The application of Microsoft Solution Framework Software Testing using Neutrosophic Numbers (Vol. 37). Infinite Study.
Sharma, G.G. and Stol, K.J., (2020). Exploring onboarding success, organizational fit, and turnover intention of software professionals. Journal of Systems and Software, 159, p.110442.
Spillner, A. and Linz, T., (2021). Software Testing Foundations: A Study Guide for the Certified Tester Exam-Foundation Level-ISTQB® Compliant. dpunkt. verlag.
Zhang, A.X., Muller, M. and Wang, D., (2020). How do data science workers collaborate? roles, workflows, and tools. Proceedings of the ACM on Human-Computer Interaction, 4(CSCW1), pp.1-23.
Assignment Services Unique Submission Offers: