Hi All,

I work for a manufacturing company internal IT, specifically MES group. Most of our software are in-house built using .NET technology. As a QA lead (part-time), my responsibility is to improve our MES software QA process, and hence, software quality.

The reason I mentioned "part-time" is, I spend about 1/3 of my time on QA management and execution. The rest of my time is for other project management and analysis works. Anyway, for now I feel struggling, helpless and hope to get some recommendations from here.

1. About 40% of time we deploy software changes to production and then there are issues or concerns. Usually they are not very severe and no need to roll back the releases. We usually apply quick fix(es) to them.

2. We used to run waterfall projects for several years. But this year we have started running Agile scrum methodology for all projects. Both the development team and the business are happy about this Agile approach.

3. We build in QA testing tasks in each scrum sprint planning and execution. The problem is the tester is not experienced, especially in Agile approach, and does not know how to build automated testing scripts at all. You may ask "why don't you replace him by an experienced tester?" The reason is he is not from our MES group. He is from our MIS shared service team. Including some management politics, we have no control and choice on that.

4. In terms of our current process, workflow and system, we have dev --> QA --> production. For now all developers and testers are able make changes on the QA environment, plus, multiple projects and/or change requests can be happened at the same time on the same QA environment.

5. Started this year, we are adding the staging envirnonment after QA and before production. The purposes are for 1) deployment codes and scripts testing; 2) performance testing; 3) final smoke testing on key functionalities before going to production.

The objective of our QA process improvement is, of course, delivery high quality of software to production with minimal defects (ideally zero defect).

Here are our problems or concerns:

1. We are kind of spoiled by the production and business groups. When we deploy something to production, it break something, and we quick fix it. Most of the time the business do not complain. Because of that, some people in our group always think that we can push something out and let the production real users experience any issues and then we fix them. This is even more effective than spending so much time and effort on QA testing especially our QA environment will never be the exact same as the production one (unless we pay very high cost on that).

2. One of the reasons to add staging environments is for performance testing. However, again, we cannot make it to the exact same as the live production one. For example, the database does not have all data loaded, pushed and pulled by all production systems. Also, we do not have all the physical equipment, such as oven, conveyor, etc. for staging testing.

3. By implementing Agile approach, one benefit is to deliver incremental business value to production sooner. However, the need of going through all these QA and staging for functional, integration, regression, load/stress/performance, and deployment testing seems time consuming. So the dilemma is on one hand, trying Agile to shorten the delivery process time and on the other hand, adding quality process and gate will slow down the development life cycle.

4. From the execution standpoint, we are not clear about who should be able to access QA and staging environments. This is about the quality security versus the flexibility. Also, how to, and who should, track all the changes.

What a long story, right? So, what I am asking for is, where can I find some up-to-date researches and recommendations to tackle the concerns and be able to apply QA process improvement (and make everyone happy)? If there are any current companies which have the best QA practices for me for reference that will be wonderful.

Thank you,

- Chi